mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-23 18:56:38 +00:00
Matter events phase 1 (#19484)
This commit is contained in:
parent
4cc81f0dbc
commit
f1bd9446d5
@ -177,6 +177,7 @@ BE_FUNC_CTYPE_DECLARE(matter_get_command_name, "s", "ii")
|
||||
extern const void* matter_get_ip_bytes(const char* ip_str, size_t* ret_len);
|
||||
BE_FUNC_CTYPE_DECLARE(matter_get_ip_bytes, "&", "s")
|
||||
|
||||
extern int matter_publish_command(bvm *vm);
|
||||
|
||||
#include "solidify/solidified_Matter_inspect.h"
|
||||
|
||||
@ -276,6 +277,7 @@ module matter (scope: global, strings: weak) {
|
||||
setmember, closure(matter_setmember_closure)
|
||||
member, closure(matter_member_closure)
|
||||
get_ip_bytes, ctype_func(matter_get_ip_bytes)
|
||||
publish_command, func(matter_publish_command)
|
||||
|
||||
get_vendor_name, ctype_func(matter_get_vendor_name)
|
||||
get_cluster_name, ctype_func(matter_get_cluster_name)
|
||||
|
@ -866,7 +866,7 @@ class Matter_IM
|
||||
var res = self.device.invoke_request(msg.session, q.command_fields, ctx)
|
||||
matter.profiler.log("COMMAND DONE")
|
||||
var params_log = (ctx.log != nil) ? "(" + str(ctx.log) + ") " : ""
|
||||
tasmota.log(format("MTR: >Command (%6i) %s %s %s", msg.session.local_session_id, ctx_str, cmd_name ? cmd_name : "", params_log), ctx.endpoint != 0 ? 2 : 3 #- don't log for endpoint 0 -# )
|
||||
tasmota.log(format("MTR: >Command (%6i) %s %s %s", msg.session.local_session_id, ctx_str, cmd_name ? cmd_name : "", params_log), 3)
|
||||
# tasmota.log("MTR: Perf/Command = " + str(debug.counters()), 4)
|
||||
ctx.log = nil
|
||||
var raw = bytes(32)
|
||||
@ -927,9 +927,8 @@ class Matter_IM
|
||||
var res = self.device.invoke_request(msg.session, ctx.command_fields, ctx)
|
||||
matter.profiler.log("COMMAND DONE")
|
||||
var params_log = (ctx.log != nil) ? "(" + str(ctx.log) + ") " : ""
|
||||
var cmd_log_level = ctx.endpoint != 0 ? 2 : 3 #- don't log for endpoint 0 -#
|
||||
if tasmota.loglevel(cmd_log_level)
|
||||
tasmota.log(format("MTR: >Command1 (%6i) %s %s %s", msg.session.local_session_id, ctx_str, cmd_name ? cmd_name : "", params_log), cmd_log_level)
|
||||
if tasmota.loglevel(3)
|
||||
tasmota.log(format("MTR: >Command1 (%6i) %s %s %s", msg.session.local_session_id, ctx_str, cmd_name ? cmd_name : "", params_log), 3)
|
||||
end
|
||||
# tasmota.log("MTR: Perf/Command = " + str(debug.counters()), 4)
|
||||
ctx.log = nil
|
||||
|
@ -43,6 +43,7 @@ class Matter_Plugin
|
||||
var endpoint # current endpoint
|
||||
var clusters # map from cluster to list of attributes, typically constructed from CLUSTERS hierachy
|
||||
var tick # tick value when it was last updated
|
||||
var node_label # name of the endpoint, used only in bridge mode, "" if none
|
||||
|
||||
#############################################################
|
||||
# MVC Model
|
||||
@ -61,6 +62,7 @@ class Matter_Plugin
|
||||
self.endpoint = endpoint
|
||||
self.clusters = self.consolidate_clusters()
|
||||
self.parse_configuration(config)
|
||||
self.node_label = config.find("name", "")
|
||||
end
|
||||
|
||||
# proxy for the same method in IM
|
||||
@ -146,6 +148,22 @@ class Matter_Plugin
|
||||
return ret
|
||||
end
|
||||
|
||||
#############################################################
|
||||
# Publish to MQTT a command received from controller
|
||||
#
|
||||
# we limit to 3 commands (to we need more?)
|
||||
def publish_command(key1, value1, key2, value2, key3, value3)
|
||||
import json
|
||||
var payload = f"{json.dump(key1)}:{json.dump(value1)}"
|
||||
if key2 != nil
|
||||
payload = f"{payload},{json.dump(key2)}:{json.dump(value2)}"
|
||||
end
|
||||
if key3 != nil
|
||||
payload = f"{payload},{json.dump(key3)}:{json.dump(value3)}"
|
||||
end
|
||||
matter.publish_command('MtrReceived', self.endpoint, self.node_label, payload)
|
||||
end
|
||||
|
||||
#############################################################
|
||||
# Which endpoints does it handle (list of numbers)
|
||||
def get_endpoint()
|
||||
@ -184,6 +202,14 @@ class Matter_Plugin
|
||||
return self.clusters.contains(cluster) && self.endpoints.find(endpoint) != nil
|
||||
end
|
||||
|
||||
def set_name(n)
|
||||
if n != self.node_label
|
||||
self.attribute_updated(0x0039, 0x0005)
|
||||
end
|
||||
self.node_label = n
|
||||
end
|
||||
def get_name() return self.node_label end
|
||||
|
||||
#############################################################
|
||||
# MVC Model
|
||||
#
|
||||
|
@ -125,12 +125,15 @@ class Matter_Plugin_Bridge_Light0 : Matter_Plugin_Bridge_HTTP
|
||||
if cluster == 0x0006 # ========== On/Off 1.5 p.48 ==========
|
||||
if command == 0x0000 # ---------- Off ----------
|
||||
self.set_onoff(false)
|
||||
self.publish_command('Power', 0)
|
||||
return true
|
||||
elif command == 0x0001 # ---------- On ----------
|
||||
self.set_onoff(true)
|
||||
self.publish_command('Power', 1)
|
||||
return true
|
||||
elif command == 0x0002 # ---------- Toggle ----------
|
||||
self.set_onoff(!self.shadow_onoff)
|
||||
self.publish_command('Power', self.shadow_onoff ? 1 : 0)
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
@ -131,6 +131,8 @@ class Matter_Plugin_Bridge_Light1 : Matter_Plugin_Bridge_Light0
|
||||
var bri_in = val.findsubval(0) # Hue 0..254
|
||||
self.set_bri(bri_in)
|
||||
ctx.log = "bri:"+str(bri_in)
|
||||
self.publish_command('Bri', tasmota.scale_uint(bri_in, 0, 254, 0, 255),
|
||||
'Dimmer', tasmota.scale_uint(bri_in, 0, 254, 0, 100))
|
||||
return true
|
||||
elif command == 0x0001 # ---------- Move ----------
|
||||
# TODO, we don't really support it
|
||||
@ -147,6 +149,9 @@ class Matter_Plugin_Bridge_Light1 : Matter_Plugin_Bridge_Light0
|
||||
var onoff = bri_in > 0
|
||||
self.set_onoff(onoff)
|
||||
ctx.log = "bri:"+str(bri_in)
|
||||
self.publish_command('Bri', tasmota.scale_uint(bri_in, 0, 254, 0, 255),
|
||||
'Dimmer', tasmota.scale_uint(bri_in, 0, 254, 0, 100),
|
||||
'Power', onoff ? 1 : 0)
|
||||
return true
|
||||
elif command == 0x0005 # ---------- MoveWithOnOff ----------
|
||||
# TODO, we don't really support it
|
||||
|
@ -149,6 +149,7 @@ class Matter_Plugin_Bridge_Light2 : Matter_Plugin_Bridge_Light1
|
||||
if ct_in > self.ct_max ct_in = self.ct_max end
|
||||
self.set_ct(ct_in)
|
||||
ctx.log = "ct:"+str(ct_in)
|
||||
self.publish_command('CT', ct_in)
|
||||
return true
|
||||
elif command == 0x0047 # ---------- StopMoveStep ----------
|
||||
# TODO, we don't really support it
|
||||
|
@ -157,6 +157,7 @@ class Matter_Plugin_Bridge_Light3 : Matter_Plugin_Bridge_Light1
|
||||
var hue_in = val.findsubval(0) # Hue 0..254
|
||||
self.set_hue(hue_in)
|
||||
ctx.log = "hue:"+str(hue_in)
|
||||
self.publish_command('Hue', hue_in)
|
||||
return true
|
||||
elif command == 0x0001 # ---------- MoveHue ----------
|
||||
# TODO, we don't really support it
|
||||
@ -168,6 +169,7 @@ class Matter_Plugin_Bridge_Light3 : Matter_Plugin_Bridge_Light1
|
||||
var sat_in = val.findsubval(0) # Sat 0..254
|
||||
self.set_sat(sat_in)
|
||||
ctx.log = "sat:"+str(sat_in)
|
||||
self.publish_command('Sat', sat_in)
|
||||
return true
|
||||
elif command == 0x0004 # ---------- MoveSaturation ----------
|
||||
# TODO, we don't really support it
|
||||
@ -181,6 +183,7 @@ class Matter_Plugin_Bridge_Light3 : Matter_Plugin_Bridge_Light1
|
||||
self.set_hue(hue_in)
|
||||
self.set_sat(sat_in)
|
||||
ctx.log = "hue:"+str(hue_in)+" sat:"+str(sat_in)
|
||||
self.publish_command('Hue', hue_in, 'Sat', sat_in)
|
||||
return true
|
||||
elif command == 0x0047 # ---------- StopMoveStep ----------
|
||||
# TODO, we don't really support it
|
||||
|
@ -34,21 +34,18 @@ class Matter_Plugin_Device : Matter_Plugin
|
||||
}
|
||||
static var TYPES = { 0x0013: 1 } # fake type
|
||||
static var NON_BRIDGE_VENDOR = [ 0x1217, 0x1381 ] # Fabric VendorID not supporting Bridge mode
|
||||
|
||||
var node_label # name of the endpoint, used only in bridge mode, "" if none
|
||||
|
||||
def set_name(n)
|
||||
if n != self.node_label
|
||||
self.attribute_updated(0x0039, 0x0005)
|
||||
end
|
||||
self.node_label = n
|
||||
end
|
||||
def get_name() return self.node_label end
|
||||
# Inherited
|
||||
# var device # reference to the `device` global object
|
||||
# var endpoint # current endpoint
|
||||
# var clusters # map from cluster to list of attributes, typically constructed from CLUSTERS hierachy
|
||||
# var tick # tick value when it was last updated
|
||||
# var node_label # name of the endpoint, used only in bridge mode, "" if none
|
||||
var virtual # (bool) is the device pure virtual (i.e. not related to a device implementation by Tasmota)
|
||||
|
||||
#############################################################
|
||||
# Constructor
|
||||
def init(device, endpoint, config)
|
||||
self.node_label = config.find("name", "")
|
||||
self.virtual = config.find("virtual", false)
|
||||
super(self).init(device, endpoint, config)
|
||||
end
|
||||
|
||||
|
@ -39,7 +39,14 @@ class Matter_Plugin_Light0 : Matter_Plugin_Device
|
||||
}
|
||||
static var TYPES = { 0x0100: 2 } # OnOff Light, but not actually used because Relay is managed by OnOff
|
||||
|
||||
var shadow_onoff
|
||||
# Inherited
|
||||
# var device # reference to the `device` global object
|
||||
# var endpoint # current endpoint
|
||||
# var clusters # map from cluster to list of attributes, typically constructed from CLUSTERS hierachy
|
||||
# var tick # tick value when it was last updated
|
||||
# var node_label # name of the endpoint, used only in bridge mode, "" if none
|
||||
# var virtual # (bool) is the device pure virtual (i.e. not related to a device implementation by Tasmota)
|
||||
var shadow_onoff # (bool) status of the light power on/off
|
||||
|
||||
#############################################################
|
||||
# Constructor
|
||||
@ -52,15 +59,33 @@ class Matter_Plugin_Light0 : Matter_Plugin_Device
|
||||
# Update shadow
|
||||
#
|
||||
def update_shadow()
|
||||
import light
|
||||
var light_status = light.get()
|
||||
if light_status != nil
|
||||
var pow = light_status.find('power', nil)
|
||||
if pow != self.shadow_onoff self.attribute_updated(0x0006, 0x0000) self.shadow_onoff = pow end
|
||||
if !self.virtual
|
||||
import light
|
||||
var light_status = light.get()
|
||||
if light_status != nil
|
||||
var pow = light_status.find('power', nil)
|
||||
if pow != self.shadow_onoff
|
||||
self.attribute_updated(0x0006, 0x0000)
|
||||
self.shadow_onoff = pow
|
||||
end
|
||||
end
|
||||
end
|
||||
super(self).update_shadow()
|
||||
end
|
||||
|
||||
def set_onoff(pow)
|
||||
if !self.virtual
|
||||
import light
|
||||
light.set({'power':pow})
|
||||
self.update_shadow()
|
||||
else
|
||||
if pow != self.shadow_onoff
|
||||
self.attribute_updated(0x0006, 0x0000)
|
||||
self.shadow_onoff = pow
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
#############################################################
|
||||
# read an attribute
|
||||
#
|
||||
@ -100,16 +125,16 @@ class Matter_Plugin_Light0 : Matter_Plugin_Device
|
||||
if cluster == 0x0006 # ========== On/Off 1.5 p.48 ==========
|
||||
self.update_shadow_lazy()
|
||||
if command == 0x0000 # ---------- Off ----------
|
||||
light.set({'power':false})
|
||||
self.update_shadow()
|
||||
self.set_onoff(false)
|
||||
self.publish_command('Power', 0)
|
||||
return true
|
||||
elif command == 0x0001 # ---------- On ----------
|
||||
light.set({'power':true})
|
||||
self.update_shadow()
|
||||
self.set_onoff(true)
|
||||
self.publish_command('Power', 1)
|
||||
return true
|
||||
elif command == 0x0002 # ---------- Toggle ----------
|
||||
light.set({'power':!self.shadow_onoff})
|
||||
self.update_shadow()
|
||||
self.set_onoff(!self.shadow_onoff)
|
||||
self.publish_command('Power', self.shadow_onoff ? 1 : 0)
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
@ -39,8 +39,15 @@ class Matter_Plugin_Light1 : Matter_Plugin_Light0
|
||||
}
|
||||
static var TYPES = { 0x0101: 2 } # Dimmable Light
|
||||
|
||||
var shadow_bri
|
||||
# var shadow_onoff # inherited
|
||||
# Inherited
|
||||
# var device # reference to the `device` global object
|
||||
# var endpoint # current endpoint
|
||||
# var clusters # map from cluster to list of attributes, typically constructed from CLUSTERS hierachy
|
||||
# var tick # tick value when it was last updated
|
||||
# var node_label # name of the endpoint, used only in bridge mode, "" if none
|
||||
# var virtual # (bool) is the device pure virtual (i.e. not related to a device implementation by Tasmota)
|
||||
# var shadow_onoff # (bool) status of the light power on/off
|
||||
var shadow_bri # (int 0..254) brightness before Gamma correction - as per Matter 255 is not allowed
|
||||
|
||||
#############################################################
|
||||
# Constructor
|
||||
@ -53,21 +60,52 @@ class Matter_Plugin_Light1 : Matter_Plugin_Light0
|
||||
# Update shadow
|
||||
#
|
||||
def update_shadow()
|
||||
import light
|
||||
var light_status = light.get()
|
||||
if light_status != nil
|
||||
var bri = light_status.find('bri', nil)
|
||||
if bri != nil
|
||||
bri = tasmota.scale_uint(bri, 0, 255, 0, 254)
|
||||
if bri != self.shadow_bri
|
||||
self.attribute_updated(0x0008, 0x0000)
|
||||
self.shadow_bri = bri
|
||||
if !self.virtual
|
||||
import light
|
||||
var light_status = light.get()
|
||||
if light_status != nil
|
||||
var bri = light_status.find('bri', nil)
|
||||
if bri != nil
|
||||
bri = tasmota.scale_uint(bri, 0, 255, 0, 254)
|
||||
if bri != self.shadow_bri
|
||||
self.attribute_updated(0x0008, 0x0000)
|
||||
self.shadow_bri = bri
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
super(self).update_shadow() # superclass manages 'power'
|
||||
end
|
||||
|
||||
#############################################################
|
||||
# Set Bri
|
||||
#
|
||||
# `bri` is in range 0.255 and not 0..254 like in Matter
|
||||
# `pow` can be bool on `nil` if no change
|
||||
def set_bri(bri_254, pow)
|
||||
if (bri_254 < 0) bri_254 = 0 end
|
||||
if (bri_254 > 254) bri_254 = 254 end
|
||||
if !self.virtual
|
||||
import light
|
||||
var bri_255 = tasmota.scale_uint(bri_254, 0, 254, 0, 255)
|
||||
if pow == nil
|
||||
light.set({'bri': bri_255})
|
||||
else
|
||||
light.set({'bri': bri_255, 'power': pow})
|
||||
end
|
||||
self.update_shadow()
|
||||
else
|
||||
if (pow != nil) && (pow != self.shadow_onoff)
|
||||
self.attribute_updated(0x0006, 0x0000)
|
||||
self.shadow_onoff = pow
|
||||
end
|
||||
if bri_254 != self.shadow_bri
|
||||
self.attribute_updated(0x0008, 0x0000)
|
||||
self.shadow_bri = bri_254
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
#############################################################
|
||||
# read an attribute
|
||||
#
|
||||
@ -115,11 +153,10 @@ class Matter_Plugin_Light1 : Matter_Plugin_Light0
|
||||
if cluster == 0x0008 # ========== Level Control 1.6 p.57 ==========
|
||||
self.update_shadow_lazy()
|
||||
if command == 0x0000 # ---------- MoveToLevel ----------
|
||||
var bri_in = val.findsubval(0) # Hue 0..254
|
||||
var bri = tasmota.scale_uint(bri_in, 0, 254, 0, 255)
|
||||
light.set({'bri': bri})
|
||||
self.update_shadow()
|
||||
ctx.log = "bri:"+str(bri_in)
|
||||
var bri_254 = val.findsubval(0) # Hue 0..254
|
||||
self.set_bri(bri_254)
|
||||
ctx.log = "bri:"+str(bri_254)
|
||||
self.publish_command('Bri', bri_254, 'Dimmer', tasmota.scale_uint(bri_254, 0, 254, 0, 100))
|
||||
return true
|
||||
elif command == 0x0001 # ---------- Move ----------
|
||||
# TODO, we don't really support it
|
||||
@ -131,12 +168,11 @@ class Matter_Plugin_Light1 : Matter_Plugin_Light0
|
||||
# TODO, we don't really support it
|
||||
return true
|
||||
elif command == 0x0004 # ---------- MoveToLevelWithOnOff ----------
|
||||
var bri_in = val.findsubval(0) # Hue 0..254
|
||||
var bri = tasmota.scale_uint(bri_in, 0, 254, 0, 255)
|
||||
var onoff = bri > 0
|
||||
light.set({'bri': bri, 'power': onoff})
|
||||
self.update_shadow()
|
||||
ctx.log = "bri:"+str(bri_in)
|
||||
var bri_254 = val.findsubval(0) # Hue 0..254
|
||||
var onoff = bri_254 > 0
|
||||
self.set_bri(bri_254, onoff)
|
||||
ctx.log = "bri:"+str(bri_254)
|
||||
self.publish_command('Bri', bri_254, 'Dimmer', tasmota.scale_uint(bri_254, 0, 254, 0, 100), 'Power', onoff ? 1 : 0)
|
||||
return true
|
||||
elif command == 0x0005 # ---------- MoveWithOnOff ----------
|
||||
# TODO, we don't really support it
|
||||
|
@ -40,15 +40,24 @@ class Matter_Plugin_Light2 : Matter_Plugin_Light1
|
||||
}
|
||||
static var TYPES = { 0x010C: 2 } # Color Temperature Light
|
||||
|
||||
var shadow_ct
|
||||
var ct_min, ct_max
|
||||
# Inherited
|
||||
# var device # reference to the `device` global object
|
||||
# var endpoint # current endpoint
|
||||
# var clusters # map from cluster to list of attributes, typically constructed from CLUSTERS hierachy
|
||||
# var tick # tick value when it was last updated
|
||||
# var node_label # name of the endpoint, used only in bridge mode, "" if none
|
||||
# var virtual # (bool) is the device pure virtual (i.e. not related to a device implementation by Tasmota)
|
||||
# var shadow_onoff # (bool) status of the light power on/off
|
||||
# var shadow_bri # (int 0..254) brightness before Gamma correction - as per Matter 255 is not allowed
|
||||
var shadow_ct # (int 153..500, default 325) Color Temperatur in mireds
|
||||
var ct_min, ct_max # min and max value allowed for CT, Alexa emulation requires to have a narrower range 200..380
|
||||
|
||||
#############################################################
|
||||
# Constructor
|
||||
def init(device, endpoint, arguments)
|
||||
super(self).init(device, endpoint, arguments)
|
||||
self.shadow_ct = 325
|
||||
self.update_ct_minmax()
|
||||
self.update_ct_minmax() # read SetOption to adjust ct min/max
|
||||
end
|
||||
|
||||
#############################################################
|
||||
@ -62,19 +71,42 @@ class Matter_Plugin_Light2 : Matter_Plugin_Light1
|
||||
if light_status != nil
|
||||
var ct = light_status.find('ct', nil)
|
||||
if ct == nil ct = self.shadow_ct end
|
||||
if ct != self.shadow_ct self.attribute_updated(0x0300, 0x0007) self.shadow_ct = ct end
|
||||
if ct != self.shadow_ct
|
||||
self.attribute_updated(0x0300, 0x0007)
|
||||
self.shadow_ct = ct
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
#############################################################
|
||||
# Update ct_min/max
|
||||
#
|
||||
# Standard range is 153..500 but Alexa emulation reduces range to 200..380
|
||||
# Depending on `SetOption82`
|
||||
def update_ct_minmax()
|
||||
var ct_alexa_mode = tasmota.get_option(82) # if set, range is 200..380 instead of 153...500
|
||||
self.ct_min = ct_alexa_mode ? 200 : 153
|
||||
self.ct_max = ct_alexa_mode ? 380 : 500
|
||||
end
|
||||
|
||||
#############################################################
|
||||
# set_ct
|
||||
#
|
||||
def set_ct(ct)
|
||||
if ct < self.ct_min ct = self.ct_min end
|
||||
if ct > self.ct_max ct = self.ct_max end
|
||||
if !self.virtual
|
||||
import light
|
||||
light.set({'ct': ct})
|
||||
self.update_shadow()
|
||||
else
|
||||
if ct != self.shadow_ct
|
||||
self.attribute_updated(0x0300, 0x0007)
|
||||
self.shadow_ct = ct
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
#############################################################
|
||||
# read an attribute
|
||||
#
|
||||
@ -124,11 +156,9 @@ class Matter_Plugin_Light2 : Matter_Plugin_Light1
|
||||
self.update_shadow_lazy()
|
||||
if command == 0x000A # ---------- MoveToColorTemperature ----------
|
||||
var ct_in = val.findsubval(0) # CT
|
||||
if ct_in < self.ct_min ct_in = self.ct_min end
|
||||
if ct_in > self.ct_max ct_in = self.ct_max end
|
||||
light.set({'ct': ct_in})
|
||||
self.update_shadow()
|
||||
self.set_ct(ct_in)
|
||||
ctx.log = "ct:"+str(ct_in)
|
||||
self.publish_command('CT', ct_in)
|
||||
return true
|
||||
elif command == 0x0047 # ---------- StopMoveStep ----------
|
||||
# TODO, we don't really support it
|
||||
|
@ -40,7 +40,17 @@ class Matter_Plugin_Light3 : Matter_Plugin_Light1
|
||||
}
|
||||
static var TYPES = { 0x010D: 2 } # Extended Color Light
|
||||
|
||||
var shadow_hue, shadow_sat
|
||||
# Inherited
|
||||
# var device # reference to the `device` global object
|
||||
# var endpoint # current endpoint
|
||||
# var clusters # map from cluster to list of attributes, typically constructed from CLUSTERS hierachy
|
||||
# var tick # tick value when it was last updated
|
||||
# var node_label # name of the endpoint, used only in bridge mode, "" if none
|
||||
# var virtual # (bool) is the device pure virtual (i.e. not related to a device implementation by Tasmota)
|
||||
# var shadow_onoff # (bool) status of the light power on/off
|
||||
# var shadow_bri # (int 0..254) brightness before Gamma correction - as per Matter 255 is not allowed
|
||||
var shadow_hue # (int 0..254) hue of color, may need to be extended to 0..360 for value in degrees
|
||||
var shadow_sat # (int 0..254) saturation of color
|
||||
|
||||
#############################################################
|
||||
# Constructor
|
||||
@ -54,16 +64,56 @@ class Matter_Plugin_Light3 : Matter_Plugin_Light1
|
||||
# Update shadow
|
||||
#
|
||||
def update_shadow()
|
||||
import light
|
||||
super(self).update_shadow()
|
||||
var light_status = light.get()
|
||||
if light_status != nil
|
||||
var hue = light_status.find('hue', nil)
|
||||
var sat = light_status.find('sat', nil)
|
||||
if hue != nil hue = tasmota.scale_uint(hue, 0, 360, 0, 254) else hue = self.shadow_hue end
|
||||
if sat != nil sat = tasmota.scale_uint(sat, 0, 255, 0, 254) else sat = self.shadow_sat end
|
||||
if hue != self.shadow_hue self.attribute_updated(0x0300, 0x0000) self.shadow_hue = hue end
|
||||
if sat != self.shadow_sat self.attribute_updated(0x0300, 0x0001) self.shadow_sat = sat end
|
||||
if !self.virtual
|
||||
import light
|
||||
var light_status = light.get()
|
||||
if light_status != nil
|
||||
var hue = light_status.find('hue', nil)
|
||||
var sat = light_status.find('sat', nil)
|
||||
if hue != nil hue = tasmota.scale_uint(hue, 0, 360, 0, 254) else hue = self.shadow_hue end
|
||||
if sat != nil sat = tasmota.scale_uint(sat, 0, 255, 0, 254) else sat = self.shadow_sat end
|
||||
if hue != self.shadow_hue self.attribute_updated(0x0300, 0x0000) self.shadow_hue = hue end
|
||||
if sat != self.shadow_sat self.attribute_updated(0x0300, 0x0001) self.shadow_sat = sat end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
#############################################################
|
||||
# set_hue_sat
|
||||
#
|
||||
# `hue` 0..254 or `nil`
|
||||
# `sat` 0..255 or `nil`
|
||||
def set_hue_sat(hue_254, sat_254)
|
||||
# sanity checks on values
|
||||
if hue_254 != nil
|
||||
if hue_254 < 0 hue_254 = 0 end
|
||||
if hue_254 > 254 hue_254 = 254 end
|
||||
end
|
||||
if sat_254 != nil
|
||||
if sat_254 < 0 sat_254 = 0 end
|
||||
if sat_254 > 254 sat_254 = 254 end
|
||||
end
|
||||
|
||||
if !self.virtual
|
||||
var hue_360 = (hue_254 != nil) ? tasmota.scale_uint(hue_254, 0, 254, 0, 360) : nil
|
||||
var sat_255 = (sat_254 != nil) ? tasmota.scale_uint(sat_254, 0, 254, 0, 255) : nil
|
||||
|
||||
if (hue_360 != nil) && (sat_255 != nil)
|
||||
light.set({'hue': hue_360, 'sat': sat_255})
|
||||
elif (hue_360 != nil)
|
||||
light.set({'hue': hue_360})
|
||||
else
|
||||
light.set({'sat': sat_255})
|
||||
end
|
||||
self.update_shadow()
|
||||
else
|
||||
if hue_254 != nil
|
||||
if hue_254 != self.shadow_hue self.attribute_updated(0x0300, 0x0000) self.shadow_hue = hue_254 end
|
||||
end
|
||||
if sat_254 != nil
|
||||
if sat_254 != self.shadow_sat self.attribute_updated(0x0300, 0x0001) self.shadow_sat = sat_254 end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@ -124,10 +174,9 @@ class Matter_Plugin_Light3 : Matter_Plugin_Light1
|
||||
self.update_shadow_lazy()
|
||||
if command == 0x0000 # ---------- MoveToHue ----------
|
||||
var hue_in = val.findsubval(0) # Hue 0..254
|
||||
var hue = tasmota.scale_uint(hue_in, 0, 254, 0, 360)
|
||||
light.set({'hue': hue})
|
||||
self.update_shadow()
|
||||
self.set_hue_sat(hue_in, nil)
|
||||
ctx.log = "hue:"+str(hue_in)
|
||||
self.publish_command('Hue', hue_in)
|
||||
return true
|
||||
elif command == 0x0001 # ---------- MoveHue ----------
|
||||
# TODO, we don't really support it
|
||||
@ -137,10 +186,9 @@ class Matter_Plugin_Light3 : Matter_Plugin_Light1
|
||||
return true
|
||||
elif command == 0x0003 # ---------- MoveToSaturation ----------
|
||||
var sat_in = val.findsubval(0) # Sat 0..254
|
||||
var sat = tasmota.scale_uint(sat_in, 0, 254, 0, 255)
|
||||
light.set({'sat': sat})
|
||||
self.update_shadow()
|
||||
self.set_hue_sat(nil, sat_in)
|
||||
ctx.log = "sat:"+str(sat_in)
|
||||
self.publish_command('Sat', sat_in)
|
||||
return true
|
||||
elif command == 0x0004 # ---------- MoveSaturation ----------
|
||||
# TODO, we don't really support it
|
||||
@ -150,12 +198,10 @@ class Matter_Plugin_Light3 : Matter_Plugin_Light1
|
||||
return true
|
||||
elif command == 0x0006 # ---------- MoveToHueAndSaturation ----------
|
||||
var hue_in = val.findsubval(0) # Hue 0..254
|
||||
var hue = tasmota.scale_uint(hue_in, 0, 254, 0, 360)
|
||||
var sat_in = val.findsubval(1) # Sat 0..254
|
||||
var sat = tasmota.scale_uint(sat_in, 0, 254, 0, 255)
|
||||
light.set({'hue': hue, 'sat': sat})
|
||||
self.update_shadow()
|
||||
self.set_hue_sat(hue_in, sat_in)
|
||||
ctx.log = "hue:"+str(hue_in)+" sat:"+str(sat_in)
|
||||
self.publish_command('Hue', hue_in, 'Sat', sat_in)
|
||||
return true
|
||||
elif command == 0x0047 # ---------- StopMoveStep ----------
|
||||
# TODO, we don't really support it
|
||||
|
@ -123,14 +123,17 @@ class Matter_Plugin_OnOff : Matter_Plugin_Device
|
||||
if command == 0x0000 # ---------- Off ----------
|
||||
self.set_onoff(false)
|
||||
self.update_shadow()
|
||||
self.publish_command('Power', 0)
|
||||
return true
|
||||
elif command == 0x0001 # ---------- On ----------
|
||||
self.set_onoff(true)
|
||||
self.update_shadow()
|
||||
self.publish_command('Power', 1)
|
||||
return true
|
||||
elif command == 0x0002 # ---------- Toggle ----------
|
||||
self.set_onoff(!self.shadow_onoff)
|
||||
self.update_shadow()
|
||||
self.publish_command('Power', self.shadow_onoff ? 1 : 0)
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
@ -346,7 +346,7 @@ be_local_closure(Matter_IM_attributedata2raw, /* name */
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_IM_process_invoke_request_solo, /* name */
|
||||
be_nested_proto(
|
||||
16, /* nstack */
|
||||
15, /* nstack */
|
||||
3, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
@ -354,7 +354,7 @@ be_local_closure(Matter_IM_process_invoke_request_solo, /* name */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[45]) { /* constants */
|
||||
( &(const bvalue[42]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(matter),
|
||||
/* K1 */ be_nested_str_weak(profiler),
|
||||
/* K2 */ be_nested_str_weak(log),
|
||||
@ -373,37 +373,34 @@ be_local_closure(Matter_IM_process_invoke_request_solo, /* name */
|
||||
/* K15 */ be_nested_str_weak(_X28),
|
||||
/* K16 */ be_nested_str_weak(_X29_X20),
|
||||
/* K17 */ be_nested_str_weak(),
|
||||
/* K18 */ be_nested_str_weak(endpoint),
|
||||
/* K19 */ be_const_int(0),
|
||||
/* K20 */ be_const_int(2),
|
||||
/* K21 */ be_const_int(3),
|
||||
/* K22 */ be_nested_str_weak(tasmota),
|
||||
/* K23 */ be_nested_str_weak(loglevel),
|
||||
/* K24 */ be_nested_str_weak(MTR_X3A_X20_X3ECommand1_X20_X20_X28_X256i_X29_X20_X25s_X20_X25s_X20_X25s),
|
||||
/* K25 */ be_nested_str_weak(local_session_id),
|
||||
/* K26 */ be_nested_str_weak(add),
|
||||
/* K27 */ be_const_int(354943030),
|
||||
/* K28 */ be_const_int(1),
|
||||
/* K29 */ be_nested_str_weak(SUCCESS),
|
||||
/* K30 */ be_nested_str_weak(invokeresponse2raw),
|
||||
/* K31 */ be_nested_str_weak(MTR_X3A_X20_X3CReplied_X20_X20_X20_X28_X256i_X29_X20OK_X20exch_X3D_X25i),
|
||||
/* K32 */ be_nested_str_weak(exchange_id),
|
||||
/* K33 */ be_nested_str_weak(MTR_X3A_X20_X3CReplied_X20_X20_X20_X28_X256i_X29_X20_X25s_X20_X25s),
|
||||
/* K34 */ be_nested_str_weak(MTR_X3A_X20_X3CReplied_X20_X20_X20_X28_X256i_X29_X20Status_X3D0x_X2502X_X20exch_X3D_X25i),
|
||||
/* K35 */ be_nested_str_weak(MTR_X3A_X20_Ignore_X20_X20_X20_X20_X28_X256i_X29_X20exch_X3D_X25i),
|
||||
/* K36 */ be_const_int(405077761),
|
||||
/* K37 */ be_nested_str_weak(build_response),
|
||||
/* K38 */ be_nested_str_weak(message_handler),
|
||||
/* K39 */ be_nested_str_weak(raw),
|
||||
/* K40 */ be_nested_str_weak(clear),
|
||||
/* K41 */ be_nested_str_weak(encode_frame),
|
||||
/* K42 */ be_nested_str_weak(encrypt),
|
||||
/* K43 */ be_nested_str_weak(send_response_frame),
|
||||
/* K44 */ be_nested_str_weak(RESPONSE_X20SENT),
|
||||
/* K18 */ be_nested_str_weak(tasmota),
|
||||
/* K19 */ be_nested_str_weak(loglevel),
|
||||
/* K20 */ be_const_int(3),
|
||||
/* K21 */ be_nested_str_weak(MTR_X3A_X20_X3ECommand1_X20_X20_X28_X256i_X29_X20_X25s_X20_X25s_X20_X25s),
|
||||
/* K22 */ be_nested_str_weak(local_session_id),
|
||||
/* K23 */ be_nested_str_weak(add),
|
||||
/* K24 */ be_const_int(354943030),
|
||||
/* K25 */ be_const_int(1),
|
||||
/* K26 */ be_nested_str_weak(SUCCESS),
|
||||
/* K27 */ be_nested_str_weak(invokeresponse2raw),
|
||||
/* K28 */ be_nested_str_weak(MTR_X3A_X20_X3CReplied_X20_X20_X20_X28_X256i_X29_X20OK_X20exch_X3D_X25i),
|
||||
/* K29 */ be_nested_str_weak(exchange_id),
|
||||
/* K30 */ be_nested_str_weak(MTR_X3A_X20_X3CReplied_X20_X20_X20_X28_X256i_X29_X20_X25s_X20_X25s),
|
||||
/* K31 */ be_nested_str_weak(MTR_X3A_X20_X3CReplied_X20_X20_X20_X28_X256i_X29_X20Status_X3D0x_X2502X_X20exch_X3D_X25i),
|
||||
/* K32 */ be_nested_str_weak(MTR_X3A_X20_Ignore_X20_X20_X20_X20_X28_X256i_X29_X20exch_X3D_X25i),
|
||||
/* K33 */ be_const_int(405077761),
|
||||
/* K34 */ be_nested_str_weak(build_response),
|
||||
/* K35 */ be_nested_str_weak(message_handler),
|
||||
/* K36 */ be_nested_str_weak(raw),
|
||||
/* K37 */ be_nested_str_weak(clear),
|
||||
/* K38 */ be_nested_str_weak(encode_frame),
|
||||
/* K39 */ be_nested_str_weak(encrypt),
|
||||
/* K40 */ be_nested_str_weak(send_response_frame),
|
||||
/* K41 */ be_nested_str_weak(RESPONSE_X20SENT),
|
||||
}),
|
||||
be_str_weak(process_invoke_request_solo),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[214]) { /* code */
|
||||
( &(const binstruction[208]) { /* code */
|
||||
0xB80E0000, // 0000 GETNGBL R3 K0
|
||||
0x880C0701, // 0001 GETMBR R3 R3 K1
|
||||
0x8C0C0702, // 0002 GETMET R3 R3 K2
|
||||
@ -443,181 +440,175 @@ be_local_closure(Matter_IM_process_invoke_request_solo, /* name */
|
||||
0x00180D10, // 0024 ADD R6 R6 K16
|
||||
0x70020000, // 0025 JMP #0027
|
||||
0x58180011, // 0026 LDCONST R6 K17
|
||||
0x881C0512, // 0027 GETMBR R7 R2 K18
|
||||
0x201C0F13, // 0028 NE R7 R7 K19
|
||||
0x781E0001, // 0029 JMPF R7 #002C
|
||||
0x581C0014, // 002A LDCONST R7 K20
|
||||
0x70020000, // 002B JMP #002D
|
||||
0x581C0015, // 002C LDCONST R7 K21
|
||||
0xB8222C00, // 002D GETNGBL R8 K22
|
||||
0x8C201117, // 002E GETMET R8 R8 K23
|
||||
0x5C280E00, // 002F MOVE R10 R7
|
||||
0x7C200400, // 0030 CALL R8 2
|
||||
0x7822000E, // 0031 JMPF R8 #0041
|
||||
0xB8222C00, // 0032 GETNGBL R8 K22
|
||||
0x8C201102, // 0033 GETMET R8 R8 K2
|
||||
0x60280018, // 0034 GETGBL R10 G24
|
||||
0x582C0018, // 0035 LDCONST R11 K24
|
||||
0x8830030C, // 0036 GETMBR R12 R1 K12
|
||||
0x88301919, // 0037 GETMBR R12 R12 K25
|
||||
0x5C340800, // 0038 MOVE R13 R4
|
||||
0x780E0001, // 0039 JMPF R3 #003C
|
||||
0x5C380600, // 003A MOVE R14 R3
|
||||
0x70020000, // 003B JMP #003D
|
||||
0x58380011, // 003C LDCONST R14 K17
|
||||
0x5C3C0C00, // 003D MOVE R15 R6
|
||||
0x7C280A00, // 003E CALL R10 5
|
||||
0x5C2C0E00, // 003F MOVE R11 R7
|
||||
0x7C200600, // 0040 CALL R8 3
|
||||
0x4C200000, // 0041 LDNIL R8
|
||||
0x900A0408, // 0042 SETMBR R2 K2 R8
|
||||
0x60200015, // 0043 GETGBL R8 G21
|
||||
0x5426002F, // 0044 LDINT R9 48
|
||||
0x7C200200, // 0045 CALL R8 1
|
||||
0x8C24111A, // 0046 GETMET R9 R8 K26
|
||||
0x582C001B, // 0047 LDCONST R11 K27
|
||||
0x5431FFFB, // 0048 LDINT R12 -4
|
||||
0x7C240600, // 0049 CALL R9 3
|
||||
0x8C24111A, // 004A GETMET R9 R8 K26
|
||||
0x582C001C, // 004B LDCONST R11 K28
|
||||
0x5830001C, // 004C LDCONST R12 K28
|
||||
0x7C240600, // 004D CALL R9 3
|
||||
0x50240200, // 004E LDBOOL R9 1 0
|
||||
0x1C240A09, // 004F EQ R9 R5 R9
|
||||
0x74260004, // 0050 JMPT R9 #0056
|
||||
0x88240505, // 0051 GETMBR R9 R2 K5
|
||||
0xB82A0000, // 0052 GETNGBL R10 K0
|
||||
0x8828151D, // 0053 GETMBR R10 R10 K29
|
||||
0x1C24120A, // 0054 EQ R9 R9 R10
|
||||
0x78260017, // 0055 JMPF R9 #006E
|
||||
0xB8260000, // 0056 GETNGBL R9 K0
|
||||
0x8824131D, // 0057 GETMBR R9 R9 K29
|
||||
0x900A0A09, // 0058 SETMBR R2 K5 R9
|
||||
0x8C24011E, // 0059 GETMET R9 R0 K30
|
||||
0x5C2C1000, // 005A MOVE R11 R8
|
||||
0x5C300400, // 005B MOVE R12 R2
|
||||
0x4C340000, // 005C LDNIL R13
|
||||
0x7C240800, // 005D CALL R9 4
|
||||
0xB8262C00, // 005E GETNGBL R9 K22
|
||||
0x8C241317, // 005F GETMET R9 R9 K23
|
||||
0x582C0015, // 0060 LDCONST R11 K21
|
||||
0x7C240400, // 0061 CALL R9 2
|
||||
0x78260009, // 0062 JMPF R9 #006D
|
||||
0xB8262C00, // 0063 GETNGBL R9 K22
|
||||
0x8C241302, // 0064 GETMET R9 R9 K2
|
||||
0x602C0018, // 0065 GETGBL R11 G24
|
||||
0x5830001F, // 0066 LDCONST R12 K31
|
||||
0x8834030C, // 0067 GETMBR R13 R1 K12
|
||||
0x88341B19, // 0068 GETMBR R13 R13 K25
|
||||
0x88380320, // 0069 GETMBR R14 R1 K32
|
||||
0x7C2C0600, // 006A CALL R11 3
|
||||
0x58300015, // 006B LDCONST R12 K21
|
||||
0x7C240600, // 006C CALL R9 3
|
||||
0x70020046, // 006D JMP #00B5
|
||||
0x4C240000, // 006E LDNIL R9
|
||||
0x20240A09, // 006F NE R9 R5 R9
|
||||
0x78260018, // 0070 JMPF R9 #008A
|
||||
0x8C24011E, // 0071 GETMET R9 R0 K30
|
||||
0x5C2C1000, // 0072 MOVE R11 R8
|
||||
0x5C300400, // 0073 MOVE R12 R2
|
||||
0x5C340A00, // 0074 MOVE R13 R5
|
||||
0x7C240800, // 0075 CALL R9 4
|
||||
0x5C240600, // 0076 MOVE R9 R3
|
||||
0x74260000, // 0077 JMPT R9 #0079
|
||||
0x580C0011, // 0078 LDCONST R3 K17
|
||||
0xB8262C00, // 0079 GETNGBL R9 K22
|
||||
0x8C241317, // 007A GETMET R9 R9 K23
|
||||
0x582C0015, // 007B LDCONST R11 K21
|
||||
0x7C240400, // 007C CALL R9 2
|
||||
0x7826000A, // 007D JMPF R9 #0089
|
||||
0xB8262C00, // 007E GETNGBL R9 K22
|
||||
0x8C241302, // 007F GETMET R9 R9 K2
|
||||
0x602C0018, // 0080 GETGBL R11 G24
|
||||
0x58300021, // 0081 LDCONST R12 K33
|
||||
0x8834030C, // 0082 GETMBR R13 R1 K12
|
||||
0x88341B19, // 0083 GETMBR R13 R13 K25
|
||||
0x5C380400, // 0084 MOVE R14 R2
|
||||
0x5C3C0600, // 0085 MOVE R15 R3
|
||||
0x7C2C0800, // 0086 CALL R11 4
|
||||
0x58300015, // 0087 LDCONST R12 K21
|
||||
0x7C240600, // 0088 CALL R9 3
|
||||
0x7002002A, // 0089 JMP #00B5
|
||||
0x88240505, // 008A GETMBR R9 R2 K5
|
||||
0x4C280000, // 008B LDNIL R10
|
||||
0x2024120A, // 008C NE R9 R9 R10
|
||||
0x78260015, // 008D JMPF R9 #00A4
|
||||
0x8C24011E, // 008E GETMET R9 R0 K30
|
||||
0x5C2C1000, // 008F MOVE R11 R8
|
||||
0x5C300400, // 0090 MOVE R12 R2
|
||||
0x4C340000, // 0091 LDNIL R13
|
||||
0x7C240800, // 0092 CALL R9 4
|
||||
0xB8262C00, // 0093 GETNGBL R9 K22
|
||||
0x8C241317, // 0094 GETMET R9 R9 K23
|
||||
0x582C0015, // 0095 LDCONST R11 K21
|
||||
0x7C240400, // 0096 CALL R9 2
|
||||
0x7826000A, // 0097 JMPF R9 #00A3
|
||||
0xB8262C00, // 0098 GETNGBL R9 K22
|
||||
0x8C241302, // 0099 GETMET R9 R9 K2
|
||||
0x602C0018, // 009A GETGBL R11 G24
|
||||
0x58300022, // 009B LDCONST R12 K34
|
||||
0x8834030C, // 009C GETMBR R13 R1 K12
|
||||
0x88341B19, // 009D GETMBR R13 R13 K25
|
||||
0x88380505, // 009E GETMBR R14 R2 K5
|
||||
0x883C0320, // 009F GETMBR R15 R1 K32
|
||||
0x7C2C0800, // 00A0 CALL R11 4
|
||||
0x58300015, // 00A1 LDCONST R12 K21
|
||||
0x7C240600, // 00A2 CALL R9 3
|
||||
0x70020010, // 00A3 JMP #00B5
|
||||
0xB8262C00, // 00A4 GETNGBL R9 K22
|
||||
0x8C241317, // 00A5 GETMET R9 R9 K23
|
||||
0x582C0015, // 00A6 LDCONST R11 K21
|
||||
0x7C240400, // 00A7 CALL R9 2
|
||||
0x78260009, // 00A8 JMPF R9 #00B3
|
||||
0xB8262C00, // 00A9 GETNGBL R9 K22
|
||||
0x8C241302, // 00AA GETMET R9 R9 K2
|
||||
0x602C0018, // 00AB GETGBL R11 G24
|
||||
0x58300023, // 00AC LDCONST R12 K35
|
||||
0x8834030C, // 00AD GETMBR R13 R1 K12
|
||||
0x88341B19, // 00AE GETMBR R13 R13 K25
|
||||
0x88380320, // 00AF GETMBR R14 R1 K32
|
||||
0x7C2C0600, // 00B0 CALL R11 3
|
||||
0x58300015, // 00B1 LDCONST R12 K21
|
||||
0x7C240600, // 00B2 CALL R9 3
|
||||
0x50240000, // 00B3 LDBOOL R9 0 0
|
||||
0x80041200, // 00B4 RET 1 R9
|
||||
0x8C24111A, // 00B5 GETMET R9 R8 K26
|
||||
0x582C0024, // 00B6 LDCONST R11 K36
|
||||
0x5431FFFB, // 00B7 LDINT R12 -4
|
||||
0x7C240600, // 00B8 CALL R9 3
|
||||
0x8C24111A, // 00B9 GETMET R9 R8 K26
|
||||
0x542E0017, // 00BA LDINT R11 24
|
||||
0x5830001C, // 00BB LDCONST R12 K28
|
||||
0x7C240600, // 00BC CALL R9 3
|
||||
0x8C240325, // 00BD GETMET R9 R1 K37
|
||||
0x542E0008, // 00BE LDINT R11 9
|
||||
0x50300200, // 00BF LDBOOL R12 1 0
|
||||
0x7C240600, // 00C0 CALL R9 3
|
||||
0x8828010A, // 00C1 GETMBR R10 R0 K10
|
||||
0x88281526, // 00C2 GETMBR R10 R10 K38
|
||||
0x882C0327, // 00C3 GETMBR R11 R1 K39
|
||||
0x8C301728, // 00C4 GETMET R12 R11 K40
|
||||
0x7C300200, // 00C5 CALL R12 1
|
||||
0x8C301329, // 00C6 GETMET R12 R9 K41
|
||||
0x5C381000, // 00C7 MOVE R14 R8
|
||||
0x5C3C1600, // 00C8 MOVE R15 R11
|
||||
0x7C300600, // 00C9 CALL R12 3
|
||||
0x8C30132A, // 00CA GETMET R12 R9 K42
|
||||
0x7C300200, // 00CB CALL R12 1
|
||||
0x8C30152B, // 00CC GETMET R12 R10 K43
|
||||
0x5C381200, // 00CD MOVE R14 R9
|
||||
0x7C300400, // 00CE CALL R12 2
|
||||
0xB8320000, // 00CF GETNGBL R12 K0
|
||||
0x88301901, // 00D0 GETMBR R12 R12 K1
|
||||
0x8C301902, // 00D1 GETMET R12 R12 K2
|
||||
0x5838002C, // 00D2 LDCONST R14 K44
|
||||
0x7C300400, // 00D3 CALL R12 2
|
||||
0x50300200, // 00D4 LDBOOL R12 1 0
|
||||
0x80041800, // 00D5 RET 1 R12
|
||||
0xB81E2400, // 0027 GETNGBL R7 K18
|
||||
0x8C1C0F13, // 0028 GETMET R7 R7 K19
|
||||
0x58240014, // 0029 LDCONST R9 K20
|
||||
0x7C1C0400, // 002A CALL R7 2
|
||||
0x781E000E, // 002B JMPF R7 #003B
|
||||
0xB81E2400, // 002C GETNGBL R7 K18
|
||||
0x8C1C0F02, // 002D GETMET R7 R7 K2
|
||||
0x60240018, // 002E GETGBL R9 G24
|
||||
0x58280015, // 002F LDCONST R10 K21
|
||||
0x882C030C, // 0030 GETMBR R11 R1 K12
|
||||
0x882C1716, // 0031 GETMBR R11 R11 K22
|
||||
0x5C300800, // 0032 MOVE R12 R4
|
||||
0x780E0001, // 0033 JMPF R3 #0036
|
||||
0x5C340600, // 0034 MOVE R13 R3
|
||||
0x70020000, // 0035 JMP #0037
|
||||
0x58340011, // 0036 LDCONST R13 K17
|
||||
0x5C380C00, // 0037 MOVE R14 R6
|
||||
0x7C240A00, // 0038 CALL R9 5
|
||||
0x58280014, // 0039 LDCONST R10 K20
|
||||
0x7C1C0600, // 003A CALL R7 3
|
||||
0x4C1C0000, // 003B LDNIL R7
|
||||
0x900A0407, // 003C SETMBR R2 K2 R7
|
||||
0x601C0015, // 003D GETGBL R7 G21
|
||||
0x5422002F, // 003E LDINT R8 48
|
||||
0x7C1C0200, // 003F CALL R7 1
|
||||
0x8C200F17, // 0040 GETMET R8 R7 K23
|
||||
0x58280018, // 0041 LDCONST R10 K24
|
||||
0x542DFFFB, // 0042 LDINT R11 -4
|
||||
0x7C200600, // 0043 CALL R8 3
|
||||
0x8C200F17, // 0044 GETMET R8 R7 K23
|
||||
0x58280019, // 0045 LDCONST R10 K25
|
||||
0x582C0019, // 0046 LDCONST R11 K25
|
||||
0x7C200600, // 0047 CALL R8 3
|
||||
0x50200200, // 0048 LDBOOL R8 1 0
|
||||
0x1C200A08, // 0049 EQ R8 R5 R8
|
||||
0x74220004, // 004A JMPT R8 #0050
|
||||
0x88200505, // 004B GETMBR R8 R2 K5
|
||||
0xB8260000, // 004C GETNGBL R9 K0
|
||||
0x8824131A, // 004D GETMBR R9 R9 K26
|
||||
0x1C201009, // 004E EQ R8 R8 R9
|
||||
0x78220017, // 004F JMPF R8 #0068
|
||||
0xB8220000, // 0050 GETNGBL R8 K0
|
||||
0x8820111A, // 0051 GETMBR R8 R8 K26
|
||||
0x900A0A08, // 0052 SETMBR R2 K5 R8
|
||||
0x8C20011B, // 0053 GETMET R8 R0 K27
|
||||
0x5C280E00, // 0054 MOVE R10 R7
|
||||
0x5C2C0400, // 0055 MOVE R11 R2
|
||||
0x4C300000, // 0056 LDNIL R12
|
||||
0x7C200800, // 0057 CALL R8 4
|
||||
0xB8222400, // 0058 GETNGBL R8 K18
|
||||
0x8C201113, // 0059 GETMET R8 R8 K19
|
||||
0x58280014, // 005A LDCONST R10 K20
|
||||
0x7C200400, // 005B CALL R8 2
|
||||
0x78220009, // 005C JMPF R8 #0067
|
||||
0xB8222400, // 005D GETNGBL R8 K18
|
||||
0x8C201102, // 005E GETMET R8 R8 K2
|
||||
0x60280018, // 005F GETGBL R10 G24
|
||||
0x582C001C, // 0060 LDCONST R11 K28
|
||||
0x8830030C, // 0061 GETMBR R12 R1 K12
|
||||
0x88301916, // 0062 GETMBR R12 R12 K22
|
||||
0x8834031D, // 0063 GETMBR R13 R1 K29
|
||||
0x7C280600, // 0064 CALL R10 3
|
||||
0x582C0014, // 0065 LDCONST R11 K20
|
||||
0x7C200600, // 0066 CALL R8 3
|
||||
0x70020046, // 0067 JMP #00AF
|
||||
0x4C200000, // 0068 LDNIL R8
|
||||
0x20200A08, // 0069 NE R8 R5 R8
|
||||
0x78220018, // 006A JMPF R8 #0084
|
||||
0x8C20011B, // 006B GETMET R8 R0 K27
|
||||
0x5C280E00, // 006C MOVE R10 R7
|
||||
0x5C2C0400, // 006D MOVE R11 R2
|
||||
0x5C300A00, // 006E MOVE R12 R5
|
||||
0x7C200800, // 006F CALL R8 4
|
||||
0x5C200600, // 0070 MOVE R8 R3
|
||||
0x74220000, // 0071 JMPT R8 #0073
|
||||
0x580C0011, // 0072 LDCONST R3 K17
|
||||
0xB8222400, // 0073 GETNGBL R8 K18
|
||||
0x8C201113, // 0074 GETMET R8 R8 K19
|
||||
0x58280014, // 0075 LDCONST R10 K20
|
||||
0x7C200400, // 0076 CALL R8 2
|
||||
0x7822000A, // 0077 JMPF R8 #0083
|
||||
0xB8222400, // 0078 GETNGBL R8 K18
|
||||
0x8C201102, // 0079 GETMET R8 R8 K2
|
||||
0x60280018, // 007A GETGBL R10 G24
|
||||
0x582C001E, // 007B LDCONST R11 K30
|
||||
0x8830030C, // 007C GETMBR R12 R1 K12
|
||||
0x88301916, // 007D GETMBR R12 R12 K22
|
||||
0x5C340400, // 007E MOVE R13 R2
|
||||
0x5C380600, // 007F MOVE R14 R3
|
||||
0x7C280800, // 0080 CALL R10 4
|
||||
0x582C0014, // 0081 LDCONST R11 K20
|
||||
0x7C200600, // 0082 CALL R8 3
|
||||
0x7002002A, // 0083 JMP #00AF
|
||||
0x88200505, // 0084 GETMBR R8 R2 K5
|
||||
0x4C240000, // 0085 LDNIL R9
|
||||
0x20201009, // 0086 NE R8 R8 R9
|
||||
0x78220015, // 0087 JMPF R8 #009E
|
||||
0x8C20011B, // 0088 GETMET R8 R0 K27
|
||||
0x5C280E00, // 0089 MOVE R10 R7
|
||||
0x5C2C0400, // 008A MOVE R11 R2
|
||||
0x4C300000, // 008B LDNIL R12
|
||||
0x7C200800, // 008C CALL R8 4
|
||||
0xB8222400, // 008D GETNGBL R8 K18
|
||||
0x8C201113, // 008E GETMET R8 R8 K19
|
||||
0x58280014, // 008F LDCONST R10 K20
|
||||
0x7C200400, // 0090 CALL R8 2
|
||||
0x7822000A, // 0091 JMPF R8 #009D
|
||||
0xB8222400, // 0092 GETNGBL R8 K18
|
||||
0x8C201102, // 0093 GETMET R8 R8 K2
|
||||
0x60280018, // 0094 GETGBL R10 G24
|
||||
0x582C001F, // 0095 LDCONST R11 K31
|
||||
0x8830030C, // 0096 GETMBR R12 R1 K12
|
||||
0x88301916, // 0097 GETMBR R12 R12 K22
|
||||
0x88340505, // 0098 GETMBR R13 R2 K5
|
||||
0x8838031D, // 0099 GETMBR R14 R1 K29
|
||||
0x7C280800, // 009A CALL R10 4
|
||||
0x582C0014, // 009B LDCONST R11 K20
|
||||
0x7C200600, // 009C CALL R8 3
|
||||
0x70020010, // 009D JMP #00AF
|
||||
0xB8222400, // 009E GETNGBL R8 K18
|
||||
0x8C201113, // 009F GETMET R8 R8 K19
|
||||
0x58280014, // 00A0 LDCONST R10 K20
|
||||
0x7C200400, // 00A1 CALL R8 2
|
||||
0x78220009, // 00A2 JMPF R8 #00AD
|
||||
0xB8222400, // 00A3 GETNGBL R8 K18
|
||||
0x8C201102, // 00A4 GETMET R8 R8 K2
|
||||
0x60280018, // 00A5 GETGBL R10 G24
|
||||
0x582C0020, // 00A6 LDCONST R11 K32
|
||||
0x8830030C, // 00A7 GETMBR R12 R1 K12
|
||||
0x88301916, // 00A8 GETMBR R12 R12 K22
|
||||
0x8834031D, // 00A9 GETMBR R13 R1 K29
|
||||
0x7C280600, // 00AA CALL R10 3
|
||||
0x582C0014, // 00AB LDCONST R11 K20
|
||||
0x7C200600, // 00AC CALL R8 3
|
||||
0x50200000, // 00AD LDBOOL R8 0 0
|
||||
0x80041000, // 00AE RET 1 R8
|
||||
0x8C200F17, // 00AF GETMET R8 R7 K23
|
||||
0x58280021, // 00B0 LDCONST R10 K33
|
||||
0x542DFFFB, // 00B1 LDINT R11 -4
|
||||
0x7C200600, // 00B2 CALL R8 3
|
||||
0x8C200F17, // 00B3 GETMET R8 R7 K23
|
||||
0x542A0017, // 00B4 LDINT R10 24
|
||||
0x582C0019, // 00B5 LDCONST R11 K25
|
||||
0x7C200600, // 00B6 CALL R8 3
|
||||
0x8C200322, // 00B7 GETMET R8 R1 K34
|
||||
0x542A0008, // 00B8 LDINT R10 9
|
||||
0x502C0200, // 00B9 LDBOOL R11 1 0
|
||||
0x7C200600, // 00BA CALL R8 3
|
||||
0x8824010A, // 00BB GETMBR R9 R0 K10
|
||||
0x88241323, // 00BC GETMBR R9 R9 K35
|
||||
0x88280324, // 00BD GETMBR R10 R1 K36
|
||||
0x8C2C1525, // 00BE GETMET R11 R10 K37
|
||||
0x7C2C0200, // 00BF CALL R11 1
|
||||
0x8C2C1126, // 00C0 GETMET R11 R8 K38
|
||||
0x5C340E00, // 00C1 MOVE R13 R7
|
||||
0x5C381400, // 00C2 MOVE R14 R10
|
||||
0x7C2C0600, // 00C3 CALL R11 3
|
||||
0x8C2C1127, // 00C4 GETMET R11 R8 K39
|
||||
0x7C2C0200, // 00C5 CALL R11 1
|
||||
0x8C2C1328, // 00C6 GETMET R11 R9 K40
|
||||
0x5C341000, // 00C7 MOVE R13 R8
|
||||
0x7C2C0400, // 00C8 CALL R11 2
|
||||
0xB82E0000, // 00C9 GETNGBL R11 K0
|
||||
0x882C1701, // 00CA GETMBR R11 R11 K1
|
||||
0x8C2C1702, // 00CB GETMET R11 R11 K2
|
||||
0x58340029, // 00CC LDCONST R13 K41
|
||||
0x7C2C0400, // 00CD CALL R11 2
|
||||
0x502C0200, // 00CE LDBOOL R11 1 0
|
||||
0x80041600, // 00CF RET 1 R11
|
||||
})
|
||||
)
|
||||
);
|
||||
@ -858,7 +849,7 @@ be_local_closure(Matter_IM_process_invoke_request, /* name */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[44]) { /* constants */
|
||||
( &(const bvalue[43]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(matter),
|
||||
/* K1 */ be_nested_str_weak(profiler),
|
||||
/* K2 */ be_nested_str_weak(log),
|
||||
@ -889,24 +880,23 @@ be_local_closure(Matter_IM_process_invoke_request, /* name */
|
||||
/* K27 */ be_nested_str_weak(tasmota),
|
||||
/* K28 */ be_nested_str_weak(MTR_X3A_X20_X3ECommand_X20_X20_X20_X28_X256i_X29_X20_X25s_X20_X25s_X20_X25s),
|
||||
/* K29 */ be_nested_str_weak(local_session_id),
|
||||
/* K30 */ be_const_int(0),
|
||||
/* K31 */ be_const_int(2),
|
||||
/* K32 */ be_const_int(3),
|
||||
/* K33 */ be_nested_str_weak(SUCCESS),
|
||||
/* K34 */ be_nested_str_weak(invokeresponse2raw),
|
||||
/* K35 */ be_nested_str_weak(push),
|
||||
/* K36 */ be_nested_str_weak(loglevel),
|
||||
/* K37 */ be_nested_str_weak(MTR_X3A_X20_X3CReplied_X20_X20_X20_X28_X256i_X29_X20OK_X20exch_X3D_X25i),
|
||||
/* K38 */ be_nested_str_weak(exchange_id),
|
||||
/* K39 */ be_nested_str_weak(MTR_X3A_X20_X3CReplied_X20_X20_X20_X28_X256i_X29_X20_X25s_X20_X25s),
|
||||
/* K40 */ be_nested_str_weak(MTR_X3A_X20_X3CReplied_X20_X20_X20_X28_X256i_X29_X20Status_X3D0x_X2502X_X20exch_X3D_X25i),
|
||||
/* K41 */ be_nested_str_weak(MTR_X3A_X20_Ignore_X20_X20_X20_X20_X28_X256i_X29_X20exch_X3D_X25i),
|
||||
/* K42 */ be_nested_str_weak(stop_iteration),
|
||||
/* K43 */ be_nested_str_weak(send_invoke_response),
|
||||
/* K30 */ be_const_int(3),
|
||||
/* K31 */ be_nested_str_weak(SUCCESS),
|
||||
/* K32 */ be_nested_str_weak(invokeresponse2raw),
|
||||
/* K33 */ be_nested_str_weak(push),
|
||||
/* K34 */ be_nested_str_weak(loglevel),
|
||||
/* K35 */ be_nested_str_weak(MTR_X3A_X20_X3CReplied_X20_X20_X20_X28_X256i_X29_X20OK_X20exch_X3D_X25i),
|
||||
/* K36 */ be_nested_str_weak(exchange_id),
|
||||
/* K37 */ be_nested_str_weak(MTR_X3A_X20_X3CReplied_X20_X20_X20_X28_X256i_X29_X20_X25s_X20_X25s),
|
||||
/* K38 */ be_nested_str_weak(MTR_X3A_X20_X3CReplied_X20_X20_X20_X28_X256i_X29_X20Status_X3D0x_X2502X_X20exch_X3D_X25i),
|
||||
/* K39 */ be_nested_str_weak(MTR_X3A_X20_Ignore_X20_X20_X20_X20_X28_X256i_X29_X20exch_X3D_X25i),
|
||||
/* K40 */ be_nested_str_weak(stop_iteration),
|
||||
/* K41 */ be_const_int(0),
|
||||
/* K42 */ be_nested_str_weak(send_invoke_response),
|
||||
}),
|
||||
be_str_weak(process_invoke_request),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[238]) { /* code */
|
||||
( &(const binstruction[233]) { /* code */
|
||||
0xB80E0000, // 0000 GETNGBL R3 K0
|
||||
0x880C0701, // 0001 GETMBR R3 R3 K1
|
||||
0x8C0C0702, // 0002 GETMET R3 R3 K2
|
||||
@ -925,7 +915,7 @@ be_local_closure(Matter_IM_process_invoke_request, /* name */
|
||||
0x88140908, // 000F GETMBR R5 R4 K8
|
||||
0x4C180000, // 0010 LDNIL R6
|
||||
0x20140A06, // 0011 NE R5 R5 R6
|
||||
0x781600D9, // 0012 JMPF R5 #00ED
|
||||
0x781600D4, // 0012 JMPF R5 #00E8
|
||||
0xB8160000, // 0013 GETNGBL R5 K0
|
||||
0x8C140B09, // 0014 GETMET R5 R5 K9
|
||||
0x7C140200, // 0015 CALL R5 1
|
||||
@ -937,7 +927,7 @@ be_local_closure(Matter_IM_process_invoke_request, /* name */
|
||||
0x60180010, // 001B GETGBL R6 G16
|
||||
0x881C0908, // 001C GETMBR R7 R4 K8
|
||||
0x7C180200, // 001D CALL R6 1
|
||||
0xA80200BC, // 001E EXBLK 0 #00DC
|
||||
0xA80200B7, // 001E EXBLK 0 #00D7
|
||||
0x5C1C0C00, // 001F MOVE R7 R6
|
||||
0x7C1C0000, // 0020 CALL R7 0
|
||||
0x88200F0D, // 0021 GETMBR R8 R7 K13
|
||||
@ -995,156 +985,151 @@ be_local_closure(Matter_IM_process_invoke_request, /* name */
|
||||
0x5848001A, // 0055 LDCONST R18 K26
|
||||
0x5C4C1600, // 0056 MOVE R19 R11
|
||||
0x7C380A00, // 0057 CALL R14 5
|
||||
0x883C070C, // 0058 GETMBR R15 R3 K12
|
||||
0x203C1F1E, // 0059 NE R15 R15 K30
|
||||
0x783E0001, // 005A JMPF R15 #005D
|
||||
0x583C001F, // 005B LDCONST R15 K31
|
||||
0x70020000, // 005C JMP #005E
|
||||
0x583C0020, // 005D LDCONST R15 K32
|
||||
0x7C300600, // 005E CALL R12 3
|
||||
0x4C300000, // 005F LDNIL R12
|
||||
0x900E040C, // 0060 SETMBR R3 K2 R12
|
||||
0x60300015, // 0061 GETGBL R12 G21
|
||||
0x5436001F, // 0062 LDINT R13 32
|
||||
0x7C300200, // 0063 CALL R12 1
|
||||
0x50340200, // 0064 LDBOOL R13 1 0
|
||||
0x1C34140D, // 0065 EQ R13 R10 R13
|
||||
0x74360004, // 0066 JMPT R13 #006C
|
||||
0x88340710, // 0067 GETMBR R13 R3 K16
|
||||
0xB83A0000, // 0068 GETNGBL R14 K0
|
||||
0x88381D21, // 0069 GETMBR R14 R14 K33
|
||||
0x1C341A0E, // 006A EQ R13 R13 R14
|
||||
0x7836001B, // 006B JMPF R13 #0088
|
||||
0xB8360000, // 006C GETNGBL R13 K0
|
||||
0x88341B21, // 006D GETMBR R13 R13 K33
|
||||
0x900E200D, // 006E SETMBR R3 K16 R13
|
||||
0x8C340122, // 006F GETMET R13 R0 K34
|
||||
0x5C3C1800, // 0070 MOVE R15 R12
|
||||
0x5C400600, // 0071 MOVE R16 R3
|
||||
0x4C440000, // 0072 LDNIL R17
|
||||
0x7C340800, // 0073 CALL R13 4
|
||||
0x88340B0B, // 0074 GETMBR R13 R5 K11
|
||||
0x8C341B23, // 0075 GETMET R13 R13 K35
|
||||
0x5C3C1800, // 0076 MOVE R15 R12
|
||||
0x7C340400, // 0077 CALL R13 2
|
||||
0x583C001E, // 0058 LDCONST R15 K30
|
||||
0x7C300600, // 0059 CALL R12 3
|
||||
0x4C300000, // 005A LDNIL R12
|
||||
0x900E040C, // 005B SETMBR R3 K2 R12
|
||||
0x60300015, // 005C GETGBL R12 G21
|
||||
0x5436001F, // 005D LDINT R13 32
|
||||
0x7C300200, // 005E CALL R12 1
|
||||
0x50340200, // 005F LDBOOL R13 1 0
|
||||
0x1C34140D, // 0060 EQ R13 R10 R13
|
||||
0x74360004, // 0061 JMPT R13 #0067
|
||||
0x88340710, // 0062 GETMBR R13 R3 K16
|
||||
0xB83A0000, // 0063 GETNGBL R14 K0
|
||||
0x88381D1F, // 0064 GETMBR R14 R14 K31
|
||||
0x1C341A0E, // 0065 EQ R13 R13 R14
|
||||
0x7836001B, // 0066 JMPF R13 #0083
|
||||
0xB8360000, // 0067 GETNGBL R13 K0
|
||||
0x88341B1F, // 0068 GETMBR R13 R13 K31
|
||||
0x900E200D, // 0069 SETMBR R3 K16 R13
|
||||
0x8C340120, // 006A GETMET R13 R0 K32
|
||||
0x5C3C1800, // 006B MOVE R15 R12
|
||||
0x5C400600, // 006C MOVE R16 R3
|
||||
0x4C440000, // 006D LDNIL R17
|
||||
0x7C340800, // 006E CALL R13 4
|
||||
0x88340B0B, // 006F GETMBR R13 R5 K11
|
||||
0x8C341B21, // 0070 GETMET R13 R13 K33
|
||||
0x5C3C1800, // 0071 MOVE R15 R12
|
||||
0x7C340400, // 0072 CALL R13 2
|
||||
0xB8363600, // 0073 GETNGBL R13 K27
|
||||
0x8C341B22, // 0074 GETMET R13 R13 K34
|
||||
0x583C001E, // 0075 LDCONST R15 K30
|
||||
0x7C340400, // 0076 CALL R13 2
|
||||
0x78360009, // 0077 JMPF R13 #0082
|
||||
0xB8363600, // 0078 GETNGBL R13 K27
|
||||
0x8C341B24, // 0079 GETMET R13 R13 K36
|
||||
0x583C0020, // 007A LDCONST R15 K32
|
||||
0x7C340400, // 007B CALL R13 2
|
||||
0x78360009, // 007C JMPF R13 #0087
|
||||
0xB8363600, // 007D GETNGBL R13 K27
|
||||
0x8C341B02, // 007E GETMET R13 R13 K2
|
||||
0x603C0018, // 007F GETGBL R15 G24
|
||||
0x58400025, // 0080 LDCONST R16 K37
|
||||
0x88440315, // 0081 GETMBR R17 R1 K21
|
||||
0x8844231D, // 0082 GETMBR R17 R17 K29
|
||||
0x88480326, // 0083 GETMBR R18 R1 K38
|
||||
0x7C3C0600, // 0084 CALL R15 3
|
||||
0x58400020, // 0085 LDCONST R16 K32
|
||||
0x7C340600, // 0086 CALL R13 3
|
||||
0x70020052, // 0087 JMP #00DB
|
||||
0x4C340000, // 0088 LDNIL R13
|
||||
0x2034140D, // 0089 NE R13 R10 R13
|
||||
0x78360022, // 008A JMPF R13 #00AE
|
||||
0x8C340122, // 008B GETMET R13 R0 K34
|
||||
0x5C3C1800, // 008C MOVE R15 R12
|
||||
0x5C400600, // 008D MOVE R16 R3
|
||||
0x5C441400, // 008E MOVE R17 R10
|
||||
0x7C340800, // 008F CALL R13 4
|
||||
0x88340B0B, // 0090 GETMBR R13 R5 K11
|
||||
0x8C341B23, // 0091 GETMET R13 R13 K35
|
||||
0x5C3C1800, // 0092 MOVE R15 R12
|
||||
0x7C340400, // 0093 CALL R13 2
|
||||
0xB8360000, // 0094 GETNGBL R13 K0
|
||||
0x8C341B12, // 0095 GETMET R13 R13 K18
|
||||
0x883C070E, // 0096 GETMBR R15 R3 K14
|
||||
0x8840070F, // 0097 GETMBR R16 R3 K15
|
||||
0x7C340600, // 0098 CALL R13 3
|
||||
0x5C201A00, // 0099 MOVE R8 R13
|
||||
0x5C341000, // 009A MOVE R13 R8
|
||||
0x74360000, // 009B JMPT R13 #009D
|
||||
0x5820001A, // 009C LDCONST R8 K26
|
||||
0x8C341B02, // 0079 GETMET R13 R13 K2
|
||||
0x603C0018, // 007A GETGBL R15 G24
|
||||
0x58400023, // 007B LDCONST R16 K35
|
||||
0x88440315, // 007C GETMBR R17 R1 K21
|
||||
0x8844231D, // 007D GETMBR R17 R17 K29
|
||||
0x88480324, // 007E GETMBR R18 R1 K36
|
||||
0x7C3C0600, // 007F CALL R15 3
|
||||
0x5840001E, // 0080 LDCONST R16 K30
|
||||
0x7C340600, // 0081 CALL R13 3
|
||||
0x70020052, // 0082 JMP #00D6
|
||||
0x4C340000, // 0083 LDNIL R13
|
||||
0x2034140D, // 0084 NE R13 R10 R13
|
||||
0x78360022, // 0085 JMPF R13 #00A9
|
||||
0x8C340120, // 0086 GETMET R13 R0 K32
|
||||
0x5C3C1800, // 0087 MOVE R15 R12
|
||||
0x5C400600, // 0088 MOVE R16 R3
|
||||
0x5C441400, // 0089 MOVE R17 R10
|
||||
0x7C340800, // 008A CALL R13 4
|
||||
0x88340B0B, // 008B GETMBR R13 R5 K11
|
||||
0x8C341B21, // 008C GETMET R13 R13 K33
|
||||
0x5C3C1800, // 008D MOVE R15 R12
|
||||
0x7C340400, // 008E CALL R13 2
|
||||
0xB8360000, // 008F GETNGBL R13 K0
|
||||
0x8C341B12, // 0090 GETMET R13 R13 K18
|
||||
0x883C070E, // 0091 GETMBR R15 R3 K14
|
||||
0x8840070F, // 0092 GETMBR R16 R3 K15
|
||||
0x7C340600, // 0093 CALL R13 3
|
||||
0x5C201A00, // 0094 MOVE R8 R13
|
||||
0x5C341000, // 0095 MOVE R13 R8
|
||||
0x74360000, // 0096 JMPT R13 #0098
|
||||
0x5820001A, // 0097 LDCONST R8 K26
|
||||
0xB8363600, // 0098 GETNGBL R13 K27
|
||||
0x8C341B22, // 0099 GETMET R13 R13 K34
|
||||
0x583C001E, // 009A LDCONST R15 K30
|
||||
0x7C340400, // 009B CALL R13 2
|
||||
0x7836000A, // 009C JMPF R13 #00A8
|
||||
0xB8363600, // 009D GETNGBL R13 K27
|
||||
0x8C341B24, // 009E GETMET R13 R13 K36
|
||||
0x583C0020, // 009F LDCONST R15 K32
|
||||
0x7C340400, // 00A0 CALL R13 2
|
||||
0x7836000A, // 00A1 JMPF R13 #00AD
|
||||
0xB8363600, // 00A2 GETNGBL R13 K27
|
||||
0x8C341B02, // 00A3 GETMET R13 R13 K2
|
||||
0x603C0018, // 00A4 GETGBL R15 G24
|
||||
0x58400027, // 00A5 LDCONST R16 K39
|
||||
0x88440315, // 00A6 GETMBR R17 R1 K21
|
||||
0x8844231D, // 00A7 GETMBR R17 R17 K29
|
||||
0x5C480600, // 00A8 MOVE R18 R3
|
||||
0x5C4C1000, // 00A9 MOVE R19 R8
|
||||
0x7C3C0800, // 00AA CALL R15 4
|
||||
0x58400020, // 00AB LDCONST R16 K32
|
||||
0x7C340600, // 00AC CALL R13 3
|
||||
0x7002002C, // 00AD JMP #00DB
|
||||
0x88340710, // 00AE GETMBR R13 R3 K16
|
||||
0x4C380000, // 00AF LDNIL R14
|
||||
0x20341A0E, // 00B0 NE R13 R13 R14
|
||||
0x78360019, // 00B1 JMPF R13 #00CC
|
||||
0x8C340122, // 00B2 GETMET R13 R0 K34
|
||||
0x5C3C1800, // 00B3 MOVE R15 R12
|
||||
0x5C400600, // 00B4 MOVE R16 R3
|
||||
0x4C440000, // 00B5 LDNIL R17
|
||||
0x7C340800, // 00B6 CALL R13 4
|
||||
0x88340B0B, // 00B7 GETMBR R13 R5 K11
|
||||
0x8C341B23, // 00B8 GETMET R13 R13 K35
|
||||
0x5C3C1800, // 00B9 MOVE R15 R12
|
||||
0x7C340400, // 00BA CALL R13 2
|
||||
0x8C341B02, // 009E GETMET R13 R13 K2
|
||||
0x603C0018, // 009F GETGBL R15 G24
|
||||
0x58400025, // 00A0 LDCONST R16 K37
|
||||
0x88440315, // 00A1 GETMBR R17 R1 K21
|
||||
0x8844231D, // 00A2 GETMBR R17 R17 K29
|
||||
0x5C480600, // 00A3 MOVE R18 R3
|
||||
0x5C4C1000, // 00A4 MOVE R19 R8
|
||||
0x7C3C0800, // 00A5 CALL R15 4
|
||||
0x5840001E, // 00A6 LDCONST R16 K30
|
||||
0x7C340600, // 00A7 CALL R13 3
|
||||
0x7002002C, // 00A8 JMP #00D6
|
||||
0x88340710, // 00A9 GETMBR R13 R3 K16
|
||||
0x4C380000, // 00AA LDNIL R14
|
||||
0x20341A0E, // 00AB NE R13 R13 R14
|
||||
0x78360019, // 00AC JMPF R13 #00C7
|
||||
0x8C340120, // 00AD GETMET R13 R0 K32
|
||||
0x5C3C1800, // 00AE MOVE R15 R12
|
||||
0x5C400600, // 00AF MOVE R16 R3
|
||||
0x4C440000, // 00B0 LDNIL R17
|
||||
0x7C340800, // 00B1 CALL R13 4
|
||||
0x88340B0B, // 00B2 GETMBR R13 R5 K11
|
||||
0x8C341B21, // 00B3 GETMET R13 R13 K33
|
||||
0x5C3C1800, // 00B4 MOVE R15 R12
|
||||
0x7C340400, // 00B5 CALL R13 2
|
||||
0xB8363600, // 00B6 GETNGBL R13 K27
|
||||
0x8C341B22, // 00B7 GETMET R13 R13 K34
|
||||
0x583C001E, // 00B8 LDCONST R15 K30
|
||||
0x7C340400, // 00B9 CALL R13 2
|
||||
0x7836000A, // 00BA JMPF R13 #00C6
|
||||
0xB8363600, // 00BB GETNGBL R13 K27
|
||||
0x8C341B24, // 00BC GETMET R13 R13 K36
|
||||
0x583C0020, // 00BD LDCONST R15 K32
|
||||
0x7C340400, // 00BE CALL R13 2
|
||||
0x7836000A, // 00BF JMPF R13 #00CB
|
||||
0xB8363600, // 00C0 GETNGBL R13 K27
|
||||
0x8C341B02, // 00C1 GETMET R13 R13 K2
|
||||
0x603C0018, // 00C2 GETGBL R15 G24
|
||||
0x58400028, // 00C3 LDCONST R16 K40
|
||||
0x88440315, // 00C4 GETMBR R17 R1 K21
|
||||
0x8844231D, // 00C5 GETMBR R17 R17 K29
|
||||
0x88480710, // 00C6 GETMBR R18 R3 K16
|
||||
0x884C0326, // 00C7 GETMBR R19 R1 K38
|
||||
0x7C3C0800, // 00C8 CALL R15 4
|
||||
0x58400020, // 00C9 LDCONST R16 K32
|
||||
0x7C340600, // 00CA CALL R13 3
|
||||
0x7002000E, // 00CB JMP #00DB
|
||||
0x8C341B02, // 00BC GETMET R13 R13 K2
|
||||
0x603C0018, // 00BD GETGBL R15 G24
|
||||
0x58400026, // 00BE LDCONST R16 K38
|
||||
0x88440315, // 00BF GETMBR R17 R1 K21
|
||||
0x8844231D, // 00C0 GETMBR R17 R17 K29
|
||||
0x88480710, // 00C1 GETMBR R18 R3 K16
|
||||
0x884C0324, // 00C2 GETMBR R19 R1 K36
|
||||
0x7C3C0800, // 00C3 CALL R15 4
|
||||
0x5840001E, // 00C4 LDCONST R16 K30
|
||||
0x7C340600, // 00C5 CALL R13 3
|
||||
0x7002000E, // 00C6 JMP #00D6
|
||||
0xB8363600, // 00C7 GETNGBL R13 K27
|
||||
0x8C341B22, // 00C8 GETMET R13 R13 K34
|
||||
0x583C001E, // 00C9 LDCONST R15 K30
|
||||
0x7C340400, // 00CA CALL R13 2
|
||||
0x78360009, // 00CB JMPF R13 #00D6
|
||||
0xB8363600, // 00CC GETNGBL R13 K27
|
||||
0x8C341B24, // 00CD GETMET R13 R13 K36
|
||||
0x583C0020, // 00CE LDCONST R15 K32
|
||||
0x7C340400, // 00CF CALL R13 2
|
||||
0x78360009, // 00D0 JMPF R13 #00DB
|
||||
0xB8363600, // 00D1 GETNGBL R13 K27
|
||||
0x8C341B02, // 00D2 GETMET R13 R13 K2
|
||||
0x603C0018, // 00D3 GETGBL R15 G24
|
||||
0x58400029, // 00D4 LDCONST R16 K41
|
||||
0x88440315, // 00D5 GETMBR R17 R1 K21
|
||||
0x8844231D, // 00D6 GETMBR R17 R17 K29
|
||||
0x88480326, // 00D7 GETMBR R18 R1 K38
|
||||
0x7C3C0600, // 00D8 CALL R15 3
|
||||
0x58400020, // 00D9 LDCONST R16 K32
|
||||
0x7C340600, // 00DA CALL R13 3
|
||||
0x7001FF42, // 00DB JMP #001F
|
||||
0x5818002A, // 00DC LDCONST R6 K42
|
||||
0xAC180200, // 00DD CATCH R6 1 0
|
||||
0xB0080000, // 00DE RAISE 2 R0 R0
|
||||
0x6018000C, // 00DF GETGBL R6 G12
|
||||
0x881C0B0B, // 00E0 GETMBR R7 R5 K11
|
||||
0x7C180200, // 00E1 CALL R6 1
|
||||
0x24180D1E, // 00E2 GT R6 R6 K30
|
||||
0x781A0004, // 00E3 JMPF R6 #00E9
|
||||
0x8C18012B, // 00E4 GETMET R6 R0 K43
|
||||
0x5C200200, // 00E5 MOVE R8 R1
|
||||
0x5C240A00, // 00E6 MOVE R9 R5
|
||||
0x7C180600, // 00E7 CALL R6 3
|
||||
0x70020001, // 00E8 JMP #00EB
|
||||
0x50180000, // 00E9 LDBOOL R6 0 0
|
||||
0x80040C00, // 00EA RET 1 R6
|
||||
0x50180200, // 00EB LDBOOL R6 1 0
|
||||
0x80040C00, // 00EC RET 1 R6
|
||||
0x80000000, // 00ED RET 0
|
||||
0x8C341B02, // 00CD GETMET R13 R13 K2
|
||||
0x603C0018, // 00CE GETGBL R15 G24
|
||||
0x58400027, // 00CF LDCONST R16 K39
|
||||
0x88440315, // 00D0 GETMBR R17 R1 K21
|
||||
0x8844231D, // 00D1 GETMBR R17 R17 K29
|
||||
0x88480324, // 00D2 GETMBR R18 R1 K36
|
||||
0x7C3C0600, // 00D3 CALL R15 3
|
||||
0x5840001E, // 00D4 LDCONST R16 K30
|
||||
0x7C340600, // 00D5 CALL R13 3
|
||||
0x7001FF47, // 00D6 JMP #001F
|
||||
0x58180028, // 00D7 LDCONST R6 K40
|
||||
0xAC180200, // 00D8 CATCH R6 1 0
|
||||
0xB0080000, // 00D9 RAISE 2 R0 R0
|
||||
0x6018000C, // 00DA GETGBL R6 G12
|
||||
0x881C0B0B, // 00DB GETMBR R7 R5 K11
|
||||
0x7C180200, // 00DC CALL R6 1
|
||||
0x24180D29, // 00DD GT R6 R6 K41
|
||||
0x781A0004, // 00DE JMPF R6 #00E4
|
||||
0x8C18012A, // 00DF GETMET R6 R0 K42
|
||||
0x5C200200, // 00E0 MOVE R8 R1
|
||||
0x5C240A00, // 00E1 MOVE R9 R5
|
||||
0x7C180600, // 00E2 CALL R6 3
|
||||
0x70020001, // 00E3 JMP #00E6
|
||||
0x50180000, // 00E4 LDBOOL R6 0 0
|
||||
0x80040C00, // 00E5 RET 1 R6
|
||||
0x50180200, // 00E6 LDBOOL R6 1 0
|
||||
0x80040C00, // 00E7 RET 1 R6
|
||||
0x80000000, // 00E8 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -293,7 +293,7 @@ be_local_closure(Matter_Plugin_Bridge_Light0_parse_update, /* name */
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_Plugin_Bridge_Light0_invoke_request, /* name */
|
||||
be_nested_proto(
|
||||
10, /* nstack */
|
||||
11, /* nstack */
|
||||
4, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
@ -301,54 +301,72 @@ be_local_closure(Matter_Plugin_Bridge_Light0_invoke_request, /* name */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 9]) { /* constants */
|
||||
( &(const bvalue[11]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(matter),
|
||||
/* K1 */ be_nested_str_weak(TLV),
|
||||
/* K2 */ be_nested_str_weak(cluster),
|
||||
/* K3 */ be_nested_str_weak(command),
|
||||
/* K4 */ be_const_int(0),
|
||||
/* K5 */ be_nested_str_weak(set_onoff),
|
||||
/* K6 */ be_const_int(1),
|
||||
/* K7 */ be_const_int(2),
|
||||
/* K8 */ be_nested_str_weak(shadow_onoff),
|
||||
/* K6 */ be_nested_str_weak(publish_command),
|
||||
/* K7 */ be_nested_str_weak(Power),
|
||||
/* K8 */ be_const_int(1),
|
||||
/* K9 */ be_const_int(2),
|
||||
/* K10 */ be_nested_str_weak(shadow_onoff),
|
||||
}),
|
||||
be_str_weak(invoke_request),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[34]) { /* code */
|
||||
( &(const binstruction[50]) { /* code */
|
||||
0xB8120000, // 0000 GETNGBL R4 K0
|
||||
0x88100901, // 0001 GETMBR R4 R4 K1
|
||||
0x88140702, // 0002 GETMBR R5 R3 K2
|
||||
0x88180703, // 0003 GETMBR R6 R3 K3
|
||||
0x541E0005, // 0004 LDINT R7 6
|
||||
0x1C1C0A07, // 0005 EQ R7 R5 R7
|
||||
0x781E0019, // 0006 JMPF R7 #0021
|
||||
0x781E0029, // 0006 JMPF R7 #0031
|
||||
0x1C1C0D04, // 0007 EQ R7 R6 K4
|
||||
0x781E0005, // 0008 JMPF R7 #000F
|
||||
0x781E0009, // 0008 JMPF R7 #0013
|
||||
0x8C1C0105, // 0009 GETMET R7 R0 K5
|
||||
0x50240000, // 000A LDBOOL R9 0 0
|
||||
0x7C1C0400, // 000B CALL R7 2
|
||||
0x501C0200, // 000C LDBOOL R7 1 0
|
||||
0x80040E00, // 000D RET 1 R7
|
||||
0x70020011, // 000E JMP #0021
|
||||
0x1C1C0D06, // 000F EQ R7 R6 K6
|
||||
0x781E0005, // 0010 JMPF R7 #0017
|
||||
0x8C1C0105, // 0011 GETMET R7 R0 K5
|
||||
0x50240200, // 0012 LDBOOL R9 1 0
|
||||
0x7C1C0400, // 0013 CALL R7 2
|
||||
0x501C0200, // 0014 LDBOOL R7 1 0
|
||||
0x80040E00, // 0015 RET 1 R7
|
||||
0x70020009, // 0016 JMP #0021
|
||||
0x1C1C0D07, // 0017 EQ R7 R6 K7
|
||||
0x781E0007, // 0018 JMPF R7 #0021
|
||||
0x8C1C0105, // 0019 GETMET R7 R0 K5
|
||||
0x88240108, // 001A GETMBR R9 R0 K8
|
||||
0x78260000, // 001B JMPF R9 #001D
|
||||
0x50240001, // 001C LDBOOL R9 0 1
|
||||
0x50240200, // 001D LDBOOL R9 1 0
|
||||
0x7C1C0400, // 001E CALL R7 2
|
||||
0x501C0200, // 001F LDBOOL R7 1 0
|
||||
0x80040E00, // 0020 RET 1 R7
|
||||
0x80000000, // 0021 RET 0
|
||||
0x8C1C0106, // 000C GETMET R7 R0 K6
|
||||
0x58240007, // 000D LDCONST R9 K7
|
||||
0x58280004, // 000E LDCONST R10 K4
|
||||
0x7C1C0600, // 000F CALL R7 3
|
||||
0x501C0200, // 0010 LDBOOL R7 1 0
|
||||
0x80040E00, // 0011 RET 1 R7
|
||||
0x7002001D, // 0012 JMP #0031
|
||||
0x1C1C0D08, // 0013 EQ R7 R6 K8
|
||||
0x781E0009, // 0014 JMPF R7 #001F
|
||||
0x8C1C0105, // 0015 GETMET R7 R0 K5
|
||||
0x50240200, // 0016 LDBOOL R9 1 0
|
||||
0x7C1C0400, // 0017 CALL R7 2
|
||||
0x8C1C0106, // 0018 GETMET R7 R0 K6
|
||||
0x58240007, // 0019 LDCONST R9 K7
|
||||
0x58280008, // 001A LDCONST R10 K8
|
||||
0x7C1C0600, // 001B CALL R7 3
|
||||
0x501C0200, // 001C LDBOOL R7 1 0
|
||||
0x80040E00, // 001D RET 1 R7
|
||||
0x70020011, // 001E JMP #0031
|
||||
0x1C1C0D09, // 001F EQ R7 R6 K9
|
||||
0x781E000F, // 0020 JMPF R7 #0031
|
||||
0x8C1C0105, // 0021 GETMET R7 R0 K5
|
||||
0x8824010A, // 0022 GETMBR R9 R0 K10
|
||||
0x78260000, // 0023 JMPF R9 #0025
|
||||
0x50240001, // 0024 LDBOOL R9 0 1
|
||||
0x50240200, // 0025 LDBOOL R9 1 0
|
||||
0x7C1C0400, // 0026 CALL R7 2
|
||||
0x8C1C0106, // 0027 GETMET R7 R0 K6
|
||||
0x58240007, // 0028 LDCONST R9 K7
|
||||
0x8828010A, // 0029 GETMBR R10 R0 K10
|
||||
0x782A0001, // 002A JMPF R10 #002D
|
||||
0x58280008, // 002B LDCONST R10 K8
|
||||
0x70020000, // 002C JMP #002E
|
||||
0x58280004, // 002D LDCONST R10 K4
|
||||
0x7C1C0600, // 002E CALL R7 3
|
||||
0x501C0200, // 002F LDBOOL R7 1 0
|
||||
0x80040E00, // 0030 RET 1 R7
|
||||
0x80000000, // 0031 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
|
@ -11,7 +11,7 @@ extern const bclass be_class_Matter_Plugin_Bridge_Light1;
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_Plugin_Bridge_Light1_invoke_request, /* name */
|
||||
be_nested_proto(
|
||||
12, /* nstack */
|
||||
21, /* nstack */
|
||||
4, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
@ -19,7 +19,7 @@ be_local_closure(Matter_Plugin_Bridge_Light1_invoke_request, /* name */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[14]) { /* constants */
|
||||
( &(const bvalue[20]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(matter),
|
||||
/* K1 */ be_nested_str_weak(TLV),
|
||||
/* K2 */ be_nested_str_weak(cluster),
|
||||
@ -29,24 +29,30 @@ be_local_closure(Matter_Plugin_Bridge_Light1_invoke_request, /* name */
|
||||
/* K6 */ be_nested_str_weak(set_bri),
|
||||
/* K7 */ be_nested_str_weak(log),
|
||||
/* K8 */ be_nested_str_weak(bri_X3A),
|
||||
/* K9 */ be_const_int(1),
|
||||
/* K10 */ be_const_int(2),
|
||||
/* K11 */ be_const_int(3),
|
||||
/* K12 */ be_nested_str_weak(set_onoff),
|
||||
/* K13 */ be_nested_str_weak(invoke_request),
|
||||
/* K9 */ be_nested_str_weak(publish_command),
|
||||
/* K10 */ be_nested_str_weak(Bri),
|
||||
/* K11 */ be_nested_str_weak(tasmota),
|
||||
/* K12 */ be_nested_str_weak(scale_uint),
|
||||
/* K13 */ be_nested_str_weak(Dimmer),
|
||||
/* K14 */ be_const_int(1),
|
||||
/* K15 */ be_const_int(2),
|
||||
/* K16 */ be_const_int(3),
|
||||
/* K17 */ be_nested_str_weak(set_onoff),
|
||||
/* K18 */ be_nested_str_weak(Power),
|
||||
/* K19 */ be_nested_str_weak(invoke_request),
|
||||
}),
|
||||
be_str_weak(invoke_request),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[87]) { /* code */
|
||||
( &(const binstruction[132]) { /* code */
|
||||
0xB8120000, // 0000 GETNGBL R4 K0
|
||||
0x88100901, // 0001 GETMBR R4 R4 K1
|
||||
0x88140702, // 0002 GETMBR R5 R3 K2
|
||||
0x88180703, // 0003 GETMBR R6 R3 K3
|
||||
0x541E0007, // 0004 LDINT R7 8
|
||||
0x1C1C0A07, // 0005 EQ R7 R5 R7
|
||||
0x781E0045, // 0006 JMPF R7 #004D
|
||||
0x781E0072, // 0006 JMPF R7 #007A
|
||||
0x1C1C0D04, // 0007 EQ R7 R6 K4
|
||||
0x781E000D, // 0008 JMPF R7 #0017
|
||||
0x781E0021, // 0008 JMPF R7 #002B
|
||||
0x8C1C0505, // 0009 GETMET R7 R2 K5
|
||||
0x58240004, // 000A LDCONST R9 K4
|
||||
0x7C1C0400, // 000B CALL R7 2
|
||||
@ -58,73 +64,118 @@ be_local_closure(Matter_Plugin_Bridge_Light1_invoke_request, /* name */
|
||||
0x7C200200, // 0011 CALL R8 1
|
||||
0x00221008, // 0012 ADD R8 K8 R8
|
||||
0x900E0E08, // 0013 SETMBR R3 K7 R8
|
||||
0x50200200, // 0014 LDBOOL R8 1 0
|
||||
0x80041000, // 0015 RET 1 R8
|
||||
0x70020034, // 0016 JMP #004C
|
||||
0x1C1C0D09, // 0017 EQ R7 R6 K9
|
||||
0x781E0002, // 0018 JMPF R7 #001C
|
||||
0x501C0200, // 0019 LDBOOL R7 1 0
|
||||
0x80040E00, // 001A RET 1 R7
|
||||
0x7002002F, // 001B JMP #004C
|
||||
0x1C1C0D0A, // 001C EQ R7 R6 K10
|
||||
0x781E0002, // 001D JMPF R7 #0021
|
||||
0x501C0200, // 001E LDBOOL R7 1 0
|
||||
0x80040E00, // 001F RET 1 R7
|
||||
0x7002002A, // 0020 JMP #004C
|
||||
0x1C1C0D0B, // 0021 EQ R7 R6 K11
|
||||
0x781E0002, // 0022 JMPF R7 #0026
|
||||
0x501C0200, // 0023 LDBOOL R7 1 0
|
||||
0x80040E00, // 0024 RET 1 R7
|
||||
0x70020025, // 0025 JMP #004C
|
||||
0x541E0003, // 0026 LDINT R7 4
|
||||
0x1C1C0C07, // 0027 EQ R7 R6 R7
|
||||
0x781E0011, // 0028 JMPF R7 #003B
|
||||
0x8C1C0505, // 0029 GETMET R7 R2 K5
|
||||
0x58240004, // 002A LDCONST R9 K4
|
||||
0x7C1C0400, // 002B CALL R7 2
|
||||
0x8C200106, // 002C GETMET R8 R0 K6
|
||||
0x5C280E00, // 002D MOVE R10 R7
|
||||
0x7C200400, // 002E CALL R8 2
|
||||
0x24200F04, // 002F GT R8 R7 K4
|
||||
0x8C24010C, // 0030 GETMET R9 R0 K12
|
||||
0x5C2C1000, // 0031 MOVE R11 R8
|
||||
0x7C240400, // 0032 CALL R9 2
|
||||
0x60240008, // 0033 GETGBL R9 G8
|
||||
0x5C280E00, // 0034 MOVE R10 R7
|
||||
0x7C240200, // 0035 CALL R9 1
|
||||
0x00261009, // 0036 ADD R9 K8 R9
|
||||
0x900E0E09, // 0037 SETMBR R3 K7 R9
|
||||
0x50240200, // 0038 LDBOOL R9 1 0
|
||||
0x80041200, // 0039 RET 1 R9
|
||||
0x70020010, // 003A JMP #004C
|
||||
0x541E0004, // 003B LDINT R7 5
|
||||
0x1C1C0C07, // 003C EQ R7 R6 R7
|
||||
0x781E0002, // 003D JMPF R7 #0041
|
||||
0x501C0200, // 003E LDBOOL R7 1 0
|
||||
0x80040E00, // 003F RET 1 R7
|
||||
0x7002000A, // 0040 JMP #004C
|
||||
0x541E0005, // 0041 LDINT R7 6
|
||||
0x1C1C0C07, // 0042 EQ R7 R6 R7
|
||||
0x781E0002, // 0043 JMPF R7 #0047
|
||||
0x501C0200, // 0044 LDBOOL R7 1 0
|
||||
0x80040E00, // 0045 RET 1 R7
|
||||
0x70020004, // 0046 JMP #004C
|
||||
0x541E0006, // 0047 LDINT R7 7
|
||||
0x1C1C0C07, // 0048 EQ R7 R6 R7
|
||||
0x781E0001, // 0049 JMPF R7 #004C
|
||||
0x501C0200, // 004A LDBOOL R7 1 0
|
||||
0x80040E00, // 004B RET 1 R7
|
||||
0x70020008, // 004C JMP #0056
|
||||
0x601C0003, // 004D GETGBL R7 G3
|
||||
0x5C200000, // 004E MOVE R8 R0
|
||||
0x7C1C0200, // 004F CALL R7 1
|
||||
0x8C1C0F0D, // 0050 GETMET R7 R7 K13
|
||||
0x5C240200, // 0051 MOVE R9 R1
|
||||
0x5C280400, // 0052 MOVE R10 R2
|
||||
0x5C2C0600, // 0053 MOVE R11 R3
|
||||
0x7C1C0800, // 0054 CALL R7 4
|
||||
0x80040E00, // 0055 RET 1 R7
|
||||
0x80000000, // 0056 RET 0
|
||||
0x8C200109, // 0014 GETMET R8 R0 K9
|
||||
0x5828000A, // 0015 LDCONST R10 K10
|
||||
0xB82E1600, // 0016 GETNGBL R11 K11
|
||||
0x8C2C170C, // 0017 GETMET R11 R11 K12
|
||||
0x5C340E00, // 0018 MOVE R13 R7
|
||||
0x58380004, // 0019 LDCONST R14 K4
|
||||
0x543E00FD, // 001A LDINT R15 254
|
||||
0x58400004, // 001B LDCONST R16 K4
|
||||
0x544600FE, // 001C LDINT R17 255
|
||||
0x7C2C0C00, // 001D CALL R11 6
|
||||
0x5830000D, // 001E LDCONST R12 K13
|
||||
0xB8361600, // 001F GETNGBL R13 K11
|
||||
0x8C341B0C, // 0020 GETMET R13 R13 K12
|
||||
0x5C3C0E00, // 0021 MOVE R15 R7
|
||||
0x58400004, // 0022 LDCONST R16 K4
|
||||
0x544600FD, // 0023 LDINT R17 254
|
||||
0x58480004, // 0024 LDCONST R18 K4
|
||||
0x544E0063, // 0025 LDINT R19 100
|
||||
0x7C340C00, // 0026 CALL R13 6
|
||||
0x7C200A00, // 0027 CALL R8 5
|
||||
0x50200200, // 0028 LDBOOL R8 1 0
|
||||
0x80041000, // 0029 RET 1 R8
|
||||
0x7002004D, // 002A JMP #0079
|
||||
0x1C1C0D0E, // 002B EQ R7 R6 K14
|
||||
0x781E0002, // 002C JMPF R7 #0030
|
||||
0x501C0200, // 002D LDBOOL R7 1 0
|
||||
0x80040E00, // 002E RET 1 R7
|
||||
0x70020048, // 002F JMP #0079
|
||||
0x1C1C0D0F, // 0030 EQ R7 R6 K15
|
||||
0x781E0002, // 0031 JMPF R7 #0035
|
||||
0x501C0200, // 0032 LDBOOL R7 1 0
|
||||
0x80040E00, // 0033 RET 1 R7
|
||||
0x70020043, // 0034 JMP #0079
|
||||
0x1C1C0D10, // 0035 EQ R7 R6 K16
|
||||
0x781E0002, // 0036 JMPF R7 #003A
|
||||
0x501C0200, // 0037 LDBOOL R7 1 0
|
||||
0x80040E00, // 0038 RET 1 R7
|
||||
0x7002003E, // 0039 JMP #0079
|
||||
0x541E0003, // 003A LDINT R7 4
|
||||
0x1C1C0C07, // 003B EQ R7 R6 R7
|
||||
0x781E002A, // 003C JMPF R7 #0068
|
||||
0x8C1C0505, // 003D GETMET R7 R2 K5
|
||||
0x58240004, // 003E LDCONST R9 K4
|
||||
0x7C1C0400, // 003F CALL R7 2
|
||||
0x8C200106, // 0040 GETMET R8 R0 K6
|
||||
0x5C280E00, // 0041 MOVE R10 R7
|
||||
0x7C200400, // 0042 CALL R8 2
|
||||
0x24200F04, // 0043 GT R8 R7 K4
|
||||
0x8C240111, // 0044 GETMET R9 R0 K17
|
||||
0x5C2C1000, // 0045 MOVE R11 R8
|
||||
0x7C240400, // 0046 CALL R9 2
|
||||
0x60240008, // 0047 GETGBL R9 G8
|
||||
0x5C280E00, // 0048 MOVE R10 R7
|
||||
0x7C240200, // 0049 CALL R9 1
|
||||
0x00261009, // 004A ADD R9 K8 R9
|
||||
0x900E0E09, // 004B SETMBR R3 K7 R9
|
||||
0x8C240109, // 004C GETMET R9 R0 K9
|
||||
0x582C000A, // 004D LDCONST R11 K10
|
||||
0xB8321600, // 004E GETNGBL R12 K11
|
||||
0x8C30190C, // 004F GETMET R12 R12 K12
|
||||
0x5C380E00, // 0050 MOVE R14 R7
|
||||
0x583C0004, // 0051 LDCONST R15 K4
|
||||
0x544200FD, // 0052 LDINT R16 254
|
||||
0x58440004, // 0053 LDCONST R17 K4
|
||||
0x544A00FE, // 0054 LDINT R18 255
|
||||
0x7C300C00, // 0055 CALL R12 6
|
||||
0x5834000D, // 0056 LDCONST R13 K13
|
||||
0xB83A1600, // 0057 GETNGBL R14 K11
|
||||
0x8C381D0C, // 0058 GETMET R14 R14 K12
|
||||
0x5C400E00, // 0059 MOVE R16 R7
|
||||
0x58440004, // 005A LDCONST R17 K4
|
||||
0x544A00FD, // 005B LDINT R18 254
|
||||
0x584C0004, // 005C LDCONST R19 K4
|
||||
0x54520063, // 005D LDINT R20 100
|
||||
0x7C380C00, // 005E CALL R14 6
|
||||
0x583C0012, // 005F LDCONST R15 K18
|
||||
0x78220001, // 0060 JMPF R8 #0063
|
||||
0x5840000E, // 0061 LDCONST R16 K14
|
||||
0x70020000, // 0062 JMP #0064
|
||||
0x58400004, // 0063 LDCONST R16 K4
|
||||
0x7C240E00, // 0064 CALL R9 7
|
||||
0x50240200, // 0065 LDBOOL R9 1 0
|
||||
0x80041200, // 0066 RET 1 R9
|
||||
0x70020010, // 0067 JMP #0079
|
||||
0x541E0004, // 0068 LDINT R7 5
|
||||
0x1C1C0C07, // 0069 EQ R7 R6 R7
|
||||
0x781E0002, // 006A JMPF R7 #006E
|
||||
0x501C0200, // 006B LDBOOL R7 1 0
|
||||
0x80040E00, // 006C RET 1 R7
|
||||
0x7002000A, // 006D JMP #0079
|
||||
0x541E0005, // 006E LDINT R7 6
|
||||
0x1C1C0C07, // 006F EQ R7 R6 R7
|
||||
0x781E0002, // 0070 JMPF R7 #0074
|
||||
0x501C0200, // 0071 LDBOOL R7 1 0
|
||||
0x80040E00, // 0072 RET 1 R7
|
||||
0x70020004, // 0073 JMP #0079
|
||||
0x541E0006, // 0074 LDINT R7 7
|
||||
0x1C1C0C07, // 0075 EQ R7 R6 R7
|
||||
0x781E0001, // 0076 JMPF R7 #0079
|
||||
0x501C0200, // 0077 LDBOOL R7 1 0
|
||||
0x80040E00, // 0078 RET 1 R7
|
||||
0x70020008, // 0079 JMP #0083
|
||||
0x601C0003, // 007A GETGBL R7 G3
|
||||
0x5C200000, // 007B MOVE R8 R0
|
||||
0x7C1C0200, // 007C CALL R7 1
|
||||
0x8C1C0F13, // 007D GETMET R7 R7 K19
|
||||
0x5C240200, // 007E MOVE R9 R1
|
||||
0x5C280400, // 007F MOVE R10 R2
|
||||
0x5C2C0600, // 0080 MOVE R11 R3
|
||||
0x7C1C0800, // 0081 CALL R7 4
|
||||
0x80040E00, // 0082 RET 1 R7
|
||||
0x80000000, // 0083 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
|
@ -260,7 +260,7 @@ be_local_closure(Matter_Plugin_Bridge_Light2_invoke_request, /* name */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[12]) { /* constants */
|
||||
( &(const bvalue[14]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(matter),
|
||||
/* K1 */ be_nested_str_weak(TLV),
|
||||
/* K2 */ be_nested_str_weak(cluster),
|
||||
@ -272,21 +272,23 @@ be_local_closure(Matter_Plugin_Bridge_Light2_invoke_request, /* name */
|
||||
/* K8 */ be_nested_str_weak(set_ct),
|
||||
/* K9 */ be_nested_str_weak(log),
|
||||
/* K10 */ be_nested_str_weak(ct_X3A),
|
||||
/* K11 */ be_nested_str_weak(invoke_request),
|
||||
/* K11 */ be_nested_str_weak(publish_command),
|
||||
/* K12 */ be_nested_str_weak(CT),
|
||||
/* K13 */ be_nested_str_weak(invoke_request),
|
||||
}),
|
||||
be_str_weak(invoke_request),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[60]) { /* code */
|
||||
( &(const binstruction[64]) { /* code */
|
||||
0xB8120000, // 0000 GETNGBL R4 K0
|
||||
0x88100901, // 0001 GETMBR R4 R4 K1
|
||||
0x88140702, // 0002 GETMBR R5 R3 K2
|
||||
0x88180703, // 0003 GETMBR R6 R3 K3
|
||||
0x541E02FF, // 0004 LDINT R7 768
|
||||
0x1C1C0A07, // 0005 EQ R7 R5 R7
|
||||
0x781E002A, // 0006 JMPF R7 #0032
|
||||
0x781E002E, // 0006 JMPF R7 #0036
|
||||
0x541E0009, // 0007 LDINT R7 10
|
||||
0x1C1C0C07, // 0008 EQ R7 R6 R7
|
||||
0x781E0015, // 0009 JMPF R7 #0020
|
||||
0x781E0019, // 0009 JMPF R7 #0024
|
||||
0x8C1C0504, // 000A GETMET R7 R2 K4
|
||||
0x58240005, // 000B LDCONST R9 K5
|
||||
0x7C1C0400, // 000C CALL R7 2
|
||||
@ -306,37 +308,41 @@ be_local_closure(Matter_Plugin_Bridge_Light2_invoke_request, /* name */
|
||||
0x7C200200, // 001A CALL R8 1
|
||||
0x00221408, // 001B ADD R8 K10 R8
|
||||
0x900E1208, // 001C SETMBR R3 K9 R8
|
||||
0x50200200, // 001D LDBOOL R8 1 0
|
||||
0x80041000, // 001E RET 1 R8
|
||||
0x70020010, // 001F JMP #0031
|
||||
0x541E0046, // 0020 LDINT R7 71
|
||||
0x1C1C0C07, // 0021 EQ R7 R6 R7
|
||||
0x781E0002, // 0022 JMPF R7 #0026
|
||||
0x501C0200, // 0023 LDBOOL R7 1 0
|
||||
0x80040E00, // 0024 RET 1 R7
|
||||
0x7002000A, // 0025 JMP #0031
|
||||
0x541E004A, // 0026 LDINT R7 75
|
||||
0x1C1C0C07, // 0027 EQ R7 R6 R7
|
||||
0x781E0002, // 0028 JMPF R7 #002C
|
||||
0x501C0200, // 0029 LDBOOL R7 1 0
|
||||
0x80040E00, // 002A RET 1 R7
|
||||
0x70020004, // 002B JMP #0031
|
||||
0x541E004B, // 002C LDINT R7 76
|
||||
0x1C1C0C07, // 002D EQ R7 R6 R7
|
||||
0x781E0001, // 002E JMPF R7 #0031
|
||||
0x501C0200, // 002F LDBOOL R7 1 0
|
||||
0x80040E00, // 0030 RET 1 R7
|
||||
0x70020008, // 0031 JMP #003B
|
||||
0x601C0003, // 0032 GETGBL R7 G3
|
||||
0x5C200000, // 0033 MOVE R8 R0
|
||||
0x7C1C0200, // 0034 CALL R7 1
|
||||
0x8C1C0F0B, // 0035 GETMET R7 R7 K11
|
||||
0x5C240200, // 0036 MOVE R9 R1
|
||||
0x5C280400, // 0037 MOVE R10 R2
|
||||
0x5C2C0600, // 0038 MOVE R11 R3
|
||||
0x7C1C0800, // 0039 CALL R7 4
|
||||
0x80040E00, // 003A RET 1 R7
|
||||
0x80000000, // 003B RET 0
|
||||
0x8C20010B, // 001D GETMET R8 R0 K11
|
||||
0x5828000C, // 001E LDCONST R10 K12
|
||||
0x5C2C0E00, // 001F MOVE R11 R7
|
||||
0x7C200600, // 0020 CALL R8 3
|
||||
0x50200200, // 0021 LDBOOL R8 1 0
|
||||
0x80041000, // 0022 RET 1 R8
|
||||
0x70020010, // 0023 JMP #0035
|
||||
0x541E0046, // 0024 LDINT R7 71
|
||||
0x1C1C0C07, // 0025 EQ R7 R6 R7
|
||||
0x781E0002, // 0026 JMPF R7 #002A
|
||||
0x501C0200, // 0027 LDBOOL R7 1 0
|
||||
0x80040E00, // 0028 RET 1 R7
|
||||
0x7002000A, // 0029 JMP #0035
|
||||
0x541E004A, // 002A LDINT R7 75
|
||||
0x1C1C0C07, // 002B EQ R7 R6 R7
|
||||
0x781E0002, // 002C JMPF R7 #0030
|
||||
0x501C0200, // 002D LDBOOL R7 1 0
|
||||
0x80040E00, // 002E RET 1 R7
|
||||
0x70020004, // 002F JMP #0035
|
||||
0x541E004B, // 0030 LDINT R7 76
|
||||
0x1C1C0C07, // 0031 EQ R7 R6 R7
|
||||
0x781E0001, // 0032 JMPF R7 #0035
|
||||
0x501C0200, // 0033 LDBOOL R7 1 0
|
||||
0x80040E00, // 0034 RET 1 R7
|
||||
0x70020008, // 0035 JMP #003F
|
||||
0x601C0003, // 0036 GETGBL R7 G3
|
||||
0x5C200000, // 0037 MOVE R8 R0
|
||||
0x7C1C0200, // 0038 CALL R7 1
|
||||
0x8C1C0F0D, // 0039 GETMET R7 R7 K13
|
||||
0x5C240200, // 003A MOVE R9 R1
|
||||
0x5C280400, // 003B MOVE R10 R2
|
||||
0x5C2C0600, // 003C MOVE R11 R3
|
||||
0x7C1C0800, // 003D CALL R7 4
|
||||
0x80040E00, // 003E RET 1 R7
|
||||
0x80000000, // 003F RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
|
@ -300,7 +300,7 @@ be_local_closure(Matter_Plugin_Bridge_Light3_web_value_RGB, /* name */
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_Plugin_Bridge_Light3_invoke_request, /* name */
|
||||
be_nested_proto(
|
||||
12, /* nstack */
|
||||
15, /* nstack */
|
||||
4, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
@ -308,7 +308,7 @@ be_local_closure(Matter_Plugin_Bridge_Light3_invoke_request, /* name */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[16]) { /* constants */
|
||||
( &(const bvalue[19]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(matter),
|
||||
/* K1 */ be_nested_str_weak(TLV),
|
||||
/* K2 */ be_nested_str_weak(cluster),
|
||||
@ -318,26 +318,29 @@ be_local_closure(Matter_Plugin_Bridge_Light3_invoke_request, /* name */
|
||||
/* K6 */ be_nested_str_weak(set_hue),
|
||||
/* K7 */ be_nested_str_weak(log),
|
||||
/* K8 */ be_nested_str_weak(hue_X3A),
|
||||
/* K9 */ be_const_int(1),
|
||||
/* K10 */ be_const_int(2),
|
||||
/* K11 */ be_const_int(3),
|
||||
/* K12 */ be_nested_str_weak(set_sat),
|
||||
/* K13 */ be_nested_str_weak(sat_X3A),
|
||||
/* K14 */ be_nested_str_weak(_X20sat_X3A),
|
||||
/* K15 */ be_nested_str_weak(invoke_request),
|
||||
/* K9 */ be_nested_str_weak(publish_command),
|
||||
/* K10 */ be_nested_str_weak(Hue),
|
||||
/* K11 */ be_const_int(1),
|
||||
/* K12 */ be_const_int(2),
|
||||
/* K13 */ be_const_int(3),
|
||||
/* K14 */ be_nested_str_weak(set_sat),
|
||||
/* K15 */ be_nested_str_weak(sat_X3A),
|
||||
/* K16 */ be_nested_str_weak(Sat),
|
||||
/* K17 */ be_nested_str_weak(_X20sat_X3A),
|
||||
/* K18 */ be_nested_str_weak(invoke_request),
|
||||
}),
|
||||
be_str_weak(invoke_request),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[105]) { /* code */
|
||||
( &(const binstruction[119]) { /* code */
|
||||
0xB8120000, // 0000 GETNGBL R4 K0
|
||||
0x88100901, // 0001 GETMBR R4 R4 K1
|
||||
0x88140702, // 0002 GETMBR R5 R3 K2
|
||||
0x88180703, // 0003 GETMBR R6 R3 K3
|
||||
0x541E02FF, // 0004 LDINT R7 768
|
||||
0x1C1C0A07, // 0005 EQ R7 R5 R7
|
||||
0x781E0057, // 0006 JMPF R7 #005F
|
||||
0x781E0065, // 0006 JMPF R7 #006D
|
||||
0x1C1C0D04, // 0007 EQ R7 R6 K4
|
||||
0x781E000D, // 0008 JMPF R7 #0017
|
||||
0x781E0011, // 0008 JMPF R7 #001B
|
||||
0x8C1C0505, // 0009 GETMET R7 R2 K5
|
||||
0x58240004, // 000A LDCONST R9 K4
|
||||
0x7C1C0400, // 000B CALL R7 2
|
||||
@ -349,91 +352,105 @@ be_local_closure(Matter_Plugin_Bridge_Light3_invoke_request, /* name */
|
||||
0x7C200200, // 0011 CALL R8 1
|
||||
0x00221008, // 0012 ADD R8 K8 R8
|
||||
0x900E0E08, // 0013 SETMBR R3 K7 R8
|
||||
0x50200200, // 0014 LDBOOL R8 1 0
|
||||
0x80041000, // 0015 RET 1 R8
|
||||
0x70020046, // 0016 JMP #005E
|
||||
0x1C1C0D09, // 0017 EQ R7 R6 K9
|
||||
0x781E0002, // 0018 JMPF R7 #001C
|
||||
0x501C0200, // 0019 LDBOOL R7 1 0
|
||||
0x80040E00, // 001A RET 1 R7
|
||||
0x70020041, // 001B JMP #005E
|
||||
0x1C1C0D0A, // 001C EQ R7 R6 K10
|
||||
0x781E0002, // 001D JMPF R7 #0021
|
||||
0x501C0200, // 001E LDBOOL R7 1 0
|
||||
0x80040E00, // 001F RET 1 R7
|
||||
0x7002003C, // 0020 JMP #005E
|
||||
0x1C1C0D0B, // 0021 EQ R7 R6 K11
|
||||
0x781E000D, // 0022 JMPF R7 #0031
|
||||
0x8C1C0505, // 0023 GETMET R7 R2 K5
|
||||
0x58240004, // 0024 LDCONST R9 K4
|
||||
0x7C1C0400, // 0025 CALL R7 2
|
||||
0x8C20010C, // 0026 GETMET R8 R0 K12
|
||||
0x5C280E00, // 0027 MOVE R10 R7
|
||||
0x7C200400, // 0028 CALL R8 2
|
||||
0x60200008, // 0029 GETGBL R8 G8
|
||||
0x5C240E00, // 002A MOVE R9 R7
|
||||
0x7C200200, // 002B CALL R8 1
|
||||
0x00221A08, // 002C ADD R8 K13 R8
|
||||
0x900E0E08, // 002D SETMBR R3 K7 R8
|
||||
0x50200200, // 002E LDBOOL R8 1 0
|
||||
0x80041000, // 002F RET 1 R8
|
||||
0x7002002C, // 0030 JMP #005E
|
||||
0x541E0003, // 0031 LDINT R7 4
|
||||
0x1C1C0C07, // 0032 EQ R7 R6 R7
|
||||
0x781E0002, // 0033 JMPF R7 #0037
|
||||
0x501C0200, // 0034 LDBOOL R7 1 0
|
||||
0x80040E00, // 0035 RET 1 R7
|
||||
0x70020026, // 0036 JMP #005E
|
||||
0x541E0004, // 0037 LDINT R7 5
|
||||
0x1C1C0C07, // 0038 EQ R7 R6 R7
|
||||
0x781E0002, // 0039 JMPF R7 #003D
|
||||
0x501C0200, // 003A LDBOOL R7 1 0
|
||||
0x80040E00, // 003B RET 1 R7
|
||||
0x70020020, // 003C JMP #005E
|
||||
0x541E0005, // 003D LDINT R7 6
|
||||
0x1C1C0C07, // 003E EQ R7 R6 R7
|
||||
0x781E0018, // 003F JMPF R7 #0059
|
||||
0x8C1C0505, // 0040 GETMET R7 R2 K5
|
||||
0x58240004, // 0041 LDCONST R9 K4
|
||||
0x7C1C0400, // 0042 CALL R7 2
|
||||
0x8C200505, // 0043 GETMET R8 R2 K5
|
||||
0x58280009, // 0044 LDCONST R10 K9
|
||||
0x7C200400, // 0045 CALL R8 2
|
||||
0x8C240106, // 0046 GETMET R9 R0 K6
|
||||
0x5C2C0E00, // 0047 MOVE R11 R7
|
||||
0x7C240400, // 0048 CALL R9 2
|
||||
0x8C24010C, // 0049 GETMET R9 R0 K12
|
||||
0x5C2C1000, // 004A MOVE R11 R8
|
||||
0x7C240400, // 004B CALL R9 2
|
||||
0x60240008, // 004C GETGBL R9 G8
|
||||
0x5C280E00, // 004D MOVE R10 R7
|
||||
0x7C240200, // 004E CALL R9 1
|
||||
0x00261009, // 004F ADD R9 K8 R9
|
||||
0x0024130E, // 0050 ADD R9 R9 K14
|
||||
0x60280008, // 0051 GETGBL R10 G8
|
||||
0x8C200109, // 0014 GETMET R8 R0 K9
|
||||
0x5828000A, // 0015 LDCONST R10 K10
|
||||
0x5C2C0E00, // 0016 MOVE R11 R7
|
||||
0x7C200600, // 0017 CALL R8 3
|
||||
0x50200200, // 0018 LDBOOL R8 1 0
|
||||
0x80041000, // 0019 RET 1 R8
|
||||
0x70020050, // 001A JMP #006C
|
||||
0x1C1C0D0B, // 001B EQ R7 R6 K11
|
||||
0x781E0002, // 001C JMPF R7 #0020
|
||||
0x501C0200, // 001D LDBOOL R7 1 0
|
||||
0x80040E00, // 001E RET 1 R7
|
||||
0x7002004B, // 001F JMP #006C
|
||||
0x1C1C0D0C, // 0020 EQ R7 R6 K12
|
||||
0x781E0002, // 0021 JMPF R7 #0025
|
||||
0x501C0200, // 0022 LDBOOL R7 1 0
|
||||
0x80040E00, // 0023 RET 1 R7
|
||||
0x70020046, // 0024 JMP #006C
|
||||
0x1C1C0D0D, // 0025 EQ R7 R6 K13
|
||||
0x781E0011, // 0026 JMPF R7 #0039
|
||||
0x8C1C0505, // 0027 GETMET R7 R2 K5
|
||||
0x58240004, // 0028 LDCONST R9 K4
|
||||
0x7C1C0400, // 0029 CALL R7 2
|
||||
0x8C20010E, // 002A GETMET R8 R0 K14
|
||||
0x5C280E00, // 002B MOVE R10 R7
|
||||
0x7C200400, // 002C CALL R8 2
|
||||
0x60200008, // 002D GETGBL R8 G8
|
||||
0x5C240E00, // 002E MOVE R9 R7
|
||||
0x7C200200, // 002F CALL R8 1
|
||||
0x00221E08, // 0030 ADD R8 K15 R8
|
||||
0x900E0E08, // 0031 SETMBR R3 K7 R8
|
||||
0x8C200109, // 0032 GETMET R8 R0 K9
|
||||
0x58280010, // 0033 LDCONST R10 K16
|
||||
0x5C2C0E00, // 0034 MOVE R11 R7
|
||||
0x7C200600, // 0035 CALL R8 3
|
||||
0x50200200, // 0036 LDBOOL R8 1 0
|
||||
0x80041000, // 0037 RET 1 R8
|
||||
0x70020032, // 0038 JMP #006C
|
||||
0x541E0003, // 0039 LDINT R7 4
|
||||
0x1C1C0C07, // 003A EQ R7 R6 R7
|
||||
0x781E0002, // 003B JMPF R7 #003F
|
||||
0x501C0200, // 003C LDBOOL R7 1 0
|
||||
0x80040E00, // 003D RET 1 R7
|
||||
0x7002002C, // 003E JMP #006C
|
||||
0x541E0004, // 003F LDINT R7 5
|
||||
0x1C1C0C07, // 0040 EQ R7 R6 R7
|
||||
0x781E0002, // 0041 JMPF R7 #0045
|
||||
0x501C0200, // 0042 LDBOOL R7 1 0
|
||||
0x80040E00, // 0043 RET 1 R7
|
||||
0x70020026, // 0044 JMP #006C
|
||||
0x541E0005, // 0045 LDINT R7 6
|
||||
0x1C1C0C07, // 0046 EQ R7 R6 R7
|
||||
0x781E001E, // 0047 JMPF R7 #0067
|
||||
0x8C1C0505, // 0048 GETMET R7 R2 K5
|
||||
0x58240004, // 0049 LDCONST R9 K4
|
||||
0x7C1C0400, // 004A CALL R7 2
|
||||
0x8C200505, // 004B GETMET R8 R2 K5
|
||||
0x5828000B, // 004C LDCONST R10 K11
|
||||
0x7C200400, // 004D CALL R8 2
|
||||
0x8C240106, // 004E GETMET R9 R0 K6
|
||||
0x5C2C0E00, // 004F MOVE R11 R7
|
||||
0x7C240400, // 0050 CALL R9 2
|
||||
0x8C24010E, // 0051 GETMET R9 R0 K14
|
||||
0x5C2C1000, // 0052 MOVE R11 R8
|
||||
0x7C280200, // 0053 CALL R10 1
|
||||
0x0024120A, // 0054 ADD R9 R9 R10
|
||||
0x900E0E09, // 0055 SETMBR R3 K7 R9
|
||||
0x50240200, // 0056 LDBOOL R9 1 0
|
||||
0x80041200, // 0057 RET 1 R9
|
||||
0x70020004, // 0058 JMP #005E
|
||||
0x541E0046, // 0059 LDINT R7 71
|
||||
0x1C1C0C07, // 005A EQ R7 R6 R7
|
||||
0x781E0001, // 005B JMPF R7 #005E
|
||||
0x501C0200, // 005C LDBOOL R7 1 0
|
||||
0x80040E00, // 005D RET 1 R7
|
||||
0x70020008, // 005E JMP #0068
|
||||
0x601C0003, // 005F GETGBL R7 G3
|
||||
0x5C200000, // 0060 MOVE R8 R0
|
||||
0x7C1C0200, // 0061 CALL R7 1
|
||||
0x8C1C0F0F, // 0062 GETMET R7 R7 K15
|
||||
0x5C240200, // 0063 MOVE R9 R1
|
||||
0x5C280400, // 0064 MOVE R10 R2
|
||||
0x5C2C0600, // 0065 MOVE R11 R3
|
||||
0x7C1C0800, // 0066 CALL R7 4
|
||||
0x80040E00, // 0067 RET 1 R7
|
||||
0x80000000, // 0068 RET 0
|
||||
0x7C240400, // 0053 CALL R9 2
|
||||
0x60240008, // 0054 GETGBL R9 G8
|
||||
0x5C280E00, // 0055 MOVE R10 R7
|
||||
0x7C240200, // 0056 CALL R9 1
|
||||
0x00261009, // 0057 ADD R9 K8 R9
|
||||
0x00241311, // 0058 ADD R9 R9 K17
|
||||
0x60280008, // 0059 GETGBL R10 G8
|
||||
0x5C2C1000, // 005A MOVE R11 R8
|
||||
0x7C280200, // 005B CALL R10 1
|
||||
0x0024120A, // 005C ADD R9 R9 R10
|
||||
0x900E0E09, // 005D SETMBR R3 K7 R9
|
||||
0x8C240109, // 005E GETMET R9 R0 K9
|
||||
0x582C000A, // 005F LDCONST R11 K10
|
||||
0x5C300E00, // 0060 MOVE R12 R7
|
||||
0x58340010, // 0061 LDCONST R13 K16
|
||||
0x5C381000, // 0062 MOVE R14 R8
|
||||
0x7C240A00, // 0063 CALL R9 5
|
||||
0x50240200, // 0064 LDBOOL R9 1 0
|
||||
0x80041200, // 0065 RET 1 R9
|
||||
0x70020004, // 0066 JMP #006C
|
||||
0x541E0046, // 0067 LDINT R7 71
|
||||
0x1C1C0C07, // 0068 EQ R7 R6 R7
|
||||
0x781E0001, // 0069 JMPF R7 #006C
|
||||
0x501C0200, // 006A LDBOOL R7 1 0
|
||||
0x80040E00, // 006B RET 1 R7
|
||||
0x70020008, // 006C JMP #0076
|
||||
0x601C0003, // 006D GETGBL R7 G3
|
||||
0x5C200000, // 006E MOVE R8 R0
|
||||
0x7C1C0200, // 006F CALL R7 1
|
||||
0x8C1C0F12, // 0070 GETMET R7 R7 K18
|
||||
0x5C240200, // 0071 MOVE R9 R1
|
||||
0x5C280400, // 0072 MOVE R10 R2
|
||||
0x5C2C0600, // 0073 MOVE R11 R3
|
||||
0x7C1C0800, // 0074 CALL R7 4
|
||||
0x80040E00, // 0075 RET 1 R7
|
||||
0x80000000, // 0076 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
|
@ -6,111 +6,6 @@
|
||||
|
||||
extern const bclass be_class_Matter_Plugin_Device;
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: init
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_Plugin_Device_init, /* name */
|
||||
be_nested_proto(
|
||||
9, /* nstack */
|
||||
4, /* 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(node_label),
|
||||
/* K1 */ be_nested_str_weak(find),
|
||||
/* K2 */ be_nested_str_weak(name),
|
||||
/* K3 */ be_nested_str_weak(),
|
||||
/* K4 */ be_nested_str_weak(init),
|
||||
}),
|
||||
be_str_weak(init),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[14]) { /* code */
|
||||
0x8C100701, // 0000 GETMET R4 R3 K1
|
||||
0x58180002, // 0001 LDCONST R6 K2
|
||||
0x581C0003, // 0002 LDCONST R7 K3
|
||||
0x7C100600, // 0003 CALL R4 3
|
||||
0x90020004, // 0004 SETMBR R0 K0 R4
|
||||
0x60100003, // 0005 GETGBL R4 G3
|
||||
0x5C140000, // 0006 MOVE R5 R0
|
||||
0x7C100200, // 0007 CALL R4 1
|
||||
0x8C100904, // 0008 GETMET R4 R4 K4
|
||||
0x5C180200, // 0009 MOVE R6 R1
|
||||
0x5C1C0400, // 000A MOVE R7 R2
|
||||
0x5C200600, // 000B MOVE R8 R3
|
||||
0x7C100800, // 000C CALL R4 4
|
||||
0x80000000, // 000D RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: set_name
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_Plugin_Device_set_name, /* 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[ 2]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(node_label),
|
||||
/* K1 */ be_nested_str_weak(attribute_updated),
|
||||
}),
|
||||
be_str_weak(set_name),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[ 9]) { /* code */
|
||||
0x88080100, // 0000 GETMBR R2 R0 K0
|
||||
0x20080202, // 0001 NE R2 R1 R2
|
||||
0x780A0003, // 0002 JMPF R2 #0007
|
||||
0x8C080101, // 0003 GETMET R2 R0 K1
|
||||
0x54120038, // 0004 LDINT R4 57
|
||||
0x54160004, // 0005 LDINT R5 5
|
||||
0x7C080600, // 0006 CALL R2 3
|
||||
0x90020001, // 0007 SETMBR R0 K0 R1
|
||||
0x80000000, // 0008 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: get_name
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_Plugin_Device_get_name, /* name */
|
||||
be_nested_proto(
|
||||
2, /* 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(node_label),
|
||||
}),
|
||||
be_str_weak(get_name),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[ 2]) { /* code */
|
||||
0x88040100, // 0000 GETMBR R1 R0 K0
|
||||
0x80040200, // 0001 RET 1 R1
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: invoke_request
|
||||
********************************************************************/
|
||||
@ -197,6 +92,47 @@ be_local_closure(Matter_Plugin_Device_invoke_request, /* name */
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: init
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_Plugin_Device_init, /* name */
|
||||
be_nested_proto(
|
||||
9, /* nstack */
|
||||
4, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 3]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(virtual),
|
||||
/* K1 */ be_nested_str_weak(find),
|
||||
/* K2 */ be_nested_str_weak(init),
|
||||
}),
|
||||
be_str_weak(init),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[14]) { /* code */
|
||||
0x8C100701, // 0000 GETMET R4 R3 K1
|
||||
0x58180000, // 0001 LDCONST R6 K0
|
||||
0x501C0000, // 0002 LDBOOL R7 0 0
|
||||
0x7C100600, // 0003 CALL R4 3
|
||||
0x90020004, // 0004 SETMBR R0 K0 R4
|
||||
0x60100003, // 0005 GETGBL R4 G3
|
||||
0x5C140000, // 0006 MOVE R5 R0
|
||||
0x7C100200, // 0007 CALL R4 1
|
||||
0x8C100902, // 0008 GETMET R4 R4 K2
|
||||
0x5C180200, // 0009 MOVE R6 R1
|
||||
0x5C1C0400, // 000A MOVE R7 R2
|
||||
0x5C200600, // 000B MOVE R8 R3
|
||||
0x7C100800, // 000C CALL R4 4
|
||||
0x80000000, // 000D RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: read_attribute
|
||||
********************************************************************/
|
||||
@ -529,25 +465,23 @@ extern const bclass be_class_Matter_Plugin;
|
||||
be_local_class(Matter_Plugin_Device,
|
||||
1,
|
||||
&be_class_Matter_Plugin,
|
||||
be_nested_map(9,
|
||||
be_nested_map(7,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_weak(NON_BRIDGE_VENDOR, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
|
||||
{ be_const_key_weak(invoke_request, 1), be_const_closure(Matter_Plugin_Device_invoke_request_closure) },
|
||||
{ be_const_key_weak(read_attribute, 4), be_const_closure(Matter_Plugin_Device_read_attribute_closure) },
|
||||
{ be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
|
||||
be_const_map( * be_nested_map(1,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_int(19, -1), be_const_int(1) },
|
||||
})) ) } )) },
|
||||
{ be_const_key_weak(NON_BRIDGE_VENDOR, 2), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
|
||||
be_const_list( * be_nested_list(2,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_const_int(4631),
|
||||
be_const_int(4993),
|
||||
})) ) } )) },
|
||||
{ be_const_key_weak(invoke_request, -1), be_const_closure(Matter_Plugin_Device_invoke_request_closure) },
|
||||
{ be_const_key_weak(TYPES, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
|
||||
be_const_map( * be_nested_map(1,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_int(19, -1), be_const_int(1) },
|
||||
})) ) } )) },
|
||||
{ be_const_key_weak(read_attribute, -1), be_const_closure(Matter_Plugin_Device_read_attribute_closure) },
|
||||
{ be_const_key_weak(set_name, 8), be_const_closure(Matter_Plugin_Device_set_name_closure) },
|
||||
{ be_const_key_weak(get_name, 1), be_const_closure(Matter_Plugin_Device_get_name_closure) },
|
||||
{ be_const_key_weak(init, 3), be_const_closure(Matter_Plugin_Device_init_closure) },
|
||||
{ be_const_key_weak(node_label, -1), be_const_var(0) },
|
||||
{ be_const_key_weak(virtual, 6), be_const_var(0) },
|
||||
{ be_const_key_weak(init, -1), be_const_closure(Matter_Plugin_Device_init_closure) },
|
||||
{ be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
|
||||
be_const_map( * be_nested_map(4,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
|
@ -6,62 +6,6 @@
|
||||
|
||||
extern const bclass be_class_Matter_Plugin_Light0;
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: update_shadow
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_Plugin_Light0_update_shadow, /* name */
|
||||
be_nested_proto(
|
||||
8, /* nstack */
|
||||
1, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 8]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(light),
|
||||
/* K1 */ be_nested_str_weak(get),
|
||||
/* K2 */ be_nested_str_weak(find),
|
||||
/* K3 */ be_nested_str_weak(power),
|
||||
/* K4 */ be_nested_str_weak(shadow_onoff),
|
||||
/* K5 */ be_nested_str_weak(attribute_updated),
|
||||
/* K6 */ be_const_int(0),
|
||||
/* K7 */ be_nested_str_weak(update_shadow),
|
||||
}),
|
||||
be_str_weak(update_shadow),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[24]) { /* code */
|
||||
0xA4060000, // 0000 IMPORT R1 K0
|
||||
0x8C080301, // 0001 GETMET R2 R1 K1
|
||||
0x7C080200, // 0002 CALL R2 1
|
||||
0x4C0C0000, // 0003 LDNIL R3
|
||||
0x200C0403, // 0004 NE R3 R2 R3
|
||||
0x780E000B, // 0005 JMPF R3 #0012
|
||||
0x8C0C0502, // 0006 GETMET R3 R2 K2
|
||||
0x58140003, // 0007 LDCONST R5 K3
|
||||
0x4C180000, // 0008 LDNIL R6
|
||||
0x7C0C0600, // 0009 CALL R3 3
|
||||
0x88100104, // 000A GETMBR R4 R0 K4
|
||||
0x20100604, // 000B NE R4 R3 R4
|
||||
0x78120004, // 000C JMPF R4 #0012
|
||||
0x8C100105, // 000D GETMET R4 R0 K5
|
||||
0x541A0005, // 000E LDINT R6 6
|
||||
0x581C0006, // 000F LDCONST R7 K6
|
||||
0x7C100600, // 0010 CALL R4 3
|
||||
0x90020803, // 0011 SETMBR R0 K4 R3
|
||||
0x600C0003, // 0012 GETGBL R3 G3
|
||||
0x5C100000, // 0013 MOVE R4 R0
|
||||
0x7C0C0200, // 0014 CALL R3 1
|
||||
0x8C0C0707, // 0015 GETMET R3 R3 K7
|
||||
0x7C0C0200, // 0016 CALL R3 1
|
||||
0x80000000, // 0017 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: read_attribute
|
||||
********************************************************************/
|
||||
@ -142,6 +86,117 @@ be_local_closure(Matter_Plugin_Light0_read_attribute, /* name */
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: update_shadow
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_Plugin_Light0_update_shadow, /* name */
|
||||
be_nested_proto(
|
||||
8, /* nstack */
|
||||
1, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 9]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(virtual),
|
||||
/* K1 */ be_nested_str_weak(light),
|
||||
/* K2 */ be_nested_str_weak(get),
|
||||
/* K3 */ be_nested_str_weak(find),
|
||||
/* K4 */ be_nested_str_weak(power),
|
||||
/* K5 */ be_nested_str_weak(shadow_onoff),
|
||||
/* K6 */ be_nested_str_weak(attribute_updated),
|
||||
/* K7 */ be_const_int(0),
|
||||
/* K8 */ be_nested_str_weak(update_shadow),
|
||||
}),
|
||||
be_str_weak(update_shadow),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[26]) { /* code */
|
||||
0x88040100, // 0000 GETMBR R1 R0 K0
|
||||
0x74060011, // 0001 JMPT R1 #0014
|
||||
0xA4060200, // 0002 IMPORT R1 K1
|
||||
0x8C080302, // 0003 GETMET R2 R1 K2
|
||||
0x7C080200, // 0004 CALL R2 1
|
||||
0x4C0C0000, // 0005 LDNIL R3
|
||||
0x200C0403, // 0006 NE R3 R2 R3
|
||||
0x780E000B, // 0007 JMPF R3 #0014
|
||||
0x8C0C0503, // 0008 GETMET R3 R2 K3
|
||||
0x58140004, // 0009 LDCONST R5 K4
|
||||
0x4C180000, // 000A LDNIL R6
|
||||
0x7C0C0600, // 000B CALL R3 3
|
||||
0x88100105, // 000C GETMBR R4 R0 K5
|
||||
0x20100604, // 000D NE R4 R3 R4
|
||||
0x78120004, // 000E JMPF R4 #0014
|
||||
0x8C100106, // 000F GETMET R4 R0 K6
|
||||
0x541A0005, // 0010 LDINT R6 6
|
||||
0x581C0007, // 0011 LDCONST R7 K7
|
||||
0x7C100600, // 0012 CALL R4 3
|
||||
0x90020A03, // 0013 SETMBR R0 K5 R3
|
||||
0x60040003, // 0014 GETGBL R1 G3
|
||||
0x5C080000, // 0015 MOVE R2 R0
|
||||
0x7C040200, // 0016 CALL R1 1
|
||||
0x8C040308, // 0017 GETMET R1 R1 K8
|
||||
0x7C040200, // 0018 CALL R1 1
|
||||
0x80000000, // 0019 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: set_onoff
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_Plugin_Light0_set_onoff, /* 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[ 8]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(virtual),
|
||||
/* K1 */ be_nested_str_weak(light),
|
||||
/* K2 */ be_nested_str_weak(set),
|
||||
/* K3 */ be_nested_str_weak(power),
|
||||
/* K4 */ be_nested_str_weak(update_shadow),
|
||||
/* K5 */ be_nested_str_weak(shadow_onoff),
|
||||
/* K6 */ be_nested_str_weak(attribute_updated),
|
||||
/* K7 */ be_const_int(0),
|
||||
}),
|
||||
be_str_weak(set_onoff),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[20]) { /* code */
|
||||
0x88080100, // 0000 GETMBR R2 R0 K0
|
||||
0x740A0008, // 0001 JMPT R2 #000B
|
||||
0xA40A0200, // 0002 IMPORT R2 K1
|
||||
0x8C0C0502, // 0003 GETMET R3 R2 K2
|
||||
0x60140013, // 0004 GETGBL R5 G19
|
||||
0x7C140000, // 0005 CALL R5 0
|
||||
0x98160601, // 0006 SETIDX R5 K3 R1
|
||||
0x7C0C0400, // 0007 CALL R3 2
|
||||
0x8C0C0104, // 0008 GETMET R3 R0 K4
|
||||
0x7C0C0200, // 0009 CALL R3 1
|
||||
0x70020007, // 000A JMP #0013
|
||||
0x88080105, // 000B GETMBR R2 R0 K5
|
||||
0x20080202, // 000C NE R2 R1 R2
|
||||
0x780A0004, // 000D JMPF R2 #0013
|
||||
0x8C080106, // 000E GETMET R2 R0 K6
|
||||
0x54120005, // 000F LDINT R4 6
|
||||
0x58140007, // 0010 LDCONST R5 K7
|
||||
0x7C080600, // 0011 CALL R2 3
|
||||
0x90020A01, // 0012 SETMBR R0 K5 R1
|
||||
0x80000000, // 0013 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: init
|
||||
********************************************************************/
|
||||
@ -200,16 +255,16 @@ be_local_closure(Matter_Plugin_Light0_invoke_request, /* name */
|
||||
/* K4 */ be_nested_str_weak(command),
|
||||
/* K5 */ be_nested_str_weak(update_shadow_lazy),
|
||||
/* K6 */ be_const_int(0),
|
||||
/* K7 */ be_nested_str_weak(set),
|
||||
/* K8 */ be_nested_str_weak(power),
|
||||
/* K9 */ be_nested_str_weak(update_shadow),
|
||||
/* K7 */ be_nested_str_weak(set_onoff),
|
||||
/* K8 */ be_nested_str_weak(publish_command),
|
||||
/* K9 */ be_nested_str_weak(Power),
|
||||
/* K10 */ be_const_int(1),
|
||||
/* K11 */ be_const_int(2),
|
||||
/* K12 */ be_nested_str_weak(shadow_onoff),
|
||||
}),
|
||||
be_str_weak(invoke_request),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[52]) { /* code */
|
||||
( &(const binstruction[53]) { /* code */
|
||||
0xA4120000, // 0000 IMPORT R4 K0
|
||||
0xB8160200, // 0001 GETNGBL R5 K1
|
||||
0x88140B02, // 0002 GETMBR R5 R5 K2
|
||||
@ -217,51 +272,52 @@ be_local_closure(Matter_Plugin_Light0_invoke_request, /* name */
|
||||
0x881C0704, // 0004 GETMBR R7 R3 K4
|
||||
0x54220005, // 0005 LDINT R8 6
|
||||
0x1C200C08, // 0006 EQ R8 R6 R8
|
||||
0x7822002A, // 0007 JMPF R8 #0033
|
||||
0x7822002B, // 0007 JMPF R8 #0034
|
||||
0x8C200105, // 0008 GETMET R8 R0 K5
|
||||
0x7C200200, // 0009 CALL R8 1
|
||||
0x1C200F06, // 000A EQ R8 R7 K6
|
||||
0x7822000A, // 000B JMPF R8 #0017
|
||||
0x8C200907, // 000C GETMET R8 R4 K7
|
||||
0x60280013, // 000D GETGBL R10 G19
|
||||
0x7C280000, // 000E CALL R10 0
|
||||
0x502C0000, // 000F LDBOOL R11 0 0
|
||||
0x982A100B, // 0010 SETIDX R10 K8 R11
|
||||
0x7C200400, // 0011 CALL R8 2
|
||||
0x8C200109, // 0012 GETMET R8 R0 K9
|
||||
0x7C200200, // 0013 CALL R8 1
|
||||
0x50200200, // 0014 LDBOOL R8 1 0
|
||||
0x80041000, // 0015 RET 1 R8
|
||||
0x7002001B, // 0016 JMP #0033
|
||||
0x1C200F0A, // 0017 EQ R8 R7 K10
|
||||
0x7822000A, // 0018 JMPF R8 #0024
|
||||
0x8C200907, // 0019 GETMET R8 R4 K7
|
||||
0x60280013, // 001A GETGBL R10 G19
|
||||
0x7C280000, // 001B CALL R10 0
|
||||
0x502C0200, // 001C LDBOOL R11 1 0
|
||||
0x982A100B, // 001D SETIDX R10 K8 R11
|
||||
0x7C200400, // 001E CALL R8 2
|
||||
0x8C200109, // 001F GETMET R8 R0 K9
|
||||
0x7C200200, // 0020 CALL R8 1
|
||||
0x50200200, // 0021 LDBOOL R8 1 0
|
||||
0x80041000, // 0022 RET 1 R8
|
||||
0x7002000E, // 0023 JMP #0033
|
||||
0x1C200F0B, // 0024 EQ R8 R7 K11
|
||||
0x7822000C, // 0025 JMPF R8 #0033
|
||||
0x8C200907, // 0026 GETMET R8 R4 K7
|
||||
0x60280013, // 0027 GETGBL R10 G19
|
||||
0x7C280000, // 0028 CALL R10 0
|
||||
0x882C010C, // 0029 GETMBR R11 R0 K12
|
||||
0x782E0000, // 002A JMPF R11 #002C
|
||||
0x502C0001, // 002B LDBOOL R11 0 1
|
||||
0x502C0200, // 002C LDBOOL R11 1 0
|
||||
0x982A100B, // 002D SETIDX R10 K8 R11
|
||||
0x7C200400, // 002E CALL R8 2
|
||||
0x8C200109, // 002F GETMET R8 R0 K9
|
||||
0x7C200200, // 0030 CALL R8 1
|
||||
0x50200200, // 0031 LDBOOL R8 1 0
|
||||
0x80041000, // 0032 RET 1 R8
|
||||
0x80000000, // 0033 RET 0
|
||||
0x78220009, // 000B JMPF R8 #0016
|
||||
0x8C200107, // 000C GETMET R8 R0 K7
|
||||
0x50280000, // 000D LDBOOL R10 0 0
|
||||
0x7C200400, // 000E CALL R8 2
|
||||
0x8C200108, // 000F GETMET R8 R0 K8
|
||||
0x58280009, // 0010 LDCONST R10 K9
|
||||
0x582C0006, // 0011 LDCONST R11 K6
|
||||
0x7C200600, // 0012 CALL R8 3
|
||||
0x50200200, // 0013 LDBOOL R8 1 0
|
||||
0x80041000, // 0014 RET 1 R8
|
||||
0x7002001D, // 0015 JMP #0034
|
||||
0x1C200F0A, // 0016 EQ R8 R7 K10
|
||||
0x78220009, // 0017 JMPF R8 #0022
|
||||
0x8C200107, // 0018 GETMET R8 R0 K7
|
||||
0x50280200, // 0019 LDBOOL R10 1 0
|
||||
0x7C200400, // 001A CALL R8 2
|
||||
0x8C200108, // 001B GETMET R8 R0 K8
|
||||
0x58280009, // 001C LDCONST R10 K9
|
||||
0x582C000A, // 001D LDCONST R11 K10
|
||||
0x7C200600, // 001E CALL R8 3
|
||||
0x50200200, // 001F LDBOOL R8 1 0
|
||||
0x80041000, // 0020 RET 1 R8
|
||||
0x70020011, // 0021 JMP #0034
|
||||
0x1C200F0B, // 0022 EQ R8 R7 K11
|
||||
0x7822000F, // 0023 JMPF R8 #0034
|
||||
0x8C200107, // 0024 GETMET R8 R0 K7
|
||||
0x8828010C, // 0025 GETMBR R10 R0 K12
|
||||
0x782A0000, // 0026 JMPF R10 #0028
|
||||
0x50280001, // 0027 LDBOOL R10 0 1
|
||||
0x50280200, // 0028 LDBOOL R10 1 0
|
||||
0x7C200400, // 0029 CALL R8 2
|
||||
0x8C200108, // 002A GETMET R8 R0 K8
|
||||
0x58280009, // 002B LDCONST R10 K9
|
||||
0x882C010C, // 002C GETMBR R11 R0 K12
|
||||
0x782E0001, // 002D JMPF R11 #0030
|
||||
0x582C000A, // 002E LDCONST R11 K10
|
||||
0x70020000, // 002F JMP #0031
|
||||
0x582C0006, // 0030 LDCONST R11 K6
|
||||
0x7C200600, // 0031 CALL R8 3
|
||||
0x50200200, // 0032 LDBOOL R8 1 0
|
||||
0x80041000, // 0033 RET 1 R8
|
||||
0x80000000, // 0034 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
@ -275,17 +331,19 @@ extern const bclass be_class_Matter_Plugin_Device;
|
||||
be_local_class(Matter_Plugin_Light0,
|
||||
1,
|
||||
&be_class_Matter_Plugin_Device,
|
||||
be_nested_map(10,
|
||||
be_nested_map(11,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
|
||||
{ be_const_key_weak(NAME, -1), be_nested_str_weak(Light_X200_X20On) },
|
||||
{ be_const_key_weak(UPDATE_TIME, -1), be_const_int(250) },
|
||||
{ be_const_key_weak(TYPE, -1), be_nested_str_weak(light0) },
|
||||
{ be_const_key_weak(shadow_onoff, 8), be_const_var(0) },
|
||||
{ be_const_key_weak(TYPES, 5), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
|
||||
be_const_map( * be_nested_map(1,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_int(256, -1), be_const_int(2) },
|
||||
})) ) } )) },
|
||||
{ be_const_key_weak(TYPE, -1), be_nested_str_weak(light0) },
|
||||
{ be_const_key_weak(read_attribute, -1), be_const_closure(Matter_Plugin_Light0_read_attribute_closure) },
|
||||
{ be_const_key_weak(NAME, -1), be_nested_str_weak(Light_X200_X20On) },
|
||||
{ be_const_key_weak(CLUSTERS, 3), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
|
||||
{ be_const_key_weak(set_onoff, 2), be_const_closure(Matter_Plugin_Light0_set_onoff_closure) },
|
||||
{ be_const_key_weak(CLUSTERS, 7), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
|
||||
be_const_map( * be_nested_map(1,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_int(6, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
|
||||
@ -296,11 +354,10 @@ be_local_class(Matter_Plugin_Light0,
|
||||
be_const_int(65533),
|
||||
})) ) } )) },
|
||||
})) ) } )) },
|
||||
{ be_const_key_weak(init, -1), be_const_closure(Matter_Plugin_Light0_init_closure) },
|
||||
{ be_const_key_weak(UPDATE_TIME, -1), be_const_int(250) },
|
||||
{ be_const_key_weak(update_shadow, 0), be_const_closure(Matter_Plugin_Light0_update_shadow_closure) },
|
||||
{ be_const_key_weak(read_attribute, -1), be_const_closure(Matter_Plugin_Light0_read_attribute_closure) },
|
||||
{ be_const_key_weak(init, 1), be_const_closure(Matter_Plugin_Light0_init_closure) },
|
||||
{ be_const_key_weak(invoke_request, -1), be_const_closure(Matter_Plugin_Light0_invoke_request_closure) },
|
||||
{ be_const_key_weak(shadow_onoff, -1), be_const_var(0) },
|
||||
{ be_const_key_weak(update_shadow, 1), be_const_closure(Matter_Plugin_Light0_update_shadow_closure) },
|
||||
})),
|
||||
be_str_weak(Matter_Plugin_Light0)
|
||||
);
|
||||
|
@ -7,225 +7,91 @@
|
||||
extern const bclass be_class_Matter_Plugin_Light1;
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: update_shadow
|
||||
** Solidified function: set_bri
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_Plugin_Light1_update_shadow, /* name */
|
||||
be_local_closure(Matter_Plugin_Light1_set_bri, /* name */
|
||||
be_nested_proto(
|
||||
11, /* nstack */
|
||||
1, /* argc */
|
||||
3, /* 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(light),
|
||||
/* K1 */ be_nested_str_weak(get),
|
||||
/* K2 */ be_nested_str_weak(find),
|
||||
/* K3 */ be_nested_str_weak(bri),
|
||||
/* K4 */ be_nested_str_weak(tasmota),
|
||||
/* K5 */ be_nested_str_weak(scale_uint),
|
||||
/* K6 */ be_const_int(0),
|
||||
/* K7 */ be_nested_str_weak(shadow_bri),
|
||||
/* K8 */ be_nested_str_weak(attribute_updated),
|
||||
/* K9 */ be_nested_str_weak(update_shadow),
|
||||
( &(const bvalue[12]) { /* constants */
|
||||
/* K0 */ be_const_int(0),
|
||||
/* K1 */ be_nested_str_weak(virtual),
|
||||
/* K2 */ be_nested_str_weak(light),
|
||||
/* K3 */ be_nested_str_weak(tasmota),
|
||||
/* K4 */ be_nested_str_weak(scale_uint),
|
||||
/* K5 */ be_nested_str_weak(set),
|
||||
/* K6 */ be_nested_str_weak(bri),
|
||||
/* K7 */ be_nested_str_weak(power),
|
||||
/* K8 */ be_nested_str_weak(update_shadow),
|
||||
/* K9 */ be_nested_str_weak(shadow_onoff),
|
||||
/* K10 */ be_nested_str_weak(attribute_updated),
|
||||
/* K11 */ be_nested_str_weak(shadow_bri),
|
||||
}),
|
||||
be_str_weak(update_shadow),
|
||||
be_str_weak(set_bri),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[36]) { /* code */
|
||||
0xA4060000, // 0000 IMPORT R1 K0
|
||||
0x8C080301, // 0001 GETMET R2 R1 K1
|
||||
0x7C080200, // 0002 CALL R2 1
|
||||
0x4C0C0000, // 0003 LDNIL R3
|
||||
0x200C0403, // 0004 NE R3 R2 R3
|
||||
0x780E0017, // 0005 JMPF R3 #001E
|
||||
0x8C0C0502, // 0006 GETMET R3 R2 K2
|
||||
0x58140003, // 0007 LDCONST R5 K3
|
||||
0x4C180000, // 0008 LDNIL R6
|
||||
0x7C0C0600, // 0009 CALL R3 3
|
||||
0x4C100000, // 000A LDNIL R4
|
||||
0x20100604, // 000B NE R4 R3 R4
|
||||
0x78120010, // 000C JMPF R4 #001E
|
||||
0xB8120800, // 000D GETNGBL R4 K4
|
||||
0x8C100905, // 000E GETMET R4 R4 K5
|
||||
0x5C180600, // 000F MOVE R6 R3
|
||||
0x581C0006, // 0010 LDCONST R7 K6
|
||||
0x542200FE, // 0011 LDINT R8 255
|
||||
0x58240006, // 0012 LDCONST R9 K6
|
||||
0x542A00FD, // 0013 LDINT R10 254
|
||||
0x7C100C00, // 0014 CALL R4 6
|
||||
0x5C0C0800, // 0015 MOVE R3 R4
|
||||
0x88100107, // 0016 GETMBR R4 R0 K7
|
||||
0x20100604, // 0017 NE R4 R3 R4
|
||||
0x78120004, // 0018 JMPF R4 #001E
|
||||
0x8C100108, // 0019 GETMET R4 R0 K8
|
||||
0x541A0007, // 001A LDINT R6 8
|
||||
0x581C0006, // 001B LDCONST R7 K6
|
||||
0x7C100600, // 001C CALL R4 3
|
||||
0x90020E03, // 001D SETMBR R0 K7 R3
|
||||
0x600C0003, // 001E GETGBL R3 G3
|
||||
0x5C100000, // 001F MOVE R4 R0
|
||||
0x7C0C0200, // 0020 CALL R3 1
|
||||
0x8C0C0709, // 0021 GETMET R3 R3 K9
|
||||
0x7C0C0200, // 0022 CALL R3 1
|
||||
0x80000000, // 0023 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: invoke_request
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_Plugin_Light1_invoke_request, /* name */
|
||||
be_nested_proto(
|
||||
16, /* nstack */
|
||||
4, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[20]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(light),
|
||||
/* K1 */ be_nested_str_weak(matter),
|
||||
/* K2 */ be_nested_str_weak(TLV),
|
||||
/* K3 */ be_nested_str_weak(cluster),
|
||||
/* K4 */ be_nested_str_weak(command),
|
||||
/* K5 */ be_nested_str_weak(update_shadow_lazy),
|
||||
/* K6 */ be_const_int(0),
|
||||
/* K7 */ be_nested_str_weak(findsubval),
|
||||
/* K8 */ be_nested_str_weak(tasmota),
|
||||
/* K9 */ be_nested_str_weak(scale_uint),
|
||||
/* K10 */ be_nested_str_weak(set),
|
||||
/* K11 */ be_nested_str_weak(bri),
|
||||
/* K12 */ be_nested_str_weak(update_shadow),
|
||||
/* K13 */ be_nested_str_weak(log),
|
||||
/* K14 */ be_nested_str_weak(bri_X3A),
|
||||
/* K15 */ be_const_int(1),
|
||||
/* K16 */ be_const_int(2),
|
||||
/* K17 */ be_const_int(3),
|
||||
/* K18 */ be_nested_str_weak(power),
|
||||
/* K19 */ be_nested_str_weak(invoke_request),
|
||||
}),
|
||||
be_str_weak(invoke_request),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[112]) { /* code */
|
||||
0xA4120000, // 0000 IMPORT R4 K0
|
||||
0xB8160200, // 0001 GETNGBL R5 K1
|
||||
0x88140B02, // 0002 GETMBR R5 R5 K2
|
||||
0x88180703, // 0003 GETMBR R6 R3 K3
|
||||
0x881C0704, // 0004 GETMBR R7 R3 K4
|
||||
0x54220007, // 0005 LDINT R8 8
|
||||
0x1C200C08, // 0006 EQ R8 R6 R8
|
||||
0x7822005D, // 0007 JMPF R8 #0066
|
||||
0x8C200105, // 0008 GETMET R8 R0 K5
|
||||
0x7C200200, // 0009 CALL R8 1
|
||||
0x1C200F06, // 000A EQ R8 R7 K6
|
||||
0x78220019, // 000B JMPF R8 #0026
|
||||
0x8C200507, // 000C GETMET R8 R2 K7
|
||||
0x58280006, // 000D LDCONST R10 K6
|
||||
0x7C200400, // 000E CALL R8 2
|
||||
0xB8261000, // 000F GETNGBL R9 K8
|
||||
0x8C241309, // 0010 GETMET R9 R9 K9
|
||||
0x5C2C1000, // 0011 MOVE R11 R8
|
||||
0x58300006, // 0012 LDCONST R12 K6
|
||||
0x543600FD, // 0013 LDINT R13 254
|
||||
0x58380006, // 0014 LDCONST R14 K6
|
||||
0x543E00FE, // 0015 LDINT R15 255
|
||||
0x7C240C00, // 0016 CALL R9 6
|
||||
0x8C28090A, // 0017 GETMET R10 R4 K10
|
||||
0x60300013, // 0018 GETGBL R12 G19
|
||||
0x7C300000, // 0019 CALL R12 0
|
||||
0x98321609, // 001A SETIDX R12 K11 R9
|
||||
0x7C280400, // 001B CALL R10 2
|
||||
0x8C28010C, // 001C GETMET R10 R0 K12
|
||||
0x7C280200, // 001D CALL R10 1
|
||||
0x60280008, // 001E GETGBL R10 G8
|
||||
0x5C2C1000, // 001F MOVE R11 R8
|
||||
0x7C280200, // 0020 CALL R10 1
|
||||
0x002A1C0A, // 0021 ADD R10 K14 R10
|
||||
0x900E1A0A, // 0022 SETMBR R3 K13 R10
|
||||
0x50280200, // 0023 LDBOOL R10 1 0
|
||||
0x80041400, // 0024 RET 1 R10
|
||||
0x7002003E, // 0025 JMP #0065
|
||||
0x1C200F0F, // 0026 EQ R8 R7 K15
|
||||
0x78220002, // 0027 JMPF R8 #002B
|
||||
0x50200200, // 0028 LDBOOL R8 1 0
|
||||
0x80041000, // 0029 RET 1 R8
|
||||
0x70020039, // 002A JMP #0065
|
||||
0x1C200F10, // 002B EQ R8 R7 K16
|
||||
0x78220002, // 002C JMPF R8 #0030
|
||||
0x50200200, // 002D LDBOOL R8 1 0
|
||||
0x80041000, // 002E RET 1 R8
|
||||
0x70020034, // 002F JMP #0065
|
||||
0x1C200F11, // 0030 EQ R8 R7 K17
|
||||
0x78220002, // 0031 JMPF R8 #0035
|
||||
0x50200200, // 0032 LDBOOL R8 1 0
|
||||
0x80041000, // 0033 RET 1 R8
|
||||
0x7002002F, // 0034 JMP #0065
|
||||
0x54220003, // 0035 LDINT R8 4
|
||||
0x1C200E08, // 0036 EQ R8 R7 R8
|
||||
0x7822001B, // 0037 JMPF R8 #0054
|
||||
0x8C200507, // 0038 GETMET R8 R2 K7
|
||||
0x58280006, // 0039 LDCONST R10 K6
|
||||
0x7C200400, // 003A CALL R8 2
|
||||
0xB8261000, // 003B GETNGBL R9 K8
|
||||
0x8C241309, // 003C GETMET R9 R9 K9
|
||||
0x5C2C1000, // 003D MOVE R11 R8
|
||||
0x58300006, // 003E LDCONST R12 K6
|
||||
0x543600FD, // 003F LDINT R13 254
|
||||
0x58380006, // 0040 LDCONST R14 K6
|
||||
0x543E00FE, // 0041 LDINT R15 255
|
||||
0x7C240C00, // 0042 CALL R9 6
|
||||
0x24281306, // 0043 GT R10 R9 K6
|
||||
0x8C2C090A, // 0044 GETMET R11 R4 K10
|
||||
0x60340013, // 0045 GETGBL R13 G19
|
||||
0x7C340000, // 0046 CALL R13 0
|
||||
0x98361609, // 0047 SETIDX R13 K11 R9
|
||||
0x9836240A, // 0048 SETIDX R13 K18 R10
|
||||
0x7C2C0400, // 0049 CALL R11 2
|
||||
0x8C2C010C, // 004A GETMET R11 R0 K12
|
||||
0x7C2C0200, // 004B CALL R11 1
|
||||
0x602C0008, // 004C GETGBL R11 G8
|
||||
0x5C301000, // 004D MOVE R12 R8
|
||||
0x7C2C0200, // 004E CALL R11 1
|
||||
0x002E1C0B, // 004F ADD R11 K14 R11
|
||||
0x900E1A0B, // 0050 SETMBR R3 K13 R11
|
||||
0x502C0200, // 0051 LDBOOL R11 1 0
|
||||
0x80041600, // 0052 RET 1 R11
|
||||
0x70020010, // 0053 JMP #0065
|
||||
0x54220004, // 0054 LDINT R8 5
|
||||
0x1C200E08, // 0055 EQ R8 R7 R8
|
||||
0x78220002, // 0056 JMPF R8 #005A
|
||||
0x50200200, // 0057 LDBOOL R8 1 0
|
||||
0x80041000, // 0058 RET 1 R8
|
||||
0x7002000A, // 0059 JMP #0065
|
||||
0x54220005, // 005A LDINT R8 6
|
||||
0x1C200E08, // 005B EQ R8 R7 R8
|
||||
0x78220002, // 005C JMPF R8 #0060
|
||||
0x50200200, // 005D LDBOOL R8 1 0
|
||||
0x80041000, // 005E RET 1 R8
|
||||
0x70020004, // 005F JMP #0065
|
||||
0x54220006, // 0060 LDINT R8 7
|
||||
0x1C200E08, // 0061 EQ R8 R7 R8
|
||||
0x78220001, // 0062 JMPF R8 #0065
|
||||
0x50200200, // 0063 LDBOOL R8 1 0
|
||||
0x80041000, // 0064 RET 1 R8
|
||||
0x70020008, // 0065 JMP #006F
|
||||
0x60200003, // 0066 GETGBL R8 G3
|
||||
0x5C240000, // 0067 MOVE R9 R0
|
||||
0x7C200200, // 0068 CALL R8 1
|
||||
0x8C201113, // 0069 GETMET R8 R8 K19
|
||||
0x5C280200, // 006A MOVE R10 R1
|
||||
0x5C2C0400, // 006B MOVE R11 R2
|
||||
0x5C300600, // 006C MOVE R12 R3
|
||||
0x7C200800, // 006D CALL R8 4
|
||||
0x80041000, // 006E RET 1 R8
|
||||
0x80000000, // 006F RET 0
|
||||
( &(const binstruction[56]) { /* code */
|
||||
0x140C0300, // 0000 LT R3 R1 K0
|
||||
0x780E0000, // 0001 JMPF R3 #0003
|
||||
0x58040000, // 0002 LDCONST R1 K0
|
||||
0x540E00FD, // 0003 LDINT R3 254
|
||||
0x240C0203, // 0004 GT R3 R1 R3
|
||||
0x780E0000, // 0005 JMPF R3 #0007
|
||||
0x540600FD, // 0006 LDINT R1 254
|
||||
0x880C0101, // 0007 GETMBR R3 R0 K1
|
||||
0x740E001A, // 0008 JMPT R3 #0024
|
||||
0xA40E0400, // 0009 IMPORT R3 K2
|
||||
0xB8120600, // 000A GETNGBL R4 K3
|
||||
0x8C100904, // 000B GETMET R4 R4 K4
|
||||
0x5C180200, // 000C MOVE R6 R1
|
||||
0x581C0000, // 000D LDCONST R7 K0
|
||||
0x542200FD, // 000E LDINT R8 254
|
||||
0x58240000, // 000F LDCONST R9 K0
|
||||
0x542A00FE, // 0010 LDINT R10 255
|
||||
0x7C100C00, // 0011 CALL R4 6
|
||||
0x4C140000, // 0012 LDNIL R5
|
||||
0x1C140405, // 0013 EQ R5 R2 R5
|
||||
0x78160005, // 0014 JMPF R5 #001B
|
||||
0x8C140705, // 0015 GETMET R5 R3 K5
|
||||
0x601C0013, // 0016 GETGBL R7 G19
|
||||
0x7C1C0000, // 0017 CALL R7 0
|
||||
0x981E0C04, // 0018 SETIDX R7 K6 R4
|
||||
0x7C140400, // 0019 CALL R5 2
|
||||
0x70020005, // 001A JMP #0021
|
||||
0x8C140705, // 001B GETMET R5 R3 K5
|
||||
0x601C0013, // 001C GETGBL R7 G19
|
||||
0x7C1C0000, // 001D CALL R7 0
|
||||
0x981E0C04, // 001E SETIDX R7 K6 R4
|
||||
0x981E0E02, // 001F SETIDX R7 K7 R2
|
||||
0x7C140400, // 0020 CALL R5 2
|
||||
0x8C140108, // 0021 GETMET R5 R0 K8
|
||||
0x7C140200, // 0022 CALL R5 1
|
||||
0x70020012, // 0023 JMP #0037
|
||||
0x4C0C0000, // 0024 LDNIL R3
|
||||
0x200C0403, // 0025 NE R3 R2 R3
|
||||
0x780E0007, // 0026 JMPF R3 #002F
|
||||
0x880C0109, // 0027 GETMBR R3 R0 K9
|
||||
0x200C0403, // 0028 NE R3 R2 R3
|
||||
0x780E0004, // 0029 JMPF R3 #002F
|
||||
0x8C0C010A, // 002A GETMET R3 R0 K10
|
||||
0x54160005, // 002B LDINT R5 6
|
||||
0x58180000, // 002C LDCONST R6 K0
|
||||
0x7C0C0600, // 002D CALL R3 3
|
||||
0x90021202, // 002E SETMBR R0 K9 R2
|
||||
0x880C010B, // 002F GETMBR R3 R0 K11
|
||||
0x200C0203, // 0030 NE R3 R1 R3
|
||||
0x780E0004, // 0031 JMPF R3 #0037
|
||||
0x8C0C010A, // 0032 GETMET R3 R0 K10
|
||||
0x54160007, // 0033 LDINT R5 8
|
||||
0x58180000, // 0034 LDCONST R6 K0
|
||||
0x7C0C0600, // 0035 CALL R3 3
|
||||
0x90021601, // 0036 SETMBR R0 K11 R1
|
||||
0x80000000, // 0037 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
@ -349,6 +215,79 @@ be_local_closure(Matter_Plugin_Light1_read_attribute, /* name */
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: update_shadow
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_Plugin_Light1_update_shadow, /* 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[11]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(virtual),
|
||||
/* K1 */ be_nested_str_weak(light),
|
||||
/* K2 */ be_nested_str_weak(get),
|
||||
/* K3 */ be_nested_str_weak(find),
|
||||
/* K4 */ be_nested_str_weak(bri),
|
||||
/* K5 */ be_nested_str_weak(tasmota),
|
||||
/* K6 */ be_nested_str_weak(scale_uint),
|
||||
/* K7 */ be_const_int(0),
|
||||
/* K8 */ be_nested_str_weak(shadow_bri),
|
||||
/* K9 */ be_nested_str_weak(attribute_updated),
|
||||
/* K10 */ be_nested_str_weak(update_shadow),
|
||||
}),
|
||||
be_str_weak(update_shadow),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[38]) { /* code */
|
||||
0x88040100, // 0000 GETMBR R1 R0 K0
|
||||
0x7406001D, // 0001 JMPT R1 #0020
|
||||
0xA4060200, // 0002 IMPORT R1 K1
|
||||
0x8C080302, // 0003 GETMET R2 R1 K2
|
||||
0x7C080200, // 0004 CALL R2 1
|
||||
0x4C0C0000, // 0005 LDNIL R3
|
||||
0x200C0403, // 0006 NE R3 R2 R3
|
||||
0x780E0017, // 0007 JMPF R3 #0020
|
||||
0x8C0C0503, // 0008 GETMET R3 R2 K3
|
||||
0x58140004, // 0009 LDCONST R5 K4
|
||||
0x4C180000, // 000A LDNIL R6
|
||||
0x7C0C0600, // 000B CALL R3 3
|
||||
0x4C100000, // 000C LDNIL R4
|
||||
0x20100604, // 000D NE R4 R3 R4
|
||||
0x78120010, // 000E JMPF R4 #0020
|
||||
0xB8120A00, // 000F GETNGBL R4 K5
|
||||
0x8C100906, // 0010 GETMET R4 R4 K6
|
||||
0x5C180600, // 0011 MOVE R6 R3
|
||||
0x581C0007, // 0012 LDCONST R7 K7
|
||||
0x542200FE, // 0013 LDINT R8 255
|
||||
0x58240007, // 0014 LDCONST R9 K7
|
||||
0x542A00FD, // 0015 LDINT R10 254
|
||||
0x7C100C00, // 0016 CALL R4 6
|
||||
0x5C0C0800, // 0017 MOVE R3 R4
|
||||
0x88100108, // 0018 GETMBR R4 R0 K8
|
||||
0x20100604, // 0019 NE R4 R3 R4
|
||||
0x78120004, // 001A JMPF R4 #0020
|
||||
0x8C100109, // 001B GETMET R4 R0 K9
|
||||
0x541A0007, // 001C LDINT R6 8
|
||||
0x581C0007, // 001D LDCONST R7 K7
|
||||
0x7C100600, // 001E CALL R4 3
|
||||
0x90021003, // 001F SETMBR R0 K8 R3
|
||||
0x60040003, // 0020 GETGBL R1 G3
|
||||
0x5C080000, // 0021 MOVE R2 R0
|
||||
0x7C040200, // 0022 CALL R1 1
|
||||
0x8C04030A, // 0023 GETMET R1 R1 K10
|
||||
0x7C040200, // 0024 CALL R1 1
|
||||
0x80000000, // 0025 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: init
|
||||
********************************************************************/
|
||||
@ -386,6 +325,170 @@ be_local_closure(Matter_Plugin_Light1_init, /* name */
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: invoke_request
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_Plugin_Light1_invoke_request, /* name */
|
||||
be_nested_proto(
|
||||
22, /* nstack */
|
||||
4, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[21]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(light),
|
||||
/* K1 */ be_nested_str_weak(matter),
|
||||
/* K2 */ be_nested_str_weak(TLV),
|
||||
/* K3 */ be_nested_str_weak(cluster),
|
||||
/* K4 */ be_nested_str_weak(command),
|
||||
/* K5 */ be_nested_str_weak(update_shadow_lazy),
|
||||
/* K6 */ be_const_int(0),
|
||||
/* K7 */ be_nested_str_weak(findsubval),
|
||||
/* K8 */ be_nested_str_weak(set_bri),
|
||||
/* K9 */ be_nested_str_weak(log),
|
||||
/* K10 */ be_nested_str_weak(bri_X3A),
|
||||
/* K11 */ be_nested_str_weak(publish_command),
|
||||
/* K12 */ be_nested_str_weak(Bri),
|
||||
/* K13 */ be_nested_str_weak(Dimmer),
|
||||
/* K14 */ be_nested_str_weak(tasmota),
|
||||
/* K15 */ be_nested_str_weak(scale_uint),
|
||||
/* K16 */ be_const_int(1),
|
||||
/* K17 */ be_const_int(2),
|
||||
/* K18 */ be_const_int(3),
|
||||
/* K19 */ be_nested_str_weak(Power),
|
||||
/* K20 */ be_nested_str_weak(invoke_request),
|
||||
}),
|
||||
be_str_weak(invoke_request),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[119]) { /* code */
|
||||
0xA4120000, // 0000 IMPORT R4 K0
|
||||
0xB8160200, // 0001 GETNGBL R5 K1
|
||||
0x88140B02, // 0002 GETMBR R5 R5 K2
|
||||
0x88180703, // 0003 GETMBR R6 R3 K3
|
||||
0x881C0704, // 0004 GETMBR R7 R3 K4
|
||||
0x54220007, // 0005 LDINT R8 8
|
||||
0x1C200C08, // 0006 EQ R8 R6 R8
|
||||
0x78220064, // 0007 JMPF R8 #006D
|
||||
0x8C200105, // 0008 GETMET R8 R0 K5
|
||||
0x7C200200, // 0009 CALL R8 1
|
||||
0x1C200F06, // 000A EQ R8 R7 K6
|
||||
0x7822001A, // 000B JMPF R8 #0027
|
||||
0x8C200507, // 000C GETMET R8 R2 K7
|
||||
0x58280006, // 000D LDCONST R10 K6
|
||||
0x7C200400, // 000E CALL R8 2
|
||||
0x8C240108, // 000F GETMET R9 R0 K8
|
||||
0x5C2C1000, // 0010 MOVE R11 R8
|
||||
0x7C240400, // 0011 CALL R9 2
|
||||
0x60240008, // 0012 GETGBL R9 G8
|
||||
0x5C281000, // 0013 MOVE R10 R8
|
||||
0x7C240200, // 0014 CALL R9 1
|
||||
0x00261409, // 0015 ADD R9 K10 R9
|
||||
0x900E1209, // 0016 SETMBR R3 K9 R9
|
||||
0x8C24010B, // 0017 GETMET R9 R0 K11
|
||||
0x582C000C, // 0018 LDCONST R11 K12
|
||||
0x5C301000, // 0019 MOVE R12 R8
|
||||
0x5834000D, // 001A LDCONST R13 K13
|
||||
0xB83A1C00, // 001B GETNGBL R14 K14
|
||||
0x8C381D0F, // 001C GETMET R14 R14 K15
|
||||
0x5C401000, // 001D MOVE R16 R8
|
||||
0x58440006, // 001E LDCONST R17 K6
|
||||
0x544A00FD, // 001F LDINT R18 254
|
||||
0x584C0006, // 0020 LDCONST R19 K6
|
||||
0x54520063, // 0021 LDINT R20 100
|
||||
0x7C380C00, // 0022 CALL R14 6
|
||||
0x7C240A00, // 0023 CALL R9 5
|
||||
0x50240200, // 0024 LDBOOL R9 1 0
|
||||
0x80041200, // 0025 RET 1 R9
|
||||
0x70020044, // 0026 JMP #006C
|
||||
0x1C200F10, // 0027 EQ R8 R7 K16
|
||||
0x78220002, // 0028 JMPF R8 #002C
|
||||
0x50200200, // 0029 LDBOOL R8 1 0
|
||||
0x80041000, // 002A RET 1 R8
|
||||
0x7002003F, // 002B JMP #006C
|
||||
0x1C200F11, // 002C EQ R8 R7 K17
|
||||
0x78220002, // 002D JMPF R8 #0031
|
||||
0x50200200, // 002E LDBOOL R8 1 0
|
||||
0x80041000, // 002F RET 1 R8
|
||||
0x7002003A, // 0030 JMP #006C
|
||||
0x1C200F12, // 0031 EQ R8 R7 K18
|
||||
0x78220002, // 0032 JMPF R8 #0036
|
||||
0x50200200, // 0033 LDBOOL R8 1 0
|
||||
0x80041000, // 0034 RET 1 R8
|
||||
0x70020035, // 0035 JMP #006C
|
||||
0x54220003, // 0036 LDINT R8 4
|
||||
0x1C200E08, // 0037 EQ R8 R7 R8
|
||||
0x78220021, // 0038 JMPF R8 #005B
|
||||
0x8C200507, // 0039 GETMET R8 R2 K7
|
||||
0x58280006, // 003A LDCONST R10 K6
|
||||
0x7C200400, // 003B CALL R8 2
|
||||
0x24241106, // 003C GT R9 R8 K6
|
||||
0x8C280108, // 003D GETMET R10 R0 K8
|
||||
0x5C301000, // 003E MOVE R12 R8
|
||||
0x5C341200, // 003F MOVE R13 R9
|
||||
0x7C280600, // 0040 CALL R10 3
|
||||
0x60280008, // 0041 GETGBL R10 G8
|
||||
0x5C2C1000, // 0042 MOVE R11 R8
|
||||
0x7C280200, // 0043 CALL R10 1
|
||||
0x002A140A, // 0044 ADD R10 K10 R10
|
||||
0x900E120A, // 0045 SETMBR R3 K9 R10
|
||||
0x8C28010B, // 0046 GETMET R10 R0 K11
|
||||
0x5830000C, // 0047 LDCONST R12 K12
|
||||
0x5C341000, // 0048 MOVE R13 R8
|
||||
0x5838000D, // 0049 LDCONST R14 K13
|
||||
0xB83E1C00, // 004A GETNGBL R15 K14
|
||||
0x8C3C1F0F, // 004B GETMET R15 R15 K15
|
||||
0x5C441000, // 004C MOVE R17 R8
|
||||
0x58480006, // 004D LDCONST R18 K6
|
||||
0x544E00FD, // 004E LDINT R19 254
|
||||
0x58500006, // 004F LDCONST R20 K6
|
||||
0x54560063, // 0050 LDINT R21 100
|
||||
0x7C3C0C00, // 0051 CALL R15 6
|
||||
0x58400013, // 0052 LDCONST R16 K19
|
||||
0x78260001, // 0053 JMPF R9 #0056
|
||||
0x58440010, // 0054 LDCONST R17 K16
|
||||
0x70020000, // 0055 JMP #0057
|
||||
0x58440006, // 0056 LDCONST R17 K6
|
||||
0x7C280E00, // 0057 CALL R10 7
|
||||
0x50280200, // 0058 LDBOOL R10 1 0
|
||||
0x80041400, // 0059 RET 1 R10
|
||||
0x70020010, // 005A JMP #006C
|
||||
0x54220004, // 005B LDINT R8 5
|
||||
0x1C200E08, // 005C EQ R8 R7 R8
|
||||
0x78220002, // 005D JMPF R8 #0061
|
||||
0x50200200, // 005E LDBOOL R8 1 0
|
||||
0x80041000, // 005F RET 1 R8
|
||||
0x7002000A, // 0060 JMP #006C
|
||||
0x54220005, // 0061 LDINT R8 6
|
||||
0x1C200E08, // 0062 EQ R8 R7 R8
|
||||
0x78220002, // 0063 JMPF R8 #0067
|
||||
0x50200200, // 0064 LDBOOL R8 1 0
|
||||
0x80041000, // 0065 RET 1 R8
|
||||
0x70020004, // 0066 JMP #006C
|
||||
0x54220006, // 0067 LDINT R8 7
|
||||
0x1C200E08, // 0068 EQ R8 R7 R8
|
||||
0x78220001, // 0069 JMPF R8 #006C
|
||||
0x50200200, // 006A LDBOOL R8 1 0
|
||||
0x80041000, // 006B RET 1 R8
|
||||
0x70020008, // 006C JMP #0076
|
||||
0x60200003, // 006D GETGBL R8 G3
|
||||
0x5C240000, // 006E MOVE R9 R0
|
||||
0x7C200200, // 006F CALL R8 1
|
||||
0x8C201114, // 0070 GETMET R8 R8 K20
|
||||
0x5C280200, // 0071 MOVE R10 R1
|
||||
0x5C2C0400, // 0072 MOVE R11 R2
|
||||
0x5C300600, // 0073 MOVE R12 R3
|
||||
0x7C200800, // 0074 CALL R8 4
|
||||
0x80041000, // 0075 RET 1 R8
|
||||
0x80000000, // 0076 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified class: Matter_Plugin_Light1
|
||||
********************************************************************/
|
||||
@ -393,17 +496,17 @@ extern const bclass be_class_Matter_Plugin_Light0;
|
||||
be_local_class(Matter_Plugin_Light1,
|
||||
1,
|
||||
&be_class_Matter_Plugin_Light0,
|
||||
be_nested_map(9,
|
||||
be_nested_map(10,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_weak(init, -1), be_const_closure(Matter_Plugin_Light1_init_closure) },
|
||||
{ be_const_key_weak(TYPE, -1), be_nested_str_weak(light1) },
|
||||
{ be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
|
||||
be_const_map( * be_nested_map(1,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_int(257, -1), be_const_int(2) },
|
||||
})) ) } )) },
|
||||
{ be_const_key_weak(shadow_bri, 6), be_const_var(0) },
|
||||
{ be_const_key_weak(read_attribute, -1), be_const_closure(Matter_Plugin_Light1_read_attribute_closure) },
|
||||
{ be_const_key_weak(NAME, -1), be_nested_str_weak(Light_X201_X20Dimmer) },
|
||||
{ be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
|
||||
{ be_const_key_weak(CLUSTERS, 3), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
|
||||
be_const_map( * be_nested_map(1,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_int(8, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
|
||||
@ -418,10 +521,11 @@ be_local_class(Matter_Plugin_Light1,
|
||||
be_const_int(65533),
|
||||
})) ) } )) },
|
||||
})) ) } )) },
|
||||
{ be_const_key_weak(init, -1), be_const_closure(Matter_Plugin_Light1_init_closure) },
|
||||
{ be_const_key_weak(TYPE, 8), be_nested_str_weak(light1) },
|
||||
{ be_const_key_weak(invoke_request, -1), be_const_closure(Matter_Plugin_Light1_invoke_request_closure) },
|
||||
{ be_const_key_weak(read_attribute, 0), be_const_closure(Matter_Plugin_Light1_read_attribute_closure) },
|
||||
{ be_const_key_weak(update_shadow, 8), be_const_closure(Matter_Plugin_Light1_update_shadow_closure) },
|
||||
{ be_const_key_weak(shadow_bri, -1), be_const_var(0) },
|
||||
{ be_const_key_weak(update_shadow, -1), be_const_closure(Matter_Plugin_Light1_update_shadow_closure) },
|
||||
{ be_const_key_weak(set_bri, 1), be_const_closure(Matter_Plugin_Light1_set_bri_closure) },
|
||||
})),
|
||||
be_str_weak(Matter_Plugin_Light1)
|
||||
);
|
||||
|
@ -6,6 +6,309 @@
|
||||
|
||||
extern const bclass be_class_Matter_Plugin_Light2;
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: init
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_Plugin_Light2_init, /* name */
|
||||
be_nested_proto(
|
||||
9, /* nstack */
|
||||
4, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 3]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(init),
|
||||
/* K1 */ be_nested_str_weak(shadow_ct),
|
||||
/* K2 */ be_nested_str_weak(update_ct_minmax),
|
||||
}),
|
||||
be_str_weak(init),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[13]) { /* code */
|
||||
0x60100003, // 0000 GETGBL R4 G3
|
||||
0x5C140000, // 0001 MOVE R5 R0
|
||||
0x7C100200, // 0002 CALL R4 1
|
||||
0x8C100900, // 0003 GETMET R4 R4 K0
|
||||
0x5C180200, // 0004 MOVE R6 R1
|
||||
0x5C1C0400, // 0005 MOVE R7 R2
|
||||
0x5C200600, // 0006 MOVE R8 R3
|
||||
0x7C100800, // 0007 CALL R4 4
|
||||
0x54120144, // 0008 LDINT R4 325
|
||||
0x90020204, // 0009 SETMBR R0 K1 R4
|
||||
0x8C100102, // 000A GETMET R4 R0 K2
|
||||
0x7C100200, // 000B CALL R4 1
|
||||
0x80000000, // 000C RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: set_ct
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_Plugin_Light2_set_ct, /* 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[ 9]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(ct_min),
|
||||
/* K1 */ be_nested_str_weak(ct_max),
|
||||
/* K2 */ be_nested_str_weak(virtual),
|
||||
/* K3 */ be_nested_str_weak(light),
|
||||
/* K4 */ be_nested_str_weak(set),
|
||||
/* K5 */ be_nested_str_weak(ct),
|
||||
/* K6 */ be_nested_str_weak(update_shadow),
|
||||
/* K7 */ be_nested_str_weak(shadow_ct),
|
||||
/* K8 */ be_nested_str_weak(attribute_updated),
|
||||
}),
|
||||
be_str_weak(set_ct),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[28]) { /* code */
|
||||
0x88080100, // 0000 GETMBR R2 R0 K0
|
||||
0x14080202, // 0001 LT R2 R1 R2
|
||||
0x780A0000, // 0002 JMPF R2 #0004
|
||||
0x88040100, // 0003 GETMBR R1 R0 K0
|
||||
0x88080101, // 0004 GETMBR R2 R0 K1
|
||||
0x24080202, // 0005 GT R2 R1 R2
|
||||
0x780A0000, // 0006 JMPF R2 #0008
|
||||
0x88040101, // 0007 GETMBR R1 R0 K1
|
||||
0x88080102, // 0008 GETMBR R2 R0 K2
|
||||
0x740A0008, // 0009 JMPT R2 #0013
|
||||
0xA40A0600, // 000A IMPORT R2 K3
|
||||
0x8C0C0504, // 000B GETMET R3 R2 K4
|
||||
0x60140013, // 000C GETGBL R5 G19
|
||||
0x7C140000, // 000D CALL R5 0
|
||||
0x98160A01, // 000E SETIDX R5 K5 R1
|
||||
0x7C0C0400, // 000F CALL R3 2
|
||||
0x8C0C0106, // 0010 GETMET R3 R0 K6
|
||||
0x7C0C0200, // 0011 CALL R3 1
|
||||
0x70020007, // 0012 JMP #001B
|
||||
0x88080107, // 0013 GETMBR R2 R0 K7
|
||||
0x20080202, // 0014 NE R2 R1 R2
|
||||
0x780A0004, // 0015 JMPF R2 #001B
|
||||
0x8C080108, // 0016 GETMET R2 R0 K8
|
||||
0x541202FF, // 0017 LDINT R4 768
|
||||
0x54160006, // 0018 LDINT R5 7
|
||||
0x7C080600, // 0019 CALL R2 3
|
||||
0x90020E01, // 001A SETMBR R0 K7 R1
|
||||
0x80000000, // 001B RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: update_ct_minmax
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_Plugin_Light2_update_ct_minmax, /* 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[ 4]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(tasmota),
|
||||
/* K1 */ be_nested_str_weak(get_option),
|
||||
/* K2 */ be_nested_str_weak(ct_min),
|
||||
/* K3 */ be_nested_str_weak(ct_max),
|
||||
}),
|
||||
be_str_weak(update_ct_minmax),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[15]) { /* code */
|
||||
0xB8060000, // 0000 GETNGBL R1 K0
|
||||
0x8C040301, // 0001 GETMET R1 R1 K1
|
||||
0x540E0051, // 0002 LDINT R3 82
|
||||
0x7C040400, // 0003 CALL R1 2
|
||||
0x78060001, // 0004 JMPF R1 #0007
|
||||
0x540A00C7, // 0005 LDINT R2 200
|
||||
0x70020000, // 0006 JMP #0008
|
||||
0x540A0098, // 0007 LDINT R2 153
|
||||
0x90020402, // 0008 SETMBR R0 K2 R2
|
||||
0x78060001, // 0009 JMPF R1 #000C
|
||||
0x540A017B, // 000A LDINT R2 380
|
||||
0x70020000, // 000B JMP #000D
|
||||
0x540A01F3, // 000C LDINT R2 500
|
||||
0x90020602, // 000D SETMBR R0 K3 R2
|
||||
0x80000000, // 000E RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: invoke_request
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_Plugin_Light2_invoke_request, /* name */
|
||||
be_nested_proto(
|
||||
13, /* nstack */
|
||||
4, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[14]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(light),
|
||||
/* K1 */ be_nested_str_weak(matter),
|
||||
/* K2 */ be_nested_str_weak(TLV),
|
||||
/* K3 */ be_nested_str_weak(cluster),
|
||||
/* K4 */ be_nested_str_weak(command),
|
||||
/* K5 */ be_nested_str_weak(update_shadow_lazy),
|
||||
/* K6 */ be_nested_str_weak(findsubval),
|
||||
/* K7 */ be_const_int(0),
|
||||
/* K8 */ be_nested_str_weak(set_ct),
|
||||
/* K9 */ be_nested_str_weak(log),
|
||||
/* K10 */ be_nested_str_weak(ct_X3A),
|
||||
/* K11 */ be_nested_str_weak(publish_command),
|
||||
/* K12 */ be_nested_str_weak(CT),
|
||||
/* K13 */ be_nested_str_weak(invoke_request),
|
||||
}),
|
||||
be_str_weak(invoke_request),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[59]) { /* code */
|
||||
0xA4120000, // 0000 IMPORT R4 K0
|
||||
0xB8160200, // 0001 GETNGBL R5 K1
|
||||
0x88140B02, // 0002 GETMBR R5 R5 K2
|
||||
0x88180703, // 0003 GETMBR R6 R3 K3
|
||||
0x881C0704, // 0004 GETMBR R7 R3 K4
|
||||
0x542202FF, // 0005 LDINT R8 768
|
||||
0x1C200C08, // 0006 EQ R8 R6 R8
|
||||
0x78220028, // 0007 JMPF R8 #0031
|
||||
0x8C200105, // 0008 GETMET R8 R0 K5
|
||||
0x7C200200, // 0009 CALL R8 1
|
||||
0x54220009, // 000A LDINT R8 10
|
||||
0x1C200E08, // 000B EQ R8 R7 R8
|
||||
0x78220011, // 000C JMPF R8 #001F
|
||||
0x8C200506, // 000D GETMET R8 R2 K6
|
||||
0x58280007, // 000E LDCONST R10 K7
|
||||
0x7C200400, // 000F CALL R8 2
|
||||
0x8C240108, // 0010 GETMET R9 R0 K8
|
||||
0x5C2C1000, // 0011 MOVE R11 R8
|
||||
0x7C240400, // 0012 CALL R9 2
|
||||
0x60240008, // 0013 GETGBL R9 G8
|
||||
0x5C281000, // 0014 MOVE R10 R8
|
||||
0x7C240200, // 0015 CALL R9 1
|
||||
0x00261409, // 0016 ADD R9 K10 R9
|
||||
0x900E1209, // 0017 SETMBR R3 K9 R9
|
||||
0x8C24010B, // 0018 GETMET R9 R0 K11
|
||||
0x582C000C, // 0019 LDCONST R11 K12
|
||||
0x5C301000, // 001A MOVE R12 R8
|
||||
0x7C240600, // 001B CALL R9 3
|
||||
0x50240200, // 001C LDBOOL R9 1 0
|
||||
0x80041200, // 001D RET 1 R9
|
||||
0x70020010, // 001E JMP #0030
|
||||
0x54220046, // 001F LDINT R8 71
|
||||
0x1C200E08, // 0020 EQ R8 R7 R8
|
||||
0x78220002, // 0021 JMPF R8 #0025
|
||||
0x50200200, // 0022 LDBOOL R8 1 0
|
||||
0x80041000, // 0023 RET 1 R8
|
||||
0x7002000A, // 0024 JMP #0030
|
||||
0x5422004A, // 0025 LDINT R8 75
|
||||
0x1C200E08, // 0026 EQ R8 R7 R8
|
||||
0x78220002, // 0027 JMPF R8 #002B
|
||||
0x50200200, // 0028 LDBOOL R8 1 0
|
||||
0x80041000, // 0029 RET 1 R8
|
||||
0x70020004, // 002A JMP #0030
|
||||
0x5422004B, // 002B LDINT R8 76
|
||||
0x1C200E08, // 002C EQ R8 R7 R8
|
||||
0x78220001, // 002D JMPF R8 #0030
|
||||
0x50200200, // 002E LDBOOL R8 1 0
|
||||
0x80041000, // 002F RET 1 R8
|
||||
0x70020008, // 0030 JMP #003A
|
||||
0x60200003, // 0031 GETGBL R8 G3
|
||||
0x5C240000, // 0032 MOVE R9 R0
|
||||
0x7C200200, // 0033 CALL R8 1
|
||||
0x8C20110D, // 0034 GETMET R8 R8 K13
|
||||
0x5C280200, // 0035 MOVE R10 R1
|
||||
0x5C2C0400, // 0036 MOVE R11 R2
|
||||
0x5C300600, // 0037 MOVE R12 R3
|
||||
0x7C200800, // 0038 CALL R8 4
|
||||
0x80041000, // 0039 RET 1 R8
|
||||
0x80000000, // 003A RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: update_shadow
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_Plugin_Light2_update_shadow, /* name */
|
||||
be_nested_proto(
|
||||
8, /* nstack */
|
||||
1, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 8]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(light),
|
||||
/* K1 */ be_nested_str_weak(update_ct_minmax),
|
||||
/* K2 */ be_nested_str_weak(update_shadow),
|
||||
/* K3 */ be_nested_str_weak(get),
|
||||
/* K4 */ be_nested_str_weak(find),
|
||||
/* K5 */ be_nested_str_weak(ct),
|
||||
/* K6 */ be_nested_str_weak(shadow_ct),
|
||||
/* K7 */ be_nested_str_weak(attribute_updated),
|
||||
}),
|
||||
be_str_weak(update_shadow),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[30]) { /* code */
|
||||
0xA4060000, // 0000 IMPORT R1 K0
|
||||
0x8C080101, // 0001 GETMET R2 R0 K1
|
||||
0x7C080200, // 0002 CALL R2 1
|
||||
0x60080003, // 0003 GETGBL R2 G3
|
||||
0x5C0C0000, // 0004 MOVE R3 R0
|
||||
0x7C080200, // 0005 CALL R2 1
|
||||
0x8C080502, // 0006 GETMET R2 R2 K2
|
||||
0x7C080200, // 0007 CALL R2 1
|
||||
0x8C080303, // 0008 GETMET R2 R1 K3
|
||||
0x7C080200, // 0009 CALL R2 1
|
||||
0x4C0C0000, // 000A LDNIL R3
|
||||
0x200C0403, // 000B NE R3 R2 R3
|
||||
0x780E000F, // 000C JMPF R3 #001D
|
||||
0x8C0C0504, // 000D GETMET R3 R2 K4
|
||||
0x58140005, // 000E LDCONST R5 K5
|
||||
0x4C180000, // 000F LDNIL R6
|
||||
0x7C0C0600, // 0010 CALL R3 3
|
||||
0x4C100000, // 0011 LDNIL R4
|
||||
0x1C100604, // 0012 EQ R4 R3 R4
|
||||
0x78120000, // 0013 JMPF R4 #0015
|
||||
0x880C0106, // 0014 GETMBR R3 R0 K6
|
||||
0x88100106, // 0015 GETMBR R4 R0 K6
|
||||
0x20100604, // 0016 NE R4 R3 R4
|
||||
0x78120004, // 0017 JMPF R4 #001D
|
||||
0x8C100107, // 0018 GETMET R4 R0 K7
|
||||
0x541A02FF, // 0019 LDINT R6 768
|
||||
0x541E0006, // 001A LDINT R7 7
|
||||
0x7C100600, // 001B CALL R4 3
|
||||
0x90020C03, // 001C SETMBR R0 K6 R3
|
||||
0x80000000, // 001D RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: read_attribute
|
||||
********************************************************************/
|
||||
@ -126,258 +429,6 @@ be_local_closure(Matter_Plugin_Light2_read_attribute, /* name */
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: update_shadow
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_Plugin_Light2_update_shadow, /* name */
|
||||
be_nested_proto(
|
||||
8, /* nstack */
|
||||
1, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 8]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(light),
|
||||
/* K1 */ be_nested_str_weak(update_ct_minmax),
|
||||
/* K2 */ be_nested_str_weak(update_shadow),
|
||||
/* K3 */ be_nested_str_weak(get),
|
||||
/* K4 */ be_nested_str_weak(find),
|
||||
/* K5 */ be_nested_str_weak(ct),
|
||||
/* K6 */ be_nested_str_weak(shadow_ct),
|
||||
/* K7 */ be_nested_str_weak(attribute_updated),
|
||||
}),
|
||||
be_str_weak(update_shadow),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[30]) { /* code */
|
||||
0xA4060000, // 0000 IMPORT R1 K0
|
||||
0x8C080101, // 0001 GETMET R2 R0 K1
|
||||
0x7C080200, // 0002 CALL R2 1
|
||||
0x60080003, // 0003 GETGBL R2 G3
|
||||
0x5C0C0000, // 0004 MOVE R3 R0
|
||||
0x7C080200, // 0005 CALL R2 1
|
||||
0x8C080502, // 0006 GETMET R2 R2 K2
|
||||
0x7C080200, // 0007 CALL R2 1
|
||||
0x8C080303, // 0008 GETMET R2 R1 K3
|
||||
0x7C080200, // 0009 CALL R2 1
|
||||
0x4C0C0000, // 000A LDNIL R3
|
||||
0x200C0403, // 000B NE R3 R2 R3
|
||||
0x780E000F, // 000C JMPF R3 #001D
|
||||
0x8C0C0504, // 000D GETMET R3 R2 K4
|
||||
0x58140005, // 000E LDCONST R5 K5
|
||||
0x4C180000, // 000F LDNIL R6
|
||||
0x7C0C0600, // 0010 CALL R3 3
|
||||
0x4C100000, // 0011 LDNIL R4
|
||||
0x1C100604, // 0012 EQ R4 R3 R4
|
||||
0x78120000, // 0013 JMPF R4 #0015
|
||||
0x880C0106, // 0014 GETMBR R3 R0 K6
|
||||
0x88100106, // 0015 GETMBR R4 R0 K6
|
||||
0x20100604, // 0016 NE R4 R3 R4
|
||||
0x78120004, // 0017 JMPF R4 #001D
|
||||
0x8C100107, // 0018 GETMET R4 R0 K7
|
||||
0x541A02FF, // 0019 LDINT R6 768
|
||||
0x541E0006, // 001A LDINT R7 7
|
||||
0x7C100600, // 001B CALL R4 3
|
||||
0x90020C03, // 001C SETMBR R0 K6 R3
|
||||
0x80000000, // 001D RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: init
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_Plugin_Light2_init, /* name */
|
||||
be_nested_proto(
|
||||
9, /* nstack */
|
||||
4, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 3]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(init),
|
||||
/* K1 */ be_nested_str_weak(shadow_ct),
|
||||
/* K2 */ be_nested_str_weak(update_ct_minmax),
|
||||
}),
|
||||
be_str_weak(init),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[13]) { /* code */
|
||||
0x60100003, // 0000 GETGBL R4 G3
|
||||
0x5C140000, // 0001 MOVE R5 R0
|
||||
0x7C100200, // 0002 CALL R4 1
|
||||
0x8C100900, // 0003 GETMET R4 R4 K0
|
||||
0x5C180200, // 0004 MOVE R6 R1
|
||||
0x5C1C0400, // 0005 MOVE R7 R2
|
||||
0x5C200600, // 0006 MOVE R8 R3
|
||||
0x7C100800, // 0007 CALL R4 4
|
||||
0x54120144, // 0008 LDINT R4 325
|
||||
0x90020204, // 0009 SETMBR R0 K1 R4
|
||||
0x8C100102, // 000A GETMET R4 R0 K2
|
||||
0x7C100200, // 000B CALL R4 1
|
||||
0x80000000, // 000C RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: update_ct_minmax
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_Plugin_Light2_update_ct_minmax, /* 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[ 4]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(tasmota),
|
||||
/* K1 */ be_nested_str_weak(get_option),
|
||||
/* K2 */ be_nested_str_weak(ct_min),
|
||||
/* K3 */ be_nested_str_weak(ct_max),
|
||||
}),
|
||||
be_str_weak(update_ct_minmax),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[15]) { /* code */
|
||||
0xB8060000, // 0000 GETNGBL R1 K0
|
||||
0x8C040301, // 0001 GETMET R1 R1 K1
|
||||
0x540E0051, // 0002 LDINT R3 82
|
||||
0x7C040400, // 0003 CALL R1 2
|
||||
0x78060001, // 0004 JMPF R1 #0007
|
||||
0x540A00C7, // 0005 LDINT R2 200
|
||||
0x70020000, // 0006 JMP #0008
|
||||
0x540A0098, // 0007 LDINT R2 153
|
||||
0x90020402, // 0008 SETMBR R0 K2 R2
|
||||
0x78060001, // 0009 JMPF R1 #000C
|
||||
0x540A017B, // 000A LDINT R2 380
|
||||
0x70020000, // 000B JMP #000D
|
||||
0x540A01F3, // 000C LDINT R2 500
|
||||
0x90020602, // 000D SETMBR R0 K3 R2
|
||||
0x80000000, // 000E RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: invoke_request
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_Plugin_Light2_invoke_request, /* name */
|
||||
be_nested_proto(
|
||||
13, /* nstack */
|
||||
4, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[16]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(light),
|
||||
/* K1 */ be_nested_str_weak(matter),
|
||||
/* K2 */ be_nested_str_weak(TLV),
|
||||
/* K3 */ be_nested_str_weak(cluster),
|
||||
/* K4 */ be_nested_str_weak(command),
|
||||
/* K5 */ be_nested_str_weak(update_shadow_lazy),
|
||||
/* K6 */ be_nested_str_weak(findsubval),
|
||||
/* K7 */ be_const_int(0),
|
||||
/* K8 */ be_nested_str_weak(ct_min),
|
||||
/* K9 */ be_nested_str_weak(ct_max),
|
||||
/* K10 */ be_nested_str_weak(set),
|
||||
/* K11 */ be_nested_str_weak(ct),
|
||||
/* K12 */ be_nested_str_weak(update_shadow),
|
||||
/* K13 */ be_nested_str_weak(log),
|
||||
/* K14 */ be_nested_str_weak(ct_X3A),
|
||||
/* K15 */ be_nested_str_weak(invoke_request),
|
||||
}),
|
||||
be_str_weak(invoke_request),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[67]) { /* code */
|
||||
0xA4120000, // 0000 IMPORT R4 K0
|
||||
0xB8160200, // 0001 GETNGBL R5 K1
|
||||
0x88140B02, // 0002 GETMBR R5 R5 K2
|
||||
0x88180703, // 0003 GETMBR R6 R3 K3
|
||||
0x881C0704, // 0004 GETMBR R7 R3 K4
|
||||
0x542202FF, // 0005 LDINT R8 768
|
||||
0x1C200C08, // 0006 EQ R8 R6 R8
|
||||
0x78220030, // 0007 JMPF R8 #0039
|
||||
0x8C200105, // 0008 GETMET R8 R0 K5
|
||||
0x7C200200, // 0009 CALL R8 1
|
||||
0x54220009, // 000A LDINT R8 10
|
||||
0x1C200E08, // 000B EQ R8 R7 R8
|
||||
0x78220019, // 000C JMPF R8 #0027
|
||||
0x8C200506, // 000D GETMET R8 R2 K6
|
||||
0x58280007, // 000E LDCONST R10 K7
|
||||
0x7C200400, // 000F CALL R8 2
|
||||
0x88240108, // 0010 GETMBR R9 R0 K8
|
||||
0x14241009, // 0011 LT R9 R8 R9
|
||||
0x78260000, // 0012 JMPF R9 #0014
|
||||
0x88200108, // 0013 GETMBR R8 R0 K8
|
||||
0x88240109, // 0014 GETMBR R9 R0 K9
|
||||
0x24241009, // 0015 GT R9 R8 R9
|
||||
0x78260000, // 0016 JMPF R9 #0018
|
||||
0x88200109, // 0017 GETMBR R8 R0 K9
|
||||
0x8C24090A, // 0018 GETMET R9 R4 K10
|
||||
0x602C0013, // 0019 GETGBL R11 G19
|
||||
0x7C2C0000, // 001A CALL R11 0
|
||||
0x982E1608, // 001B SETIDX R11 K11 R8
|
||||
0x7C240400, // 001C CALL R9 2
|
||||
0x8C24010C, // 001D GETMET R9 R0 K12
|
||||
0x7C240200, // 001E CALL R9 1
|
||||
0x60240008, // 001F GETGBL R9 G8
|
||||
0x5C281000, // 0020 MOVE R10 R8
|
||||
0x7C240200, // 0021 CALL R9 1
|
||||
0x00261C09, // 0022 ADD R9 K14 R9
|
||||
0x900E1A09, // 0023 SETMBR R3 K13 R9
|
||||
0x50240200, // 0024 LDBOOL R9 1 0
|
||||
0x80041200, // 0025 RET 1 R9
|
||||
0x70020010, // 0026 JMP #0038
|
||||
0x54220046, // 0027 LDINT R8 71
|
||||
0x1C200E08, // 0028 EQ R8 R7 R8
|
||||
0x78220002, // 0029 JMPF R8 #002D
|
||||
0x50200200, // 002A LDBOOL R8 1 0
|
||||
0x80041000, // 002B RET 1 R8
|
||||
0x7002000A, // 002C JMP #0038
|
||||
0x5422004A, // 002D LDINT R8 75
|
||||
0x1C200E08, // 002E EQ R8 R7 R8
|
||||
0x78220002, // 002F JMPF R8 #0033
|
||||
0x50200200, // 0030 LDBOOL R8 1 0
|
||||
0x80041000, // 0031 RET 1 R8
|
||||
0x70020004, // 0032 JMP #0038
|
||||
0x5422004B, // 0033 LDINT R8 76
|
||||
0x1C200E08, // 0034 EQ R8 R7 R8
|
||||
0x78220001, // 0035 JMPF R8 #0038
|
||||
0x50200200, // 0036 LDBOOL R8 1 0
|
||||
0x80041000, // 0037 RET 1 R8
|
||||
0x70020008, // 0038 JMP #0042
|
||||
0x60200003, // 0039 GETGBL R8 G3
|
||||
0x5C240000, // 003A MOVE R9 R0
|
||||
0x7C200200, // 003B CALL R8 1
|
||||
0x8C20110F, // 003C GETMET R8 R8 K15
|
||||
0x5C280200, // 003D MOVE R10 R1
|
||||
0x5C2C0400, // 003E MOVE R11 R2
|
||||
0x5C300600, // 003F MOVE R12 R3
|
||||
0x7C200800, // 0040 CALL R8 4
|
||||
0x80041000, // 0041 RET 1 R8
|
||||
0x80000000, // 0042 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified class: Matter_Plugin_Light2
|
||||
********************************************************************/
|
||||
@ -385,22 +436,18 @@ extern const bclass be_class_Matter_Plugin_Light1;
|
||||
be_local_class(Matter_Plugin_Light2,
|
||||
3,
|
||||
&be_class_Matter_Plugin_Light1,
|
||||
be_nested_map(12,
|
||||
be_nested_map(13,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_weak(ct_min, -1), be_const_var(1) },
|
||||
{ be_const_key_weak(shadow_ct, 8), be_const_var(0) },
|
||||
{ be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
|
||||
be_const_map( * be_nested_map(1,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_int(268, -1), be_const_int(2) },
|
||||
})) ) } )) },
|
||||
{ be_const_key_weak(ct_max, 7), be_const_var(2) },
|
||||
{ be_const_key_weak(TYPE, 0), be_nested_str_weak(light2) },
|
||||
{ be_const_key_weak(read_attribute, -1), be_const_closure(Matter_Plugin_Light2_read_attribute_closure) },
|
||||
{ be_const_key_weak(NAME, 5), be_nested_str_weak(Light_X202_X20CT) },
|
||||
{ be_const_key_weak(init, -1), be_const_closure(Matter_Plugin_Light2_init_closure) },
|
||||
{ be_const_key_weak(update_shadow, 4), be_const_closure(Matter_Plugin_Light2_update_shadow_closure) },
|
||||
{ be_const_key_weak(update_ct_minmax, -1), be_const_closure(Matter_Plugin_Light2_update_ct_minmax_closure) },
|
||||
{ be_const_key_weak(invoke_request, -1), be_const_closure(Matter_Plugin_Light2_invoke_request_closure) },
|
||||
{ be_const_key_weak(TYPE, -1), be_nested_str_weak(light2) },
|
||||
{ be_const_key_weak(set_ct, -1), be_const_closure(Matter_Plugin_Light2_set_ct_closure) },
|
||||
{ be_const_key_weak(shadow_ct, -1), be_const_var(0) },
|
||||
{ be_const_key_weak(update_ct_minmax, 8), be_const_closure(Matter_Plugin_Light2_update_ct_minmax_closure) },
|
||||
{ be_const_key_weak(init, 4), be_const_closure(Matter_Plugin_Light2_init_closure) },
|
||||
{ be_const_key_weak(update_shadow, -1), be_const_closure(Matter_Plugin_Light2_update_shadow_closure) },
|
||||
{ be_const_key_weak(ct_max, 1), be_const_var(2) },
|
||||
{ be_const_key_weak(NAME, -1), be_nested_str_weak(Light_X202_X20CT) },
|
||||
{ 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[]) {
|
||||
@ -416,7 +463,12 @@ be_local_class(Matter_Plugin_Light2,
|
||||
be_const_int(65533),
|
||||
})) ) } )) },
|
||||
})) ) } )) },
|
||||
{ be_const_key_weak(invoke_request, -1), be_const_closure(Matter_Plugin_Light2_invoke_request_closure) },
|
||||
{ be_const_key_weak(read_attribute, -1), be_const_closure(Matter_Plugin_Light2_read_attribute_closure) },
|
||||
{ be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
|
||||
be_const_map( * be_nested_map(1,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_int(268, -1), be_const_int(2) },
|
||||
})) ) } )) },
|
||||
})),
|
||||
be_str_weak(Matter_Plugin_Light2)
|
||||
);
|
||||
|
@ -6,107 +6,6 @@
|
||||
|
||||
extern const bclass be_class_Matter_Plugin_Light3;
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: update_shadow
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_Plugin_Light3_update_shadow, /* name */
|
||||
be_nested_proto(
|
||||
12, /* nstack */
|
||||
1, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[13]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(light),
|
||||
/* K1 */ be_nested_str_weak(update_shadow),
|
||||
/* K2 */ be_nested_str_weak(get),
|
||||
/* K3 */ be_nested_str_weak(find),
|
||||
/* K4 */ be_nested_str_weak(hue),
|
||||
/* K5 */ be_nested_str_weak(sat),
|
||||
/* K6 */ be_nested_str_weak(tasmota),
|
||||
/* K7 */ be_nested_str_weak(scale_uint),
|
||||
/* K8 */ be_const_int(0),
|
||||
/* K9 */ be_nested_str_weak(shadow_hue),
|
||||
/* K10 */ be_nested_str_weak(shadow_sat),
|
||||
/* K11 */ be_nested_str_weak(attribute_updated),
|
||||
/* K12 */ be_const_int(1),
|
||||
}),
|
||||
be_str_weak(update_shadow),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[64]) { /* code */
|
||||
0xA4060000, // 0000 IMPORT R1 K0
|
||||
0x60080003, // 0001 GETGBL R2 G3
|
||||
0x5C0C0000, // 0002 MOVE R3 R0
|
||||
0x7C080200, // 0003 CALL R2 1
|
||||
0x8C080501, // 0004 GETMET R2 R2 K1
|
||||
0x7C080200, // 0005 CALL R2 1
|
||||
0x8C080302, // 0006 GETMET R2 R1 K2
|
||||
0x7C080200, // 0007 CALL R2 1
|
||||
0x4C0C0000, // 0008 LDNIL R3
|
||||
0x200C0403, // 0009 NE R3 R2 R3
|
||||
0x780E0033, // 000A JMPF R3 #003F
|
||||
0x8C0C0503, // 000B GETMET R3 R2 K3
|
||||
0x58140004, // 000C LDCONST R5 K4
|
||||
0x4C180000, // 000D LDNIL R6
|
||||
0x7C0C0600, // 000E CALL R3 3
|
||||
0x8C100503, // 000F GETMET R4 R2 K3
|
||||
0x58180005, // 0010 LDCONST R6 K5
|
||||
0x4C1C0000, // 0011 LDNIL R7
|
||||
0x7C100600, // 0012 CALL R4 3
|
||||
0x4C140000, // 0013 LDNIL R5
|
||||
0x20140605, // 0014 NE R5 R3 R5
|
||||
0x78160009, // 0015 JMPF R5 #0020
|
||||
0xB8160C00, // 0016 GETNGBL R5 K6
|
||||
0x8C140B07, // 0017 GETMET R5 R5 K7
|
||||
0x5C1C0600, // 0018 MOVE R7 R3
|
||||
0x58200008, // 0019 LDCONST R8 K8
|
||||
0x54260167, // 001A LDINT R9 360
|
||||
0x58280008, // 001B LDCONST R10 K8
|
||||
0x542E00FD, // 001C LDINT R11 254
|
||||
0x7C140C00, // 001D CALL R5 6
|
||||
0x5C0C0A00, // 001E MOVE R3 R5
|
||||
0x70020000, // 001F JMP #0021
|
||||
0x880C0109, // 0020 GETMBR R3 R0 K9
|
||||
0x4C140000, // 0021 LDNIL R5
|
||||
0x20140805, // 0022 NE R5 R4 R5
|
||||
0x78160009, // 0023 JMPF R5 #002E
|
||||
0xB8160C00, // 0024 GETNGBL R5 K6
|
||||
0x8C140B07, // 0025 GETMET R5 R5 K7
|
||||
0x5C1C0800, // 0026 MOVE R7 R4
|
||||
0x58200008, // 0027 LDCONST R8 K8
|
||||
0x542600FE, // 0028 LDINT R9 255
|
||||
0x58280008, // 0029 LDCONST R10 K8
|
||||
0x542E00FD, // 002A LDINT R11 254
|
||||
0x7C140C00, // 002B CALL R5 6
|
||||
0x5C100A00, // 002C MOVE R4 R5
|
||||
0x70020000, // 002D JMP #002F
|
||||
0x8810010A, // 002E GETMBR R4 R0 K10
|
||||
0x88140109, // 002F GETMBR R5 R0 K9
|
||||
0x20140605, // 0030 NE R5 R3 R5
|
||||
0x78160004, // 0031 JMPF R5 #0037
|
||||
0x8C14010B, // 0032 GETMET R5 R0 K11
|
||||
0x541E02FF, // 0033 LDINT R7 768
|
||||
0x58200008, // 0034 LDCONST R8 K8
|
||||
0x7C140600, // 0035 CALL R5 3
|
||||
0x90021203, // 0036 SETMBR R0 K9 R3
|
||||
0x8814010A, // 0037 GETMBR R5 R0 K10
|
||||
0x20140805, // 0038 NE R5 R4 R5
|
||||
0x78160004, // 0039 JMPF R5 #003F
|
||||
0x8C14010B, // 003A GETMET R5 R0 K11
|
||||
0x541E02FF, // 003B LDINT R7 768
|
||||
0x5820000C, // 003C LDCONST R8 K12
|
||||
0x7C140600, // 003D CALL R5 3
|
||||
0x90021404, // 003E SETMBR R0 K10 R4
|
||||
0x80000000, // 003F RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: read_attribute
|
||||
********************************************************************/
|
||||
@ -251,6 +150,251 @@ be_local_closure(Matter_Plugin_Light3_read_attribute, /* name */
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: set_hue_sat
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_Plugin_Light3_set_hue_sat, /* name */
|
||||
be_nested_proto(
|
||||
11, /* nstack */
|
||||
3, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[13]) { /* constants */
|
||||
/* K0 */ be_const_int(0),
|
||||
/* K1 */ be_nested_str_weak(virtual),
|
||||
/* K2 */ be_nested_str_weak(tasmota),
|
||||
/* K3 */ be_nested_str_weak(scale_uint),
|
||||
/* K4 */ be_nested_str_weak(light),
|
||||
/* K5 */ be_nested_str_weak(set),
|
||||
/* K6 */ be_nested_str_weak(hue),
|
||||
/* K7 */ be_nested_str_weak(sat),
|
||||
/* K8 */ be_nested_str_weak(update_shadow),
|
||||
/* K9 */ be_nested_str_weak(shadow_hue),
|
||||
/* K10 */ be_nested_str_weak(attribute_updated),
|
||||
/* K11 */ be_nested_str_weak(shadow_sat),
|
||||
/* K12 */ be_const_int(1),
|
||||
}),
|
||||
be_str_weak(set_hue_sat),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[104]) { /* code */
|
||||
0x4C0C0000, // 0000 LDNIL R3
|
||||
0x200C0203, // 0001 NE R3 R1 R3
|
||||
0x780E0006, // 0002 JMPF R3 #000A
|
||||
0x140C0300, // 0003 LT R3 R1 K0
|
||||
0x780E0000, // 0004 JMPF R3 #0006
|
||||
0x58040000, // 0005 LDCONST R1 K0
|
||||
0x540E00FD, // 0006 LDINT R3 254
|
||||
0x240C0203, // 0007 GT R3 R1 R3
|
||||
0x780E0000, // 0008 JMPF R3 #000A
|
||||
0x540600FD, // 0009 LDINT R1 254
|
||||
0x4C0C0000, // 000A LDNIL R3
|
||||
0x200C0403, // 000B NE R3 R2 R3
|
||||
0x780E0006, // 000C JMPF R3 #0014
|
||||
0x140C0500, // 000D LT R3 R2 K0
|
||||
0x780E0000, // 000E JMPF R3 #0010
|
||||
0x58080000, // 000F LDCONST R2 K0
|
||||
0x540E00FD, // 0010 LDINT R3 254
|
||||
0x240C0403, // 0011 GT R3 R2 R3
|
||||
0x780E0000, // 0012 JMPF R3 #0014
|
||||
0x540A00FD, // 0013 LDINT R2 254
|
||||
0x880C0101, // 0014 GETMBR R3 R0 K1
|
||||
0x740E003A, // 0015 JMPT R3 #0051
|
||||
0x4C0C0000, // 0016 LDNIL R3
|
||||
0x200C0203, // 0017 NE R3 R1 R3
|
||||
0x780E0008, // 0018 JMPF R3 #0022
|
||||
0xB80E0400, // 0019 GETNGBL R3 K2
|
||||
0x8C0C0703, // 001A GETMET R3 R3 K3
|
||||
0x5C140200, // 001B MOVE R5 R1
|
||||
0x58180000, // 001C LDCONST R6 K0
|
||||
0x541E00FD, // 001D LDINT R7 254
|
||||
0x58200000, // 001E LDCONST R8 K0
|
||||
0x54260167, // 001F LDINT R9 360
|
||||
0x7C0C0C00, // 0020 CALL R3 6
|
||||
0x70020000, // 0021 JMP #0023
|
||||
0x4C0C0000, // 0022 LDNIL R3
|
||||
0x4C100000, // 0023 LDNIL R4
|
||||
0x20100404, // 0024 NE R4 R2 R4
|
||||
0x78120008, // 0025 JMPF R4 #002F
|
||||
0xB8120400, // 0026 GETNGBL R4 K2
|
||||
0x8C100903, // 0027 GETMET R4 R4 K3
|
||||
0x5C180400, // 0028 MOVE R6 R2
|
||||
0x581C0000, // 0029 LDCONST R7 K0
|
||||
0x542200FD, // 002A LDINT R8 254
|
||||
0x58240000, // 002B LDCONST R9 K0
|
||||
0x542A00FE, // 002C LDINT R10 255
|
||||
0x7C100C00, // 002D CALL R4 6
|
||||
0x70020000, // 002E JMP #0030
|
||||
0x4C100000, // 002F LDNIL R4
|
||||
0x4C140000, // 0030 LDNIL R5
|
||||
0x20140605, // 0031 NE R5 R3 R5
|
||||
0x7816000A, // 0032 JMPF R5 #003E
|
||||
0x4C140000, // 0033 LDNIL R5
|
||||
0x20140805, // 0034 NE R5 R4 R5
|
||||
0x78160007, // 0035 JMPF R5 #003E
|
||||
0xB8160800, // 0036 GETNGBL R5 K4
|
||||
0x8C140B05, // 0037 GETMET R5 R5 K5
|
||||
0x601C0013, // 0038 GETGBL R7 G19
|
||||
0x7C1C0000, // 0039 CALL R7 0
|
||||
0x981E0C03, // 003A SETIDX R7 K6 R3
|
||||
0x981E0E04, // 003B SETIDX R7 K7 R4
|
||||
0x7C140400, // 003C CALL R5 2
|
||||
0x7002000F, // 003D JMP #004E
|
||||
0x4C140000, // 003E LDNIL R5
|
||||
0x20140605, // 003F NE R5 R3 R5
|
||||
0x78160006, // 0040 JMPF R5 #0048
|
||||
0xB8160800, // 0041 GETNGBL R5 K4
|
||||
0x8C140B05, // 0042 GETMET R5 R5 K5
|
||||
0x601C0013, // 0043 GETGBL R7 G19
|
||||
0x7C1C0000, // 0044 CALL R7 0
|
||||
0x981E0C03, // 0045 SETIDX R7 K6 R3
|
||||
0x7C140400, // 0046 CALL R5 2
|
||||
0x70020005, // 0047 JMP #004E
|
||||
0xB8160800, // 0048 GETNGBL R5 K4
|
||||
0x8C140B05, // 0049 GETMET R5 R5 K5
|
||||
0x601C0013, // 004A GETGBL R7 G19
|
||||
0x7C1C0000, // 004B CALL R7 0
|
||||
0x981E0E04, // 004C SETIDX R7 K7 R4
|
||||
0x7C140400, // 004D CALL R5 2
|
||||
0x8C140108, // 004E GETMET R5 R0 K8
|
||||
0x7C140200, // 004F CALL R5 1
|
||||
0x70020015, // 0050 JMP #0067
|
||||
0x4C0C0000, // 0051 LDNIL R3
|
||||
0x200C0203, // 0052 NE R3 R1 R3
|
||||
0x780E0007, // 0053 JMPF R3 #005C
|
||||
0x880C0109, // 0054 GETMBR R3 R0 K9
|
||||
0x200C0203, // 0055 NE R3 R1 R3
|
||||
0x780E0004, // 0056 JMPF R3 #005C
|
||||
0x8C0C010A, // 0057 GETMET R3 R0 K10
|
||||
0x541602FF, // 0058 LDINT R5 768
|
||||
0x58180000, // 0059 LDCONST R6 K0
|
||||
0x7C0C0600, // 005A CALL R3 3
|
||||
0x90021201, // 005B SETMBR R0 K9 R1
|
||||
0x4C0C0000, // 005C LDNIL R3
|
||||
0x200C0403, // 005D NE R3 R2 R3
|
||||
0x780E0007, // 005E JMPF R3 #0067
|
||||
0x880C010B, // 005F GETMBR R3 R0 K11
|
||||
0x200C0403, // 0060 NE R3 R2 R3
|
||||
0x780E0004, // 0061 JMPF R3 #0067
|
||||
0x8C0C010A, // 0062 GETMET R3 R0 K10
|
||||
0x541602FF, // 0063 LDINT R5 768
|
||||
0x5818000C, // 0064 LDCONST R6 K12
|
||||
0x7C0C0600, // 0065 CALL R3 3
|
||||
0x90021602, // 0066 SETMBR R0 K11 R2
|
||||
0x80000000, // 0067 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: update_shadow
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_Plugin_Light3_update_shadow, /* name */
|
||||
be_nested_proto(
|
||||
12, /* nstack */
|
||||
1, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[14]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(update_shadow),
|
||||
/* K1 */ be_nested_str_weak(virtual),
|
||||
/* K2 */ be_nested_str_weak(light),
|
||||
/* K3 */ be_nested_str_weak(get),
|
||||
/* K4 */ be_nested_str_weak(find),
|
||||
/* K5 */ be_nested_str_weak(hue),
|
||||
/* K6 */ be_nested_str_weak(sat),
|
||||
/* K7 */ be_nested_str_weak(tasmota),
|
||||
/* K8 */ be_nested_str_weak(scale_uint),
|
||||
/* K9 */ be_const_int(0),
|
||||
/* K10 */ be_nested_str_weak(shadow_hue),
|
||||
/* K11 */ be_nested_str_weak(shadow_sat),
|
||||
/* K12 */ be_nested_str_weak(attribute_updated),
|
||||
/* K13 */ be_const_int(1),
|
||||
}),
|
||||
be_str_weak(update_shadow),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[66]) { /* code */
|
||||
0x60040003, // 0000 GETGBL R1 G3
|
||||
0x5C080000, // 0001 MOVE R2 R0
|
||||
0x7C040200, // 0002 CALL R1 1
|
||||
0x8C040300, // 0003 GETMET R1 R1 K0
|
||||
0x7C040200, // 0004 CALL R1 1
|
||||
0x88040101, // 0005 GETMBR R1 R0 K1
|
||||
0x74060039, // 0006 JMPT R1 #0041
|
||||
0xA4060400, // 0007 IMPORT R1 K2
|
||||
0x8C080303, // 0008 GETMET R2 R1 K3
|
||||
0x7C080200, // 0009 CALL R2 1
|
||||
0x4C0C0000, // 000A LDNIL R3
|
||||
0x200C0403, // 000B NE R3 R2 R3
|
||||
0x780E0033, // 000C JMPF R3 #0041
|
||||
0x8C0C0504, // 000D GETMET R3 R2 K4
|
||||
0x58140005, // 000E LDCONST R5 K5
|
||||
0x4C180000, // 000F LDNIL R6
|
||||
0x7C0C0600, // 0010 CALL R3 3
|
||||
0x8C100504, // 0011 GETMET R4 R2 K4
|
||||
0x58180006, // 0012 LDCONST R6 K6
|
||||
0x4C1C0000, // 0013 LDNIL R7
|
||||
0x7C100600, // 0014 CALL R4 3
|
||||
0x4C140000, // 0015 LDNIL R5
|
||||
0x20140605, // 0016 NE R5 R3 R5
|
||||
0x78160009, // 0017 JMPF R5 #0022
|
||||
0xB8160E00, // 0018 GETNGBL R5 K7
|
||||
0x8C140B08, // 0019 GETMET R5 R5 K8
|
||||
0x5C1C0600, // 001A MOVE R7 R3
|
||||
0x58200009, // 001B LDCONST R8 K9
|
||||
0x54260167, // 001C LDINT R9 360
|
||||
0x58280009, // 001D LDCONST R10 K9
|
||||
0x542E00FD, // 001E LDINT R11 254
|
||||
0x7C140C00, // 001F CALL R5 6
|
||||
0x5C0C0A00, // 0020 MOVE R3 R5
|
||||
0x70020000, // 0021 JMP #0023
|
||||
0x880C010A, // 0022 GETMBR R3 R0 K10
|
||||
0x4C140000, // 0023 LDNIL R5
|
||||
0x20140805, // 0024 NE R5 R4 R5
|
||||
0x78160009, // 0025 JMPF R5 #0030
|
||||
0xB8160E00, // 0026 GETNGBL R5 K7
|
||||
0x8C140B08, // 0027 GETMET R5 R5 K8
|
||||
0x5C1C0800, // 0028 MOVE R7 R4
|
||||
0x58200009, // 0029 LDCONST R8 K9
|
||||
0x542600FE, // 002A LDINT R9 255
|
||||
0x58280009, // 002B LDCONST R10 K9
|
||||
0x542E00FD, // 002C LDINT R11 254
|
||||
0x7C140C00, // 002D CALL R5 6
|
||||
0x5C100A00, // 002E MOVE R4 R5
|
||||
0x70020000, // 002F JMP #0031
|
||||
0x8810010B, // 0030 GETMBR R4 R0 K11
|
||||
0x8814010A, // 0031 GETMBR R5 R0 K10
|
||||
0x20140605, // 0032 NE R5 R3 R5
|
||||
0x78160004, // 0033 JMPF R5 #0039
|
||||
0x8C14010C, // 0034 GETMET R5 R0 K12
|
||||
0x541E02FF, // 0035 LDINT R7 768
|
||||
0x58200009, // 0036 LDCONST R8 K9
|
||||
0x7C140600, // 0037 CALL R5 3
|
||||
0x90021403, // 0038 SETMBR R0 K10 R3
|
||||
0x8814010B, // 0039 GETMBR R5 R0 K11
|
||||
0x20140805, // 003A NE R5 R4 R5
|
||||
0x78160004, // 003B JMPF R5 #0041
|
||||
0x8C14010C, // 003C GETMET R5 R0 K12
|
||||
0x541E02FF, // 003D LDINT R7 768
|
||||
0x5820000D, // 003E LDCONST R8 K13
|
||||
0x7C140600, // 003F CALL R5 3
|
||||
0x90021604, // 0040 SETMBR R0 K11 R4
|
||||
0x80000000, // 0041 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: init
|
||||
********************************************************************/
|
||||
@ -295,7 +439,7 @@ be_local_closure(Matter_Plugin_Light3_init, /* name */
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_Plugin_Light3_invoke_request, /* name */
|
||||
be_nested_proto(
|
||||
18, /* nstack */
|
||||
16, /* nstack */
|
||||
4, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
@ -303,7 +447,7 @@ be_local_closure(Matter_Plugin_Light3_invoke_request, /* name */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[22]) { /* constants */
|
||||
( &(const bvalue[20]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(light),
|
||||
/* K1 */ be_nested_str_weak(matter),
|
||||
/* K2 */ be_nested_str_weak(TLV),
|
||||
@ -312,24 +456,22 @@ be_local_closure(Matter_Plugin_Light3_invoke_request, /* name */
|
||||
/* K5 */ be_nested_str_weak(update_shadow_lazy),
|
||||
/* K6 */ be_const_int(0),
|
||||
/* K7 */ be_nested_str_weak(findsubval),
|
||||
/* K8 */ be_nested_str_weak(tasmota),
|
||||
/* K9 */ be_nested_str_weak(scale_uint),
|
||||
/* K10 */ be_nested_str_weak(set),
|
||||
/* K11 */ be_nested_str_weak(hue),
|
||||
/* K12 */ be_nested_str_weak(update_shadow),
|
||||
/* K13 */ be_nested_str_weak(log),
|
||||
/* K14 */ be_nested_str_weak(hue_X3A),
|
||||
/* K15 */ be_const_int(1),
|
||||
/* K16 */ be_const_int(2),
|
||||
/* K17 */ be_const_int(3),
|
||||
/* K18 */ be_nested_str_weak(sat),
|
||||
/* K19 */ be_nested_str_weak(sat_X3A),
|
||||
/* K20 */ be_nested_str_weak(_X20sat_X3A),
|
||||
/* K21 */ be_nested_str_weak(invoke_request),
|
||||
/* K8 */ be_nested_str_weak(set_hue_sat),
|
||||
/* K9 */ be_nested_str_weak(log),
|
||||
/* K10 */ be_nested_str_weak(hue_X3A),
|
||||
/* K11 */ be_nested_str_weak(publish_command),
|
||||
/* K12 */ be_nested_str_weak(Hue),
|
||||
/* K13 */ be_const_int(1),
|
||||
/* K14 */ be_const_int(2),
|
||||
/* K15 */ be_const_int(3),
|
||||
/* K16 */ be_nested_str_weak(sat_X3A),
|
||||
/* K17 */ be_nested_str_weak(Sat),
|
||||
/* K18 */ be_nested_str_weak(_X20sat_X3A),
|
||||
/* K19 */ be_nested_str_weak(invoke_request),
|
||||
}),
|
||||
be_str_weak(invoke_request),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[150]) { /* code */
|
||||
( &(const binstruction[122]) { /* code */
|
||||
0xA4120000, // 0000 IMPORT R4 K0
|
||||
0xB8160200, // 0001 GETNGBL R5 K1
|
||||
0x88140B02, // 0002 GETMBR R5 R5 K2
|
||||
@ -337,149 +479,121 @@ be_local_closure(Matter_Plugin_Light3_invoke_request, /* name */
|
||||
0x881C0704, // 0004 GETMBR R7 R3 K4
|
||||
0x542202FF, // 0005 LDINT R8 768
|
||||
0x1C200C08, // 0006 EQ R8 R6 R8
|
||||
0x78220083, // 0007 JMPF R8 #008C
|
||||
0x78220067, // 0007 JMPF R8 #0070
|
||||
0x8C200105, // 0008 GETMET R8 R0 K5
|
||||
0x7C200200, // 0009 CALL R8 1
|
||||
0x1C200F06, // 000A EQ R8 R7 K6
|
||||
0x78220019, // 000B JMPF R8 #0026
|
||||
0x78220012, // 000B JMPF R8 #001F
|
||||
0x8C200507, // 000C GETMET R8 R2 K7
|
||||
0x58280006, // 000D LDCONST R10 K6
|
||||
0x7C200400, // 000E CALL R8 2
|
||||
0xB8261000, // 000F GETNGBL R9 K8
|
||||
0x8C241309, // 0010 GETMET R9 R9 K9
|
||||
0x5C2C1000, // 0011 MOVE R11 R8
|
||||
0x58300006, // 0012 LDCONST R12 K6
|
||||
0x543600FD, // 0013 LDINT R13 254
|
||||
0x58380006, // 0014 LDCONST R14 K6
|
||||
0x543E0167, // 0015 LDINT R15 360
|
||||
0x7C240C00, // 0016 CALL R9 6
|
||||
0x8C28090A, // 0017 GETMET R10 R4 K10
|
||||
0x60300013, // 0018 GETGBL R12 G19
|
||||
0x7C300000, // 0019 CALL R12 0
|
||||
0x98321609, // 001A SETIDX R12 K11 R9
|
||||
0x7C280400, // 001B CALL R10 2
|
||||
0x8C28010C, // 001C GETMET R10 R0 K12
|
||||
0x7C280200, // 001D CALL R10 1
|
||||
0x60280008, // 001E GETGBL R10 G8
|
||||
0x5C2C1000, // 001F MOVE R11 R8
|
||||
0x7C280200, // 0020 CALL R10 1
|
||||
0x002A1C0A, // 0021 ADD R10 K14 R10
|
||||
0x900E1A0A, // 0022 SETMBR R3 K13 R10
|
||||
0x50280200, // 0023 LDBOOL R10 1 0
|
||||
0x80041400, // 0024 RET 1 R10
|
||||
0x70020064, // 0025 JMP #008B
|
||||
0x1C200F0F, // 0026 EQ R8 R7 K15
|
||||
0x78220002, // 0027 JMPF R8 #002B
|
||||
0x50200200, // 0028 LDBOOL R8 1 0
|
||||
0x80041000, // 0029 RET 1 R8
|
||||
0x7002005F, // 002A JMP #008B
|
||||
0x1C200F10, // 002B EQ R8 R7 K16
|
||||
0x78220002, // 002C JMPF R8 #0030
|
||||
0x50200200, // 002D LDBOOL R8 1 0
|
||||
0x80041000, // 002E RET 1 R8
|
||||
0x7002005A, // 002F JMP #008B
|
||||
0x1C200F11, // 0030 EQ R8 R7 K17
|
||||
0x78220019, // 0031 JMPF R8 #004C
|
||||
0x8C200507, // 0032 GETMET R8 R2 K7
|
||||
0x58280006, // 0033 LDCONST R10 K6
|
||||
0x7C200400, // 0034 CALL R8 2
|
||||
0xB8261000, // 0035 GETNGBL R9 K8
|
||||
0x8C241309, // 0036 GETMET R9 R9 K9
|
||||
0x5C2C1000, // 0037 MOVE R11 R8
|
||||
0x58300006, // 0038 LDCONST R12 K6
|
||||
0x543600FD, // 0039 LDINT R13 254
|
||||
0x58380006, // 003A LDCONST R14 K6
|
||||
0x543E00FE, // 003B LDINT R15 255
|
||||
0x7C240C00, // 003C CALL R9 6
|
||||
0x8C28090A, // 003D GETMET R10 R4 K10
|
||||
0x60300013, // 003E GETGBL R12 G19
|
||||
0x7C300000, // 003F CALL R12 0
|
||||
0x98322409, // 0040 SETIDX R12 K18 R9
|
||||
0x7C280400, // 0041 CALL R10 2
|
||||
0x8C28010C, // 0042 GETMET R10 R0 K12
|
||||
0x7C280200, // 0043 CALL R10 1
|
||||
0x60280008, // 0044 GETGBL R10 G8
|
||||
0x5C2C1000, // 0045 MOVE R11 R8
|
||||
0x7C280200, // 0046 CALL R10 1
|
||||
0x002A260A, // 0047 ADD R10 K19 R10
|
||||
0x900E1A0A, // 0048 SETMBR R3 K13 R10
|
||||
0x50280200, // 0049 LDBOOL R10 1 0
|
||||
0x80041400, // 004A RET 1 R10
|
||||
0x7002003E, // 004B JMP #008B
|
||||
0x54220003, // 004C LDINT R8 4
|
||||
0x1C200E08, // 004D EQ R8 R7 R8
|
||||
0x78220002, // 004E JMPF R8 #0052
|
||||
0x50200200, // 004F LDBOOL R8 1 0
|
||||
0x80041000, // 0050 RET 1 R8
|
||||
0x70020038, // 0051 JMP #008B
|
||||
0x54220004, // 0052 LDINT R8 5
|
||||
0x1C200E08, // 0053 EQ R8 R7 R8
|
||||
0x78220002, // 0054 JMPF R8 #0058
|
||||
0x50200200, // 0055 LDBOOL R8 1 0
|
||||
0x80041000, // 0056 RET 1 R8
|
||||
0x70020032, // 0057 JMP #008B
|
||||
0x54220005, // 0058 LDINT R8 6
|
||||
0x1C200E08, // 0059 EQ R8 R7 R8
|
||||
0x7822002A, // 005A JMPF R8 #0086
|
||||
0x8C200507, // 005B GETMET R8 R2 K7
|
||||
0x58280006, // 005C LDCONST R10 K6
|
||||
0x7C200400, // 005D CALL R8 2
|
||||
0xB8261000, // 005E GETNGBL R9 K8
|
||||
0x8C241309, // 005F GETMET R9 R9 K9
|
||||
0x5C2C1000, // 0060 MOVE R11 R8
|
||||
0x58300006, // 0061 LDCONST R12 K6
|
||||
0x543600FD, // 0062 LDINT R13 254
|
||||
0x58380006, // 0063 LDCONST R14 K6
|
||||
0x543E0167, // 0064 LDINT R15 360
|
||||
0x7C240C00, // 0065 CALL R9 6
|
||||
0x8C280507, // 0066 GETMET R10 R2 K7
|
||||
0x5830000F, // 0067 LDCONST R12 K15
|
||||
0x7C280400, // 0068 CALL R10 2
|
||||
0xB82E1000, // 0069 GETNGBL R11 K8
|
||||
0x8C2C1709, // 006A GETMET R11 R11 K9
|
||||
0x5C341400, // 006B MOVE R13 R10
|
||||
0x58380006, // 006C LDCONST R14 K6
|
||||
0x543E00FD, // 006D LDINT R15 254
|
||||
0x58400006, // 006E LDCONST R16 K6
|
||||
0x544600FE, // 006F LDINT R17 255
|
||||
0x7C2C0C00, // 0070 CALL R11 6
|
||||
0x8C30090A, // 0071 GETMET R12 R4 K10
|
||||
0x60380013, // 0072 GETGBL R14 G19
|
||||
0x7C380000, // 0073 CALL R14 0
|
||||
0x983A1609, // 0074 SETIDX R14 K11 R9
|
||||
0x983A240B, // 0075 SETIDX R14 K18 R11
|
||||
0x7C300400, // 0076 CALL R12 2
|
||||
0x8C30010C, // 0077 GETMET R12 R0 K12
|
||||
0x7C300200, // 0078 CALL R12 1
|
||||
0x60300008, // 0079 GETGBL R12 G8
|
||||
0x5C341000, // 007A MOVE R13 R8
|
||||
0x7C300200, // 007B CALL R12 1
|
||||
0x00321C0C, // 007C ADD R12 K14 R12
|
||||
0x00301914, // 007D ADD R12 R12 K20
|
||||
0x60340008, // 007E GETGBL R13 G8
|
||||
0x5C381400, // 007F MOVE R14 R10
|
||||
0x7C340200, // 0080 CALL R13 1
|
||||
0x0030180D, // 0081 ADD R12 R12 R13
|
||||
0x900E1A0C, // 0082 SETMBR R3 K13 R12
|
||||
0x50300200, // 0083 LDBOOL R12 1 0
|
||||
0x80041800, // 0084 RET 1 R12
|
||||
0x70020004, // 0085 JMP #008B
|
||||
0x54220046, // 0086 LDINT R8 71
|
||||
0x1C200E08, // 0087 EQ R8 R7 R8
|
||||
0x78220001, // 0088 JMPF R8 #008B
|
||||
0x50200200, // 0089 LDBOOL R8 1 0
|
||||
0x80041000, // 008A RET 1 R8
|
||||
0x70020008, // 008B JMP #0095
|
||||
0x60200003, // 008C GETGBL R8 G3
|
||||
0x5C240000, // 008D MOVE R9 R0
|
||||
0x7C200200, // 008E CALL R8 1
|
||||
0x8C201115, // 008F GETMET R8 R8 K21
|
||||
0x5C280200, // 0090 MOVE R10 R1
|
||||
0x5C2C0400, // 0091 MOVE R11 R2
|
||||
0x5C300600, // 0092 MOVE R12 R3
|
||||
0x7C200800, // 0093 CALL R8 4
|
||||
0x80041000, // 0094 RET 1 R8
|
||||
0x80000000, // 0095 RET 0
|
||||
0x8C240108, // 000F GETMET R9 R0 K8
|
||||
0x5C2C1000, // 0010 MOVE R11 R8
|
||||
0x4C300000, // 0011 LDNIL R12
|
||||
0x7C240600, // 0012 CALL R9 3
|
||||
0x60240008, // 0013 GETGBL R9 G8
|
||||
0x5C281000, // 0014 MOVE R10 R8
|
||||
0x7C240200, // 0015 CALL R9 1
|
||||
0x00261409, // 0016 ADD R9 K10 R9
|
||||
0x900E1209, // 0017 SETMBR R3 K9 R9
|
||||
0x8C24010B, // 0018 GETMET R9 R0 K11
|
||||
0x582C000C, // 0019 LDCONST R11 K12
|
||||
0x5C301000, // 001A MOVE R12 R8
|
||||
0x7C240600, // 001B CALL R9 3
|
||||
0x50240200, // 001C LDBOOL R9 1 0
|
||||
0x80041200, // 001D RET 1 R9
|
||||
0x7002004F, // 001E JMP #006F
|
||||
0x1C200F0D, // 001F EQ R8 R7 K13
|
||||
0x78220002, // 0020 JMPF R8 #0024
|
||||
0x50200200, // 0021 LDBOOL R8 1 0
|
||||
0x80041000, // 0022 RET 1 R8
|
||||
0x7002004A, // 0023 JMP #006F
|
||||
0x1C200F0E, // 0024 EQ R8 R7 K14
|
||||
0x78220002, // 0025 JMPF R8 #0029
|
||||
0x50200200, // 0026 LDBOOL R8 1 0
|
||||
0x80041000, // 0027 RET 1 R8
|
||||
0x70020045, // 0028 JMP #006F
|
||||
0x1C200F0F, // 0029 EQ R8 R7 K15
|
||||
0x78220012, // 002A JMPF R8 #003E
|
||||
0x8C200507, // 002B GETMET R8 R2 K7
|
||||
0x58280006, // 002C LDCONST R10 K6
|
||||
0x7C200400, // 002D CALL R8 2
|
||||
0x8C240108, // 002E GETMET R9 R0 K8
|
||||
0x4C2C0000, // 002F LDNIL R11
|
||||
0x5C301000, // 0030 MOVE R12 R8
|
||||
0x7C240600, // 0031 CALL R9 3
|
||||
0x60240008, // 0032 GETGBL R9 G8
|
||||
0x5C281000, // 0033 MOVE R10 R8
|
||||
0x7C240200, // 0034 CALL R9 1
|
||||
0x00262009, // 0035 ADD R9 K16 R9
|
||||
0x900E1209, // 0036 SETMBR R3 K9 R9
|
||||
0x8C24010B, // 0037 GETMET R9 R0 K11
|
||||
0x582C0011, // 0038 LDCONST R11 K17
|
||||
0x5C301000, // 0039 MOVE R12 R8
|
||||
0x7C240600, // 003A CALL R9 3
|
||||
0x50240200, // 003B LDBOOL R9 1 0
|
||||
0x80041200, // 003C RET 1 R9
|
||||
0x70020030, // 003D JMP #006F
|
||||
0x54220003, // 003E LDINT R8 4
|
||||
0x1C200E08, // 003F EQ R8 R7 R8
|
||||
0x78220002, // 0040 JMPF R8 #0044
|
||||
0x50200200, // 0041 LDBOOL R8 1 0
|
||||
0x80041000, // 0042 RET 1 R8
|
||||
0x7002002A, // 0043 JMP #006F
|
||||
0x54220004, // 0044 LDINT R8 5
|
||||
0x1C200E08, // 0045 EQ R8 R7 R8
|
||||
0x78220002, // 0046 JMPF R8 #004A
|
||||
0x50200200, // 0047 LDBOOL R8 1 0
|
||||
0x80041000, // 0048 RET 1 R8
|
||||
0x70020024, // 0049 JMP #006F
|
||||
0x54220005, // 004A LDINT R8 6
|
||||
0x1C200E08, // 004B EQ R8 R7 R8
|
||||
0x7822001C, // 004C JMPF R8 #006A
|
||||
0x8C200507, // 004D GETMET R8 R2 K7
|
||||
0x58280006, // 004E LDCONST R10 K6
|
||||
0x7C200400, // 004F CALL R8 2
|
||||
0x8C240507, // 0050 GETMET R9 R2 K7
|
||||
0x582C000D, // 0051 LDCONST R11 K13
|
||||
0x7C240400, // 0052 CALL R9 2
|
||||
0x8C280108, // 0053 GETMET R10 R0 K8
|
||||
0x5C301000, // 0054 MOVE R12 R8
|
||||
0x5C341200, // 0055 MOVE R13 R9
|
||||
0x7C280600, // 0056 CALL R10 3
|
||||
0x60280008, // 0057 GETGBL R10 G8
|
||||
0x5C2C1000, // 0058 MOVE R11 R8
|
||||
0x7C280200, // 0059 CALL R10 1
|
||||
0x002A140A, // 005A ADD R10 K10 R10
|
||||
0x00281512, // 005B ADD R10 R10 K18
|
||||
0x602C0008, // 005C GETGBL R11 G8
|
||||
0x5C301200, // 005D MOVE R12 R9
|
||||
0x7C2C0200, // 005E CALL R11 1
|
||||
0x0028140B, // 005F ADD R10 R10 R11
|
||||
0x900E120A, // 0060 SETMBR R3 K9 R10
|
||||
0x8C28010B, // 0061 GETMET R10 R0 K11
|
||||
0x5830000C, // 0062 LDCONST R12 K12
|
||||
0x5C341000, // 0063 MOVE R13 R8
|
||||
0x58380011, // 0064 LDCONST R14 K17
|
||||
0x5C3C1200, // 0065 MOVE R15 R9
|
||||
0x7C280A00, // 0066 CALL R10 5
|
||||
0x50280200, // 0067 LDBOOL R10 1 0
|
||||
0x80041400, // 0068 RET 1 R10
|
||||
0x70020004, // 0069 JMP #006F
|
||||
0x54220046, // 006A LDINT R8 71
|
||||
0x1C200E08, // 006B EQ R8 R7 R8
|
||||
0x78220001, // 006C JMPF R8 #006F
|
||||
0x50200200, // 006D LDBOOL R8 1 0
|
||||
0x80041000, // 006E RET 1 R8
|
||||
0x70020008, // 006F JMP #0079
|
||||
0x60200003, // 0070 GETGBL R8 G3
|
||||
0x5C240000, // 0071 MOVE R9 R0
|
||||
0x7C200200, // 0072 CALL R8 1
|
||||
0x8C201113, // 0073 GETMET R8 R8 K19
|
||||
0x5C280200, // 0074 MOVE R10 R1
|
||||
0x5C2C0400, // 0075 MOVE R11 R2
|
||||
0x5C300600, // 0076 MOVE R12 R3
|
||||
0x7C200800, // 0077 CALL R8 4
|
||||
0x80041000, // 0078 RET 1 R8
|
||||
0x80000000, // 0079 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
@ -493,16 +607,19 @@ extern const bclass be_class_Matter_Plugin_Light1;
|
||||
be_local_class(Matter_Plugin_Light3,
|
||||
2,
|
||||
&be_class_Matter_Plugin_Light1,
|
||||
be_nested_map(10,
|
||||
be_nested_map(11,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
|
||||
{ be_const_key_weak(TYPE, -1), be_nested_str_weak(light3) },
|
||||
{ be_const_key_weak(shadow_sat, -1), be_const_var(1) },
|
||||
{ be_const_key_weak(set_hue_sat, 0), be_const_closure(Matter_Plugin_Light3_set_hue_sat_closure) },
|
||||
{ be_const_key_weak(read_attribute, -1), be_const_closure(Matter_Plugin_Light3_read_attribute_closure) },
|
||||
{ be_const_key_weak(TYPES, 5), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
|
||||
be_const_map( * be_nested_map(1,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_int(269, -1), be_const_int(2) },
|
||||
})) ) } )) },
|
||||
{ be_const_key_weak(TYPE, -1), be_nested_str_weak(light3) },
|
||||
{ be_const_key_weak(shadow_hue, 8), be_const_var(0) },
|
||||
{ be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
|
||||
{ be_const_key_weak(shadow_hue, 2), be_const_var(0) },
|
||||
{ be_const_key_weak(CLUSTERS, 7), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
|
||||
be_const_map( * be_nested_map(1,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_int(768, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
|
||||
@ -519,12 +636,10 @@ be_local_class(Matter_Plugin_Light3,
|
||||
be_const_int(65533),
|
||||
})) ) } )) },
|
||||
})) ) } )) },
|
||||
{ be_const_key_weak(NAME, 3), be_nested_str_weak(Light_X203_X20RGB) },
|
||||
{ be_const_key_weak(update_shadow, 8), be_const_closure(Matter_Plugin_Light3_update_shadow_closure) },
|
||||
{ be_const_key_weak(NAME, -1), be_nested_str_weak(Light_X203_X20RGB) },
|
||||
{ be_const_key_weak(init, -1), be_const_closure(Matter_Plugin_Light3_init_closure) },
|
||||
{ be_const_key_weak(shadow_sat, -1), be_const_var(1) },
|
||||
{ be_const_key_weak(invoke_request, -1), be_const_closure(Matter_Plugin_Light3_invoke_request_closure) },
|
||||
{ be_const_key_weak(read_attribute, -1), be_const_closure(Matter_Plugin_Light3_read_attribute_closure) },
|
||||
{ be_const_key_weak(update_shadow, 1), be_const_closure(Matter_Plugin_Light3_update_shadow_closure) },
|
||||
})),
|
||||
be_str_weak(Matter_Plugin_Light3)
|
||||
);
|
||||
|
@ -270,7 +270,7 @@ be_local_closure(Matter_Plugin_OnOff_read_attribute, /* name */
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_Plugin_OnOff_invoke_request, /* name */
|
||||
be_nested_proto(
|
||||
10, /* nstack */
|
||||
11, /* nstack */
|
||||
4, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
@ -278,7 +278,7 @@ be_local_closure(Matter_Plugin_OnOff_invoke_request, /* name */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[11]) { /* constants */
|
||||
( &(const bvalue[13]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(matter),
|
||||
/* K1 */ be_nested_str_weak(TLV),
|
||||
/* K2 */ be_nested_str_weak(cluster),
|
||||
@ -287,55 +287,73 @@ be_local_closure(Matter_Plugin_OnOff_invoke_request, /* name */
|
||||
/* K5 */ be_const_int(0),
|
||||
/* K6 */ be_nested_str_weak(set_onoff),
|
||||
/* K7 */ be_nested_str_weak(update_shadow),
|
||||
/* K8 */ be_const_int(1),
|
||||
/* K9 */ be_const_int(2),
|
||||
/* K10 */ be_nested_str_weak(shadow_onoff),
|
||||
/* K8 */ be_nested_str_weak(publish_command),
|
||||
/* K9 */ be_nested_str_weak(Power),
|
||||
/* K10 */ be_const_int(1),
|
||||
/* K11 */ be_const_int(2),
|
||||
/* K12 */ be_nested_str_weak(shadow_onoff),
|
||||
}),
|
||||
be_str_weak(invoke_request),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[42]) { /* code */
|
||||
( &(const binstruction[58]) { /* code */
|
||||
0xB8120000, // 0000 GETNGBL R4 K0
|
||||
0x88100901, // 0001 GETMBR R4 R4 K1
|
||||
0x88140702, // 0002 GETMBR R5 R3 K2
|
||||
0x88180703, // 0003 GETMBR R6 R3 K3
|
||||
0x541E0005, // 0004 LDINT R7 6
|
||||
0x1C1C0A07, // 0005 EQ R7 R5 R7
|
||||
0x781E0021, // 0006 JMPF R7 #0029
|
||||
0x781E0031, // 0006 JMPF R7 #0039
|
||||
0x8C1C0104, // 0007 GETMET R7 R0 K4
|
||||
0x7C1C0200, // 0008 CALL R7 1
|
||||
0x1C1C0D05, // 0009 EQ R7 R6 K5
|
||||
0x781E0007, // 000A JMPF R7 #0013
|
||||
0x781E000B, // 000A JMPF R7 #0017
|
||||
0x8C1C0106, // 000B GETMET R7 R0 K6
|
||||
0x50240000, // 000C LDBOOL R9 0 0
|
||||
0x7C1C0400, // 000D CALL R7 2
|
||||
0x8C1C0107, // 000E GETMET R7 R0 K7
|
||||
0x7C1C0200, // 000F CALL R7 1
|
||||
0x501C0200, // 0010 LDBOOL R7 1 0
|
||||
0x80040E00, // 0011 RET 1 R7
|
||||
0x70020015, // 0012 JMP #0029
|
||||
0x1C1C0D08, // 0013 EQ R7 R6 K8
|
||||
0x781E0007, // 0014 JMPF R7 #001D
|
||||
0x8C1C0106, // 0015 GETMET R7 R0 K6
|
||||
0x50240200, // 0016 LDBOOL R9 1 0
|
||||
0x7C1C0400, // 0017 CALL R7 2
|
||||
0x8C1C0107, // 0018 GETMET R7 R0 K7
|
||||
0x7C1C0200, // 0019 CALL R7 1
|
||||
0x501C0200, // 001A LDBOOL R7 1 0
|
||||
0x80040E00, // 001B RET 1 R7
|
||||
0x7002000B, // 001C JMP #0029
|
||||
0x1C1C0D09, // 001D EQ R7 R6 K9
|
||||
0x781E0009, // 001E JMPF R7 #0029
|
||||
0x8C1C0106, // 001F GETMET R7 R0 K6
|
||||
0x8824010A, // 0020 GETMBR R9 R0 K10
|
||||
0x78260000, // 0021 JMPF R9 #0023
|
||||
0x50240001, // 0022 LDBOOL R9 0 1
|
||||
0x50240200, // 0023 LDBOOL R9 1 0
|
||||
0x7C1C0400, // 0024 CALL R7 2
|
||||
0x8C1C0107, // 0025 GETMET R7 R0 K7
|
||||
0x7C1C0200, // 0026 CALL R7 1
|
||||
0x501C0200, // 0027 LDBOOL R7 1 0
|
||||
0x80040E00, // 0028 RET 1 R7
|
||||
0x80000000, // 0029 RET 0
|
||||
0x8C1C0108, // 0010 GETMET R7 R0 K8
|
||||
0x58240009, // 0011 LDCONST R9 K9
|
||||
0x58280005, // 0012 LDCONST R10 K5
|
||||
0x7C1C0600, // 0013 CALL R7 3
|
||||
0x501C0200, // 0014 LDBOOL R7 1 0
|
||||
0x80040E00, // 0015 RET 1 R7
|
||||
0x70020021, // 0016 JMP #0039
|
||||
0x1C1C0D0A, // 0017 EQ R7 R6 K10
|
||||
0x781E000B, // 0018 JMPF R7 #0025
|
||||
0x8C1C0106, // 0019 GETMET R7 R0 K6
|
||||
0x50240200, // 001A LDBOOL R9 1 0
|
||||
0x7C1C0400, // 001B CALL R7 2
|
||||
0x8C1C0107, // 001C GETMET R7 R0 K7
|
||||
0x7C1C0200, // 001D CALL R7 1
|
||||
0x8C1C0108, // 001E GETMET R7 R0 K8
|
||||
0x58240009, // 001F LDCONST R9 K9
|
||||
0x5828000A, // 0020 LDCONST R10 K10
|
||||
0x7C1C0600, // 0021 CALL R7 3
|
||||
0x501C0200, // 0022 LDBOOL R7 1 0
|
||||
0x80040E00, // 0023 RET 1 R7
|
||||
0x70020013, // 0024 JMP #0039
|
||||
0x1C1C0D0B, // 0025 EQ R7 R6 K11
|
||||
0x781E0011, // 0026 JMPF R7 #0039
|
||||
0x8C1C0106, // 0027 GETMET R7 R0 K6
|
||||
0x8824010C, // 0028 GETMBR R9 R0 K12
|
||||
0x78260000, // 0029 JMPF R9 #002B
|
||||
0x50240001, // 002A LDBOOL R9 0 1
|
||||
0x50240200, // 002B LDBOOL R9 1 0
|
||||
0x7C1C0400, // 002C CALL R7 2
|
||||
0x8C1C0107, // 002D GETMET R7 R0 K7
|
||||
0x7C1C0200, // 002E CALL R7 1
|
||||
0x8C1C0108, // 002F GETMET R7 R0 K8
|
||||
0x58240009, // 0030 LDCONST R9 K9
|
||||
0x8828010C, // 0031 GETMBR R10 R0 K12
|
||||
0x782A0001, // 0032 JMPF R10 #0035
|
||||
0x5828000A, // 0033 LDCONST R10 K10
|
||||
0x70020000, // 0034 JMP #0036
|
||||
0x58280005, // 0035 LDCONST R10 K5
|
||||
0x7C1C0600, // 0036 CALL R7 3
|
||||
0x501C0200, // 0037 LDBOOL R7 1 0
|
||||
0x80040E00, // 0038 RET 1 R7
|
||||
0x80000000, // 0039 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
|
@ -21,7 +21,7 @@ static cron_expr* ccronexpr_init(struct bvm* vm, char* expr) {
|
||||
cron_parse_expr(expr, cron, &error);
|
||||
|
||||
if (error) {
|
||||
be_raise(vm, "value_error", error); // TODO any way to pass VM?
|
||||
be_raise(vm, "value_error", error);
|
||||
}
|
||||
return cron;
|
||||
}
|
||||
|
@ -76,4 +76,98 @@ extern "C" uint32_t matter_convert_seconds_to_dhm(uint32_t seconds, char *unit,
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// internal function to publish a command received from the Matter controller
|
||||
//
|
||||
// `matter.publish_command("MtrReceived", 2, "buld", '"Power":1')`
|
||||
// matter_publish_command(const char * json_prefix, uint32_t ep, const char * friendly_name, const char * payload) {
|
||||
extern "C" int matter_publish_command(bvm *vm) {
|
||||
int32_t argc = be_top(vm); // Get the number of arguments
|
||||
if (argc >= 4 && be_isstring(vm, 1) && be_isint(vm, 2) && be_isstring(vm, 3) && be_isstring(vm, 4)) {
|
||||
const char * json_prefix = be_tostring(vm, 1);
|
||||
uint32_t ep = be_toint(vm, 2);
|
||||
const char * friendly_name = be_tostring(vm, 3);
|
||||
const char * payload = be_tostring(vm, 4);
|
||||
be_pop(vm, be_top(vm)); // avoid `Error be_top is non zero`
|
||||
|
||||
bool use_fname = (Settings->flag4.zigbee_use_names) && (friendly_name && strlen(friendly_name)); // should we replace shortaddr with friendlyname?
|
||||
|
||||
ResponseClear(); // clear string
|
||||
|
||||
// Do we prefix with `ZbReceived`?
|
||||
if (!Settings->flag4.remove_zbreceived && !Settings->flag5.zb_received_as_subtopic) {
|
||||
if (Settings->flag5.zigbee_include_time && Rtc.utc_time >= START_VALID_TIME) {
|
||||
// Add time if needed (and if time is valide)
|
||||
ResponseAppendTimeFormat(Settings->flag2.time_format);
|
||||
ResponseAppend_P(PSTR(",\"%s\":"), json_prefix);
|
||||
} else {
|
||||
ResponseAppend_P(PSTR("{\"%s\":"), json_prefix);
|
||||
}
|
||||
}
|
||||
|
||||
// What key do we use, shortaddr or name?
|
||||
if (!Settings->flag5.zb_omit_json_addr) {
|
||||
if (use_fname) {
|
||||
ResponseAppend_P(PSTR("{\"%s\":"), friendly_name);
|
||||
} else {
|
||||
ResponseAppend_P(PSTR("{\"ep%i\":"), ep);
|
||||
}
|
||||
}
|
||||
ResponseAppend_P(PSTR("{"));
|
||||
|
||||
// Add "Name":"xxx" if name is present
|
||||
if (friendly_name && strlen(friendly_name)) {
|
||||
ResponseAppend_P(PSTR("\"" "Name" "\":\"%s\","), EscapeJSONString(friendly_name).c_str());
|
||||
}
|
||||
// Add all other attributes
|
||||
ResponseAppend_P(PSTR("%s}"), payload);
|
||||
|
||||
if (!Settings->flag5.zb_omit_json_addr) {
|
||||
ResponseAppend_P(PSTR("}"));
|
||||
}
|
||||
|
||||
if (!Settings->flag4.remove_zbreceived && !Settings->flag5.zb_received_as_subtopic) {
|
||||
ResponseAppend_P(PSTR("}"));
|
||||
}
|
||||
|
||||
#ifdef USE_INFLUXDB
|
||||
InfluxDbProcess(1); // Use a copy of ResponseData
|
||||
#endif
|
||||
|
||||
if (Settings->flag4.zigbee_distinct_topics) {
|
||||
char subtopic[TOPSZ];
|
||||
if (Settings->flag4.zb_topic_fname && friendly_name && strlen(friendly_name)) {
|
||||
// Clean special characters
|
||||
char stemp[TOPSZ];
|
||||
strlcpy(stemp, friendly_name, sizeof(stemp));
|
||||
MakeValidMqtt(0, stemp);
|
||||
if (Settings->flag5.zigbee_hide_bridge_topic) {
|
||||
snprintf_P(subtopic, sizeof(subtopic), PSTR("%s"), stemp);
|
||||
} else {
|
||||
snprintf_P(subtopic, sizeof(subtopic), PSTR("%s/%s"), TasmotaGlobal.mqtt_topic, stemp);
|
||||
}
|
||||
} else {
|
||||
if (Settings->flag5.zigbee_hide_bridge_topic) {
|
||||
snprintf_P(subtopic, sizeof(subtopic), PSTR("%i"), ep);
|
||||
} else {
|
||||
snprintf_P(subtopic, sizeof(subtopic), PSTR("%s/%i"), TasmotaGlobal.mqtt_topic, ep);
|
||||
}
|
||||
}
|
||||
char stopic[TOPSZ];
|
||||
if (Settings->flag5.zb_received_as_subtopic) {
|
||||
GetTopic_P(stopic, TELE, subtopic, json_prefix);
|
||||
} else {
|
||||
GetTopic_P(stopic, TELE, subtopic, PSTR(D_RSLT_SENSOR));
|
||||
}
|
||||
MqttPublish(stopic, Settings->flag.mqtt_sensor_retain);
|
||||
} else {
|
||||
MqttPublishPrefixTopic_P(TELE, PSTR(D_RSLT_SENSOR), Settings->flag.mqtt_sensor_retain);
|
||||
}
|
||||
XdrvRulesProcess(0); // apply rules
|
||||
be_return_nil(vm);
|
||||
}
|
||||
be_raise(vm, kTypeError, nullptr);
|
||||
}
|
||||
|
||||
#endif // USE_BERRY
|
||||
|
Loading…
x
Reference in New Issue
Block a user