mirror of https://github.com/arendst/Tasmota.git
Matter support for split lights (`SetOption68 1` and `SetOption37 128`) (#21834)
This commit is contained in:
parent
8a7642f122
commit
b62b2d0d93
|
@ -7,6 +7,7 @@ All notable changes to this project will be documented in this file.
|
|||
### Added
|
||||
- Support for Sonoff iFan04-H using template (#16402)
|
||||
- Matter improve internal `inspect`for superclasses
|
||||
- Matter support for split lights (`SetOption68 1` and `SetOption37 128`)
|
||||
|
||||
### Breaking Changed
|
||||
|
||||
|
|
|
@ -47,13 +47,15 @@ class Matter_Plugin_Light0 : Matter_Plugin_Device
|
|||
# var tick # tick value when it was last updated
|
||||
# var node_label # name of the endpoint, used only in bridge mode, "" if none
|
||||
var tasmota_relay_index # Relay number in Tasmota (1 based), may be nil for Lights 1/2/3 internal
|
||||
var light_index # index number when using `light.get()` and `light.set()`
|
||||
var shadow_onoff # (bool) status of the light power on/off
|
||||
|
||||
#############################################################
|
||||
# Constructor
|
||||
def init(device, endpoint, config)
|
||||
super(self).init(device, endpoint, config)
|
||||
self.shadow_onoff = false
|
||||
self.light_index = 0 # default is 0 for light object
|
||||
super(self).init(device, endpoint, config)
|
||||
end
|
||||
|
||||
#############################################################
|
||||
|
@ -105,7 +107,7 @@ class Matter_Plugin_Light0 : Matter_Plugin_Device
|
|||
self.update_shadow()
|
||||
else
|
||||
import light
|
||||
light.set({'power':pow})
|
||||
light.set({'power':pow}, self.light_index)
|
||||
self.update_shadow()
|
||||
end
|
||||
end
|
||||
|
|
|
@ -25,7 +25,9 @@ import matter
|
|||
|
||||
class Matter_Plugin_Light1 : Matter_Plugin_Light0
|
||||
static var TYPE = "light1" # name of the plug-in in json
|
||||
static var DISPLAY_NAME = "Light 1 Dimmer" # display name of the plug-in
|
||||
static var DISPLAY_NAME = "Light 1 Dimmer" # display name of the plug-in
|
||||
static var ARG = "light" # additional argument name (or empty if none)
|
||||
static var ARG_HINT = "(opt) Light number"
|
||||
# static var UPDATE_TIME = 250 # update every 250ms
|
||||
static var CLUSTERS = matter.consolidate_clusters(_class, {
|
||||
# 0x001D: inherited # Descriptor Cluster 9.5 p.453
|
||||
|
@ -46,13 +48,14 @@ class Matter_Plugin_Light1 : Matter_Plugin_Light0
|
|||
# var node_label # name of the endpoint, used only in bridge mode, "" if none
|
||||
# var tasmota_relay_index # Relay number in Tasmota (1 based), nil for internal light
|
||||
# var shadow_onoff # (bool) status of the light power on/off
|
||||
# var light_index # index number when using `light.get()` and `light.set()`
|
||||
var shadow_bri # (int 0..254) brightness before Gamma correction - as per Matter 255 is not allowed
|
||||
|
||||
#############################################################
|
||||
# Constructor
|
||||
def init(device, endpoint, arguments)
|
||||
super(self).init(device, endpoint, arguments)
|
||||
self.shadow_bri = 0
|
||||
super(self).init(device, endpoint, arguments)
|
||||
end
|
||||
|
||||
#############################################################
|
||||
|
@ -64,6 +67,20 @@ class Matter_Plugin_Light1 : Matter_Plugin_Light0
|
|||
if self.BRIDGE
|
||||
self.tasmota_relay_index = int(config.find(self.ARG #-'relay'-#, nil))
|
||||
if (self.tasmota_relay_index != nil && self.tasmota_relay_index <= 0) self.tasmota_relay_index = 1 end
|
||||
else
|
||||
if (self.tasmota_relay_index == nil) && (self.TYPE == "light1") # only if `light1` and not for subclasses
|
||||
var light_index_arg = config.find(self.ARG #-'light'-#)
|
||||
if (light_index_arg == nil)
|
||||
if (tasmota.get_option(68) == 0) # if default mode, and `SO68 0`, check if we have split RGB/W
|
||||
import light
|
||||
if (light.get(1) != nil)
|
||||
self.light_index = 1 # default value is `0` from superclass
|
||||
end
|
||||
end
|
||||
else
|
||||
self.light_index = int(light_index_arg) - 1 # internal is 0-based
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -73,7 +90,7 @@ class Matter_Plugin_Light1 : Matter_Plugin_Light0
|
|||
def update_shadow()
|
||||
if !self.VIRTUAL && !self.BRIDGE
|
||||
import light
|
||||
var light_status = light.get()
|
||||
var light_status = light.get(self.light_index)
|
||||
if light_status != nil
|
||||
var pow = light_status.find('power', nil)
|
||||
if pow != self.shadow_onoff
|
||||
|
@ -121,9 +138,9 @@ class Matter_Plugin_Light1 : Matter_Plugin_Light0
|
|||
import light
|
||||
var bri_255 = tasmota.scale_uint(bri_254, 0, 254, 0, 255)
|
||||
if pow == nil
|
||||
light.set({'bri': bri_255})
|
||||
light.set({'bri': bri_255}, self.light_index)
|
||||
else
|
||||
light.set({'bri': bri_255, 'power': pow})
|
||||
light.set({'bri': bri_255, 'power': pow}, self.light_index)
|
||||
end
|
||||
self.update_shadow()
|
||||
end
|
||||
|
|
|
@ -25,7 +25,9 @@ import matter
|
|||
|
||||
class Matter_Plugin_Light2 : Matter_Plugin_Light1
|
||||
static var TYPE = "light2" # name of the plug-in in json
|
||||
static var DISPLAY_NAME = "Light 2 CT" # display name of the plug-in
|
||||
static var DISPLAY_NAME = "Light 2 CT" # display name of the plug-in
|
||||
static var ARG = "" # no arg for native light
|
||||
static var ARG_HINT = "_Not used_" # Hint for entering the Argument (inside 'placeholder')
|
||||
static var CLUSTERS = matter.consolidate_clusters(_class, {
|
||||
# 0x001D: inherited # Descriptor Cluster 9.5 p.453
|
||||
# 0x0003: inherited # Identify 1.2 p.16
|
||||
|
@ -46,6 +48,7 @@ class Matter_Plugin_Light2 : Matter_Plugin_Light1
|
|||
# var node_label # name of the endpoint, used only in bridge mode, "" if none
|
||||
# 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 light_index # index number when using `light.get()` and `light.set()`
|
||||
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
|
||||
|
||||
|
@ -55,6 +58,10 @@ class Matter_Plugin_Light2 : Matter_Plugin_Light1
|
|||
super(self).init(device, endpoint, arguments)
|
||||
if !self.BRIDGE # in BRIDGE mode keep default to nil
|
||||
self.shadow_ct = 325
|
||||
import light
|
||||
if (light.get(1) != nil)
|
||||
self.light_index = 1 # default value is `0` from superclass
|
||||
end
|
||||
end
|
||||
self.update_ct_minmax() # read SetOption to adjust ct min/max
|
||||
end
|
||||
|
@ -67,7 +74,8 @@ class Matter_Plugin_Light2 : Matter_Plugin_Light1
|
|||
import light
|
||||
self.update_ct_minmax()
|
||||
super(self).update_shadow()
|
||||
var light_status = light.get()
|
||||
# check if the light RGB/CT with split mode, i.e. CT is in `light.get(1)`
|
||||
var light_status = light.get(self.light_index)
|
||||
if light_status != nil
|
||||
var ct = light_status.find('ct', nil)
|
||||
if ct == nil ct = self.shadow_ct end
|
||||
|
@ -110,7 +118,7 @@ class Matter_Plugin_Light2 : Matter_Plugin_Light1
|
|||
end
|
||||
else
|
||||
import light
|
||||
light.set({'ct': ct})
|
||||
light.set({'ct': ct}, self.light_index)
|
||||
self.update_shadow()
|
||||
end
|
||||
end
|
||||
|
|
|
@ -25,7 +25,9 @@ import matter
|
|||
|
||||
class Matter_Plugin_Light3 : Matter_Plugin_Light1
|
||||
static var TYPE = "light3" # name of the plug-in in json
|
||||
static var DISPLAY_NAME = "Light 3 RGB" # display name of the plug-in
|
||||
static var DISPLAY_NAME = "Light 3 RGB" # display name of the plug-in
|
||||
static var ARG = "" # no arg for native light
|
||||
static var ARG_HINT = "_Not used_" # Hint for entering the Argument (inside 'placeholder')
|
||||
static var CLUSTERS = matter.consolidate_clusters(_class, {
|
||||
# 0x001D: inherited # Descriptor Cluster 9.5 p.453
|
||||
# 0x0003: inherited # Identify 1.2 p.16
|
||||
|
@ -65,7 +67,7 @@ class Matter_Plugin_Light3 : Matter_Plugin_Light1
|
|||
if !self.VIRTUAL && !self.BRIDGE
|
||||
import light
|
||||
super(self).update_shadow()
|
||||
var light_status = light.get()
|
||||
var light_status = light.get(self.light_index)
|
||||
if light_status != nil
|
||||
var hue = light_status.find('hue', nil)
|
||||
var sat = light_status.find('sat', nil)
|
||||
|
@ -122,11 +124,11 @@ class Matter_Plugin_Light3 : Matter_Plugin_Light1
|
|||
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})
|
||||
light.set({'hue': hue_360, 'sat': sat_255}, self.light_index)
|
||||
elif (hue_360 != nil)
|
||||
light.set({'hue': hue_360})
|
||||
light.set({'hue': hue_360}, self.light_index)
|
||||
else
|
||||
light.set({'sat': sat_255})
|
||||
light.set({'sat': sat_255}, self.light_index)
|
||||
end
|
||||
self.update_shadow()
|
||||
end
|
||||
|
@ -176,7 +178,6 @@ class Matter_Plugin_Light3 : Matter_Plugin_Light1
|
|||
# returns a TLV object if successful, contains the response
|
||||
# or an `int` to indicate a status
|
||||
def invoke_request(session, val, ctx)
|
||||
import light
|
||||
var TLV = matter.TLV
|
||||
var cluster = ctx.cluster
|
||||
var command = ctx.command
|
||||
|
|
|
@ -28,6 +28,7 @@ class Matter_Plugin_Bridge_Light1 : Matter_Plugin_Light1
|
|||
static var TYPE = "http_light1" # name of the plug-in in json
|
||||
# static var DISPLAY_NAME = "Light 1 Dimmer" # display name of the plug-in
|
||||
static var ARG = "relay" # additional argument name (or empty if none)
|
||||
static var ARG_HINT = "Relay<x> number"
|
||||
static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
|
||||
static var UPDATE_TIME = 3000 # update every 3s
|
||||
end
|
||||
|
|
|
@ -28,6 +28,7 @@ class Matter_Plugin_Bridge_Light2 : Matter_Plugin_Light2
|
|||
static var TYPE = "http_light2" # name of the plug-in in json
|
||||
# static var DISPLAY_NAME = "Light 2 CT" # display name of the plug-in
|
||||
static var ARG = "relay" # additional argument name (or empty if none)
|
||||
static var ARG_HINT = "Relay<x> number"
|
||||
static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
|
||||
static var UPDATE_TIME = 3000 # update every 3s
|
||||
end
|
||||
|
|
|
@ -28,6 +28,7 @@ class Matter_Plugin_Bridge_Light3 : Matter_Plugin_Light3
|
|||
static var TYPE = "http_light3" # name of the plug-in in json
|
||||
# static var DISPLAY_NAME = "Light 3 RGB" # display name of the plug-in
|
||||
static var ARG = "relay" # additional argument name (or empty if none)
|
||||
static var ARG_HINT = "Relay<x> number"
|
||||
static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
|
||||
static var UPDATE_TIME = 3000 # update every 3s
|
||||
end
|
||||
|
|
|
@ -1090,22 +1090,52 @@ class Matter_Device
|
|||
|
||||
# check if we have a light
|
||||
var endpoint = matter.START_ENDPOINT
|
||||
var light_present = false
|
||||
var light_present = 0
|
||||
|
||||
import light
|
||||
var light_status = light.get()
|
||||
var light_status = light.get(0)
|
||||
if light_status != nil
|
||||
var channels_count = size(light_status.find('channels', ""))
|
||||
light_present = 1
|
||||
if channels_count > 0
|
||||
if channels_count == 1
|
||||
m[str(endpoint)] = {'type':'light1'}
|
||||
endpoint += 1
|
||||
# check if we have secondary Dimmer lights (SetOption68 1)
|
||||
var idx = 1
|
||||
var light_status_i
|
||||
while (light_status_i := light.get(idx)) != nil
|
||||
m[str(endpoint)] = {'type':'light1','light':idx + 1} # arg is 1-based so add 1
|
||||
endpoint += 1
|
||||
light_present += 1
|
||||
idx += 1
|
||||
end
|
||||
elif channels_count == 2
|
||||
m[str(endpoint)] = {'type':'light2'}
|
||||
else
|
||||
endpoint += 1
|
||||
elif channels_count == 3
|
||||
m[str(endpoint)] = {'type':'light3'}
|
||||
endpoint += 1
|
||||
# check if we have a split second light (SetOption37 128) with 4/5 channels
|
||||
var light_status1 = light.get(1)
|
||||
if (light_status1 != nil)
|
||||
var channels_count1 = size(light_status1.find('channels', ""))
|
||||
|
||||
if (channels_count1 == 1)
|
||||
m[str(endpoint)] = {'type':'light1'}
|
||||
endpoint += 1
|
||||
light_present += 1
|
||||
elif (channels_count1 == 2)
|
||||
m[str(endpoint)] = {'type':'light2'}
|
||||
endpoint += 1
|
||||
light_present += 1
|
||||
end
|
||||
end
|
||||
elif channels_count == 4
|
||||
# not supported yet
|
||||
else # only option left is 5 channels
|
||||
# not supported yet
|
||||
end
|
||||
light_present = true
|
||||
endpoint += 1
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -1144,7 +1174,7 @@ class Matter_Device
|
|||
# how many relays are present
|
||||
var relay_count = size(tasmota.get_power())
|
||||
var relay_index = 0 # start at index 0
|
||||
if light_present relay_count -= 1 end # last power is taken for lights
|
||||
relay_count -= light_present # last power(s) taken for lights
|
||||
|
||||
while relay_index < relay_count
|
||||
if relays_reserved.find(relay_index) == nil # if relay is actual relay
|
||||
|
|
|
@ -6,6 +6,283 @@
|
|||
|
||||
extern const bclass be_class_Matter_Plugin_Light0;
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: set_onoff
|
||||
********************************************************************/
|
||||
extern const bclass be_class_Matter_Plugin_Light0;
|
||||
be_local_closure(class_Matter_Plugin_Light0_set_onoff, /* name */
|
||||
be_nested_proto(
|
||||
7, /* nstack */
|
||||
2, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
&be_class_Matter_Plugin_Light0,
|
||||
1, /* has constants */
|
||||
( &(const bvalue[19]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(BRIDGE),
|
||||
/* K1 */ be_nested_str_weak(call_remote_sync),
|
||||
/* K2 */ be_nested_str_weak(Power),
|
||||
/* K3 */ be_nested_str_weak(tasmota_relay_index),
|
||||
/* K4 */ be_nested_str_weak(1),
|
||||
/* K5 */ be_nested_str_weak(0),
|
||||
/* K6 */ be_nested_str_weak(parse_status),
|
||||
/* K7 */ be_nested_str_weak(VIRTUAL),
|
||||
/* K8 */ be_nested_str_weak(shadow_onoff),
|
||||
/* K9 */ be_nested_str_weak(attribute_updated),
|
||||
/* K10 */ be_const_int(0),
|
||||
/* K11 */ be_nested_str_weak(tasmota),
|
||||
/* K12 */ be_nested_str_weak(set_power),
|
||||
/* K13 */ be_const_int(1),
|
||||
/* K14 */ be_nested_str_weak(update_shadow),
|
||||
/* K15 */ be_nested_str_weak(light),
|
||||
/* K16 */ be_nested_str_weak(set),
|
||||
/* K17 */ be_nested_str_weak(power),
|
||||
/* K18 */ be_nested_str_weak(light_index),
|
||||
}),
|
||||
be_str_weak(set_onoff),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[56]) { /* code */
|
||||
0x88080100, // 0000 GETMBR R2 R0 K0
|
||||
0x780A0011, // 0001 JMPF R2 #0014
|
||||
0x8C080101, // 0002 GETMET R2 R0 K1
|
||||
0x60100008, // 0003 GETGBL R4 G8
|
||||
0x88140103, // 0004 GETMBR R5 R0 K3
|
||||
0x7C100200, // 0005 CALL R4 1
|
||||
0x00120404, // 0006 ADD R4 K2 R4
|
||||
0x78060001, // 0007 JMPF R1 #000A
|
||||
0x58140004, // 0008 LDCONST R5 K4
|
||||
0x70020000, // 0009 JMP #000B
|
||||
0x58140005, // 000A LDCONST R5 K5
|
||||
0x7C080600, // 000B CALL R2 3
|
||||
0x4C0C0000, // 000C LDNIL R3
|
||||
0x200C0403, // 000D NE R3 R2 R3
|
||||
0x780E0003, // 000E JMPF R3 #0013
|
||||
0x8C0C0106, // 000F GETMET R3 R0 K6
|
||||
0x5C140400, // 0010 MOVE R5 R2
|
||||
0x541A000A, // 0011 LDINT R6 11
|
||||
0x7C0C0600, // 0012 CALL R3 3
|
||||
0x70020022, // 0013 JMP #0037
|
||||
0x88080107, // 0014 GETMBR R2 R0 K7
|
||||
0x780A0008, // 0015 JMPF R2 #001F
|
||||
0x88080108, // 0016 GETMBR R2 R0 K8
|
||||
0x20080202, // 0017 NE R2 R1 R2
|
||||
0x780A0004, // 0018 JMPF R2 #001E
|
||||
0x8C080109, // 0019 GETMET R2 R0 K9
|
||||
0x54120005, // 001A LDINT R4 6
|
||||
0x5814000A, // 001B LDCONST R5 K10
|
||||
0x7C080600, // 001C CALL R2 3
|
||||
0x90021001, // 001D SETMBR R0 K8 R1
|
||||
0x70020017, // 001E JMP #0037
|
||||
0x88080103, // 001F GETMBR R2 R0 K3
|
||||
0x4C0C0000, // 0020 LDNIL R3
|
||||
0x20080403, // 0021 NE R2 R2 R3
|
||||
0x780A000A, // 0022 JMPF R2 #002E
|
||||
0xB80A1600, // 0023 GETNGBL R2 K11
|
||||
0x8C08050C, // 0024 GETMET R2 R2 K12
|
||||
0x88100103, // 0025 GETMBR R4 R0 K3
|
||||
0x0410090D, // 0026 SUB R4 R4 K13
|
||||
0x60140017, // 0027 GETGBL R5 G23
|
||||
0x5C180200, // 0028 MOVE R6 R1
|
||||
0x7C140200, // 0029 CALL R5 1
|
||||
0x7C080600, // 002A CALL R2 3
|
||||
0x8C08010E, // 002B GETMET R2 R0 K14
|
||||
0x7C080200, // 002C CALL R2 1
|
||||
0x70020008, // 002D JMP #0037
|
||||
0xA40A1E00, // 002E IMPORT R2 K15
|
||||
0x8C0C0510, // 002F GETMET R3 R2 K16
|
||||
0x60140013, // 0030 GETGBL R5 G19
|
||||
0x7C140000, // 0031 CALL R5 0
|
||||
0x98162201, // 0032 SETIDX R5 K17 R1
|
||||
0x88180112, // 0033 GETMBR R6 R0 K18
|
||||
0x7C0C0600, // 0034 CALL R3 3
|
||||
0x8C0C010E, // 0035 GETMET R3 R0 K14
|
||||
0x7C0C0200, // 0036 CALL R3 1
|
||||
0x80000000, // 0037 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: web_values
|
||||
********************************************************************/
|
||||
extern const bclass be_class_Matter_Plugin_Light0;
|
||||
be_local_closure(class_Matter_Plugin_Light0_web_values, /* name */
|
||||
be_nested_proto(
|
||||
9, /* nstack */
|
||||
1, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
&be_class_Matter_Plugin_Light0,
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 6]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(webserver),
|
||||
/* K1 */ be_nested_str_weak(web_values_prefix),
|
||||
/* K2 */ be_nested_str_weak(content_send),
|
||||
/* K3 */ be_nested_str_weak(_X25s),
|
||||
/* K4 */ be_nested_str_weak(web_value_onoff),
|
||||
/* K5 */ be_nested_str_weak(shadow_onoff),
|
||||
}),
|
||||
be_str_weak(web_values),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[12]) { /* code */
|
||||
0xA4060000, // 0000 IMPORT R1 K0
|
||||
0x8C080101, // 0001 GETMET R2 R0 K1
|
||||
0x7C080200, // 0002 CALL R2 1
|
||||
0x8C080302, // 0003 GETMET R2 R1 K2
|
||||
0x60100018, // 0004 GETGBL R4 G24
|
||||
0x58140003, // 0005 LDCONST R5 K3
|
||||
0x8C180104, // 0006 GETMET R6 R0 K4
|
||||
0x88200105, // 0007 GETMBR R8 R0 K5
|
||||
0x7C180400, // 0008 CALL R6 2
|
||||
0x7C100400, // 0009 CALL R4 2
|
||||
0x7C080400, // 000A CALL R2 2
|
||||
0x80000000, // 000B RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: init
|
||||
********************************************************************/
|
||||
extern const bclass be_class_Matter_Plugin_Light0;
|
||||
be_local_closure(class_Matter_Plugin_Light0_init, /* name */
|
||||
be_nested_proto(
|
||||
9, /* nstack */
|
||||
4, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
&be_class_Matter_Plugin_Light0,
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 4]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(shadow_onoff),
|
||||
/* K1 */ be_nested_str_weak(light_index),
|
||||
/* K2 */ be_const_int(0),
|
||||
/* K3 */ be_nested_str_weak(init),
|
||||
}),
|
||||
be_str_weak(init),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[12]) { /* code */
|
||||
0x50100000, // 0000 LDBOOL R4 0 0
|
||||
0x90020004, // 0001 SETMBR R0 K0 R4
|
||||
0x90020302, // 0002 SETMBR R0 K1 K2
|
||||
0x60100003, // 0003 GETGBL R4 G3
|
||||
0x5C140000, // 0004 MOVE R5 R0
|
||||
0x7C100200, // 0005 CALL R4 1
|
||||
0x8C100903, // 0006 GETMET R4 R4 K3
|
||||
0x5C180200, // 0007 MOVE R6 R1
|
||||
0x5C1C0400, // 0008 MOVE R7 R2
|
||||
0x5C200600, // 0009 MOVE R8 R3
|
||||
0x7C100800, // 000A CALL R4 4
|
||||
0x80000000, // 000B RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: parse_configuration
|
||||
********************************************************************/
|
||||
extern const bclass be_class_Matter_Plugin_Light0;
|
||||
be_local_closure(class_Matter_Plugin_Light0_parse_configuration, /* name */
|
||||
be_nested_proto(
|
||||
7, /* nstack */
|
||||
2, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
&be_class_Matter_Plugin_Light0,
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 5]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(tasmota_relay_index),
|
||||
/* K1 */ be_nested_str_weak(find),
|
||||
/* K2 */ be_nested_str_weak(ARG),
|
||||
/* K3 */ be_const_int(0),
|
||||
/* K4 */ be_const_int(1),
|
||||
}),
|
||||
be_str_weak(parse_configuration),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[16]) { /* code */
|
||||
0x60080009, // 0000 GETGBL R2 G9
|
||||
0x8C0C0301, // 0001 GETMET R3 R1 K1
|
||||
0x88140102, // 0002 GETMBR R5 R0 K2
|
||||
0x4C180000, // 0003 LDNIL R6
|
||||
0x7C0C0600, // 0004 CALL R3 3
|
||||
0x7C080200, // 0005 CALL R2 1
|
||||
0x90020002, // 0006 SETMBR R0 K0 R2
|
||||
0x88080100, // 0007 GETMBR R2 R0 K0
|
||||
0x4C0C0000, // 0008 LDNIL R3
|
||||
0x20080403, // 0009 NE R2 R2 R3
|
||||
0x780A0003, // 000A JMPF R2 #000F
|
||||
0x88080100, // 000B GETMBR R2 R0 K0
|
||||
0x18080503, // 000C LE R2 R2 K3
|
||||
0x780A0000, // 000D JMPF R2 #000F
|
||||
0x90020104, // 000E SETMBR R0 K0 K4
|
||||
0x80000000, // 000F RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: update_virtual
|
||||
********************************************************************/
|
||||
extern const bclass be_class_Matter_Plugin_Light0;
|
||||
be_local_closure(class_Matter_Plugin_Light0_update_virtual, /* name */
|
||||
be_nested_proto(
|
||||
7, /* nstack */
|
||||
2, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
&be_class_Matter_Plugin_Light0,
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 4]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(find),
|
||||
/* K1 */ be_nested_str_weak(Power),
|
||||
/* K2 */ be_nested_str_weak(set_onoff),
|
||||
/* K3 */ be_nested_str_weak(update_virtual),
|
||||
}),
|
||||
be_str_weak(update_virtual),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[18]) { /* code */
|
||||
0x8C080300, // 0000 GETMET R2 R1 K0
|
||||
0x58100001, // 0001 LDCONST R4 K1
|
||||
0x7C080400, // 0002 CALL R2 2
|
||||
0x4C0C0000, // 0003 LDNIL R3
|
||||
0x200C0403, // 0004 NE R3 R2 R3
|
||||
0x780E0004, // 0005 JMPF R3 #000B
|
||||
0x8C0C0102, // 0006 GETMET R3 R0 K2
|
||||
0x60140017, // 0007 GETGBL R5 G23
|
||||
0x5C180400, // 0008 MOVE R6 R2
|
||||
0x7C140200, // 0009 CALL R5 1
|
||||
0x7C0C0400, // 000A CALL R3 2
|
||||
0x600C0003, // 000B GETGBL R3 G3
|
||||
0x5C100000, // 000C MOVE R4 R0
|
||||
0x7C0C0200, // 000D CALL R3 1
|
||||
0x8C0C0703, // 000E GETMET R3 R3 K3
|
||||
0x5C140200, // 000F MOVE R5 R1
|
||||
0x7C0C0400, // 0010 CALL R3 2
|
||||
0x80000000, // 0011 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: read_attribute
|
||||
********************************************************************/
|
||||
|
@ -67,261 +344,81 @@ be_local_closure(class_Matter_Plugin_Light0_read_attribute, /* name */
|
|||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: update_virtual
|
||||
** Solidified function: web_values_prefix
|
||||
********************************************************************/
|
||||
extern const bclass be_class_Matter_Plugin_Light0;
|
||||
be_local_closure(class_Matter_Plugin_Light0_update_virtual, /* name */
|
||||
be_local_closure(class_Matter_Plugin_Light0_web_values_prefix, /* name */
|
||||
be_nested_proto(
|
||||
7, /* nstack */
|
||||
2, /* argc */
|
||||
10, /* nstack */
|
||||
1, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
&be_class_Matter_Plugin_Light0,
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 4]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(find),
|
||||
/* K1 */ be_nested_str_weak(Power),
|
||||
/* K2 */ be_nested_str_weak(set_onoff),
|
||||
/* K3 */ be_nested_str_weak(update_virtual),
|
||||
}),
|
||||
be_str_weak(update_virtual),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[18]) { /* code */
|
||||
0x8C080300, // 0000 GETMET R2 R1 K0
|
||||
0x58100001, // 0001 LDCONST R4 K1
|
||||
0x7C080400, // 0002 CALL R2 2
|
||||
0x4C0C0000, // 0003 LDNIL R3
|
||||
0x200C0403, // 0004 NE R3 R2 R3
|
||||
0x780E0004, // 0005 JMPF R3 #000B
|
||||
0x8C0C0102, // 0006 GETMET R3 R0 K2
|
||||
0x60140017, // 0007 GETGBL R5 G23
|
||||
0x5C180400, // 0008 MOVE R6 R2
|
||||
0x7C140200, // 0009 CALL R5 1
|
||||
0x7C0C0400, // 000A CALL R3 2
|
||||
0x600C0003, // 000B GETGBL R3 G3
|
||||
0x5C100000, // 000C MOVE R4 R0
|
||||
0x7C0C0200, // 000D CALL R3 1
|
||||
0x8C0C0703, // 000E GETMET R3 R3 K3
|
||||
0x5C140200, // 000F MOVE R5 R1
|
||||
0x7C0C0400, // 0010 CALL R3 2
|
||||
0x80000000, // 0011 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: parse_status
|
||||
********************************************************************/
|
||||
extern const bclass be_class_Matter_Plugin_Light0;
|
||||
be_local_closure(class_Matter_Plugin_Light0_parse_status, /* name */
|
||||
be_nested_proto(
|
||||
8, /* nstack */
|
||||
3, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
&be_class_Matter_Plugin_Light0,
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 9]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(tasmota_relay_index),
|
||||
/* K1 */ be_const_int(1),
|
||||
/* K2 */ be_nested_str_weak(contains),
|
||||
/* K3 */ be_nested_str_weak(POWER),
|
||||
/* K4 */ be_nested_str_weak(find),
|
||||
/* K5 */ be_nested_str_weak(ON),
|
||||
/* K6 */ be_nested_str_weak(shadow_onoff),
|
||||
/* K7 */ be_nested_str_weak(attribute_updated),
|
||||
/* K8 */ be_const_int(0),
|
||||
}),
|
||||
be_str_weak(parse_status),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[37]) { /* code */
|
||||
0x540E000A, // 0000 LDINT R3 11
|
||||
0x1C0C0403, // 0001 EQ R3 R2 R3
|
||||
0x780E0020, // 0002 JMPF R3 #0024
|
||||
0x500C0000, // 0003 LDBOOL R3 0 0
|
||||
0x88100100, // 0004 GETMBR R4 R0 K0
|
||||
0x1C100901, // 0005 EQ R4 R4 K1
|
||||
0x78120009, // 0006 JMPF R4 #0011
|
||||
0x8C100302, // 0007 GETMET R4 R1 K2
|
||||
0x58180003, // 0008 LDCONST R6 K3
|
||||
0x7C100400, // 0009 CALL R4 2
|
||||
0x78120005, // 000A JMPF R4 #0011
|
||||
0x8C100304, // 000B GETMET R4 R1 K4
|
||||
0x58180003, // 000C LDCONST R6 K3
|
||||
0x7C100400, // 000D CALL R4 2
|
||||
0x1C100905, // 000E EQ R4 R4 K5
|
||||
0x5C0C0800, // 000F MOVE R3 R4
|
||||
0x70020007, // 0010 JMP #0019
|
||||
0x8C100304, // 0011 GETMET R4 R1 K4
|
||||
0x60180008, // 0012 GETGBL R6 G8
|
||||
0x881C0100, // 0013 GETMBR R7 R0 K0
|
||||
0x7C180200, // 0014 CALL R6 1
|
||||
0x001A0606, // 0015 ADD R6 K3 R6
|
||||
0x7C100400, // 0016 CALL R4 2
|
||||
0x1C100905, // 0017 EQ R4 R4 K5
|
||||
0x5C0C0800, // 0018 MOVE R3 R4
|
||||
0x88100106, // 0019 GETMBR R4 R0 K6
|
||||
0x60140017, // 001A GETGBL R5 G23
|
||||
0x5C180600, // 001B MOVE R6 R3
|
||||
0x7C140200, // 001C CALL R5 1
|
||||
0x20100805, // 001D NE R4 R4 R5
|
||||
0x78120004, // 001E JMPF R4 #0024
|
||||
0x8C100107, // 001F GETMET R4 R0 K7
|
||||
0x541A0005, // 0020 LDINT R6 6
|
||||
0x581C0008, // 0021 LDCONST R7 K8
|
||||
0x7C100600, // 0022 CALL R4 3
|
||||
0x90020C03, // 0023 SETMBR R0 K6 R3
|
||||
0x80000000, // 0024 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: parse_configuration
|
||||
********************************************************************/
|
||||
extern const bclass be_class_Matter_Plugin_Light0;
|
||||
be_local_closure(class_Matter_Plugin_Light0_parse_configuration, /* name */
|
||||
be_nested_proto(
|
||||
7, /* nstack */
|
||||
2, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
&be_class_Matter_Plugin_Light0,
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 5]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(tasmota_relay_index),
|
||||
/* K1 */ be_nested_str_weak(find),
|
||||
/* K2 */ be_nested_str_weak(ARG),
|
||||
/* K3 */ be_const_int(0),
|
||||
/* K4 */ be_const_int(1),
|
||||
}),
|
||||
be_str_weak(parse_configuration),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[16]) { /* code */
|
||||
0x60080009, // 0000 GETGBL R2 G9
|
||||
0x8C0C0301, // 0001 GETMET R3 R1 K1
|
||||
0x88140102, // 0002 GETMBR R5 R0 K2
|
||||
0x4C180000, // 0003 LDNIL R6
|
||||
0x7C0C0600, // 0004 CALL R3 3
|
||||
0x7C080200, // 0005 CALL R2 1
|
||||
0x90020002, // 0006 SETMBR R0 K0 R2
|
||||
0x88080100, // 0007 GETMBR R2 R0 K0
|
||||
0x4C0C0000, // 0008 LDNIL R3
|
||||
0x20080403, // 0009 NE R2 R2 R3
|
||||
0x780A0003, // 000A JMPF R2 #000F
|
||||
0x88080100, // 000B GETMBR R2 R0 K0
|
||||
0x18080503, // 000C LE R2 R2 K3
|
||||
0x780A0000, // 000D JMPF R2 #000F
|
||||
0x90020104, // 000E SETMBR R0 K0 K4
|
||||
0x80000000, // 000F RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: set_onoff
|
||||
********************************************************************/
|
||||
extern const bclass be_class_Matter_Plugin_Light0;
|
||||
be_local_closure(class_Matter_Plugin_Light0_set_onoff, /* name */
|
||||
be_nested_proto(
|
||||
7, /* nstack */
|
||||
2, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
&be_class_Matter_Plugin_Light0,
|
||||
1, /* has constants */
|
||||
( &(const bvalue[18]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(BRIDGE),
|
||||
/* K1 */ be_nested_str_weak(call_remote_sync),
|
||||
( &(const bvalue[ 8]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(webserver),
|
||||
/* K1 */ be_nested_str_weak(get_name),
|
||||
/* K2 */ be_nested_str_weak(Power),
|
||||
/* K3 */ be_nested_str_weak(tasmota_relay_index),
|
||||
/* K4 */ be_nested_str_weak(1),
|
||||
/* K5 */ be_nested_str_weak(0),
|
||||
/* K6 */ be_nested_str_weak(parse_status),
|
||||
/* K7 */ be_nested_str_weak(VIRTUAL),
|
||||
/* K8 */ be_nested_str_weak(shadow_onoff),
|
||||
/* K9 */ be_nested_str_weak(attribute_updated),
|
||||
/* K10 */ be_const_int(0),
|
||||
/* K11 */ be_nested_str_weak(tasmota),
|
||||
/* K12 */ be_nested_str_weak(set_power),
|
||||
/* K13 */ be_const_int(1),
|
||||
/* K14 */ be_nested_str_weak(update_shadow),
|
||||
/* K15 */ be_nested_str_weak(light),
|
||||
/* K16 */ be_nested_str_weak(set),
|
||||
/* K17 */ be_nested_str_weak(power),
|
||||
/* K4 */ be_nested_str_weak(content_send),
|
||||
/* K5 */ be_nested_str_weak(PREFIX),
|
||||
/* K6 */ be_nested_str_weak(html_escape),
|
||||
/* K7 */ be_nested_str_weak(),
|
||||
}),
|
||||
be_str_weak(set_onoff),
|
||||
be_str_weak(web_values_prefix),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[55]) { /* code */
|
||||
0x88080100, // 0000 GETMBR R2 R0 K0
|
||||
0x780A0011, // 0001 JMPF R2 #0014
|
||||
0x8C080101, // 0002 GETMET R2 R0 K1
|
||||
0x60100008, // 0003 GETGBL R4 G8
|
||||
0x88140103, // 0004 GETMBR R5 R0 K3
|
||||
0x7C100200, // 0005 CALL R4 1
|
||||
0x00120404, // 0006 ADD R4 K2 R4
|
||||
0x78060001, // 0007 JMPF R1 #000A
|
||||
0x58140004, // 0008 LDCONST R5 K4
|
||||
0x70020000, // 0009 JMP #000B
|
||||
0x58140005, // 000A LDCONST R5 K5
|
||||
0x7C080600, // 000B CALL R2 3
|
||||
0x4C0C0000, // 000C LDNIL R3
|
||||
0x200C0403, // 000D NE R3 R2 R3
|
||||
0x780E0003, // 000E JMPF R3 #0013
|
||||
0x8C0C0106, // 000F GETMET R3 R0 K6
|
||||
0x5C140400, // 0010 MOVE R5 R2
|
||||
0x541A000A, // 0011 LDINT R6 11
|
||||
0x7C0C0600, // 0012 CALL R3 3
|
||||
0x70020021, // 0013 JMP #0036
|
||||
0x88080107, // 0014 GETMBR R2 R0 K7
|
||||
0x780A0008, // 0015 JMPF R2 #001F
|
||||
0x88080108, // 0016 GETMBR R2 R0 K8
|
||||
0x20080202, // 0017 NE R2 R1 R2
|
||||
0x780A0004, // 0018 JMPF R2 #001E
|
||||
0x8C080109, // 0019 GETMET R2 R0 K9
|
||||
0x54120005, // 001A LDINT R4 6
|
||||
0x5814000A, // 001B LDCONST R5 K10
|
||||
0x7C080600, // 001C CALL R2 3
|
||||
0x90021001, // 001D SETMBR R0 K8 R1
|
||||
0x70020016, // 001E JMP #0036
|
||||
0x88080103, // 001F GETMBR R2 R0 K3
|
||||
0x4C0C0000, // 0020 LDNIL R3
|
||||
0x20080403, // 0021 NE R2 R2 R3
|
||||
0x780A000A, // 0022 JMPF R2 #002E
|
||||
0xB80A1600, // 0023 GETNGBL R2 K11
|
||||
0x8C08050C, // 0024 GETMET R2 R2 K12
|
||||
0x88100103, // 0025 GETMBR R4 R0 K3
|
||||
0x0410090D, // 0026 SUB R4 R4 K13
|
||||
0x60140017, // 0027 GETGBL R5 G23
|
||||
0x5C180200, // 0028 MOVE R6 R1
|
||||
0x7C140200, // 0029 CALL R5 1
|
||||
0x7C080600, // 002A CALL R2 3
|
||||
0x8C08010E, // 002B GETMET R2 R0 K14
|
||||
0x7C080200, // 002C CALL R2 1
|
||||
0x70020007, // 002D JMP #0036
|
||||
0xA40A1E00, // 002E IMPORT R2 K15
|
||||
0x8C0C0510, // 002F GETMET R3 R2 K16
|
||||
0x60140013, // 0030 GETGBL R5 G19
|
||||
0x7C140000, // 0031 CALL R5 0
|
||||
0x98162201, // 0032 SETIDX R5 K17 R1
|
||||
0x7C0C0400, // 0033 CALL R3 2
|
||||
0x8C0C010E, // 0034 GETMET R3 R0 K14
|
||||
0x7C0C0200, // 0035 CALL R3 1
|
||||
0x80000000, // 0036 RET 0
|
||||
( &(const binstruction[22]) { /* code */
|
||||
0xA4060000, // 0000 IMPORT R1 K0
|
||||
0x8C080101, // 0001 GETMET R2 R0 K1
|
||||
0x7C080200, // 0002 CALL R2 1
|
||||
0x5C0C0400, // 0003 MOVE R3 R2
|
||||
0x740E0004, // 0004 JMPT R3 #000A
|
||||
0x600C0008, // 0005 GETGBL R3 G8
|
||||
0x88100103, // 0006 GETMBR R4 R0 K3
|
||||
0x7C0C0200, // 0007 CALL R3 1
|
||||
0x000E0403, // 0008 ADD R3 K2 R3
|
||||
0x5C080600, // 0009 MOVE R2 R3
|
||||
0x8C0C0304, // 000A GETMET R3 R1 K4
|
||||
0x60140018, // 000B GETGBL R5 G24
|
||||
0x88180105, // 000C GETMBR R6 R0 K5
|
||||
0x780A0003, // 000D JMPF R2 #0012
|
||||
0x8C1C0306, // 000E GETMET R7 R1 K6
|
||||
0x5C240400, // 000F MOVE R9 R2
|
||||
0x7C1C0400, // 0010 CALL R7 2
|
||||
0x70020000, // 0011 JMP #0013
|
||||
0x581C0007, // 0012 LDCONST R7 K7
|
||||
0x7C140400, // 0013 CALL R5 2
|
||||
0x7C0C0400, // 0014 CALL R3 2
|
||||
0x80000000, // 0015 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: <lambda>
|
||||
********************************************************************/
|
||||
be_local_closure(class_Matter_Plugin_Light0__X3Clambda_X3E, /* name */
|
||||
be_nested_proto(
|
||||
3, /* nstack */
|
||||
1, /* argc */
|
||||
0, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
NULL,
|
||||
0, /* has constants */
|
||||
NULL, /* no const */
|
||||
be_str_weak(_X3Clambda_X3E),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[ 4]) { /* code */
|
||||
0x60040009, // 0000 GETGBL R1 G9
|
||||
0x5C080000, // 0001 MOVE R2 R0
|
||||
0x7C040200, // 0002 CALL R1 1
|
||||
0x80040200, // 0003 RET 1 R1
|
||||
})
|
||||
)
|
||||
);
|
||||
|
@ -396,87 +493,6 @@ be_local_closure(class_Matter_Plugin_Light0_update_shadow, /* name */
|
|||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: web_values
|
||||
********************************************************************/
|
||||
extern const bclass be_class_Matter_Plugin_Light0;
|
||||
be_local_closure(class_Matter_Plugin_Light0_web_values, /* name */
|
||||
be_nested_proto(
|
||||
9, /* nstack */
|
||||
1, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
&be_class_Matter_Plugin_Light0,
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 6]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(webserver),
|
||||
/* K1 */ be_nested_str_weak(web_values_prefix),
|
||||
/* K2 */ be_nested_str_weak(content_send),
|
||||
/* K3 */ be_nested_str_weak(_X25s),
|
||||
/* K4 */ be_nested_str_weak(web_value_onoff),
|
||||
/* K5 */ be_nested_str_weak(shadow_onoff),
|
||||
}),
|
||||
be_str_weak(web_values),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[12]) { /* code */
|
||||
0xA4060000, // 0000 IMPORT R1 K0
|
||||
0x8C080101, // 0001 GETMET R2 R0 K1
|
||||
0x7C080200, // 0002 CALL R2 1
|
||||
0x8C080302, // 0003 GETMET R2 R1 K2
|
||||
0x60100018, // 0004 GETGBL R4 G24
|
||||
0x58140003, // 0005 LDCONST R5 K3
|
||||
0x8C180104, // 0006 GETMET R6 R0 K4
|
||||
0x88200105, // 0007 GETMBR R8 R0 K5
|
||||
0x7C180400, // 0008 CALL R6 2
|
||||
0x7C100400, // 0009 CALL R4 2
|
||||
0x7C080400, // 000A CALL R2 2
|
||||
0x80000000, // 000B RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: init
|
||||
********************************************************************/
|
||||
extern const bclass be_class_Matter_Plugin_Light0;
|
||||
be_local_closure(class_Matter_Plugin_Light0_init, /* name */
|
||||
be_nested_proto(
|
||||
9, /* nstack */
|
||||
4, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
&be_class_Matter_Plugin_Light0,
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 2]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(init),
|
||||
/* K1 */ be_nested_str_weak(shadow_onoff),
|
||||
}),
|
||||
be_str_weak(init),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[11]) { /* 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
|
||||
0x50100000, // 0008 LDBOOL R4 0 0
|
||||
0x90020204, // 0009 SETMBR R0 K1 R4
|
||||
0x80000000, // 000A RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: invoke_request
|
||||
********************************************************************/
|
||||
|
@ -567,81 +583,70 @@ be_local_closure(class_Matter_Plugin_Light0_invoke_request, /* name */
|
|||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: <lambda>
|
||||
********************************************************************/
|
||||
be_local_closure(class_Matter_Plugin_Light0__X3Clambda_X3E, /* name */
|
||||
be_nested_proto(
|
||||
3, /* nstack */
|
||||
1, /* argc */
|
||||
0, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
NULL,
|
||||
0, /* has constants */
|
||||
NULL, /* no const */
|
||||
be_str_weak(_X3Clambda_X3E),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[ 4]) { /* code */
|
||||
0x60040009, // 0000 GETGBL R1 G9
|
||||
0x5C080000, // 0001 MOVE R2 R0
|
||||
0x7C040200, // 0002 CALL R1 1
|
||||
0x80040200, // 0003 RET 1 R1
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: web_values_prefix
|
||||
** Solidified function: parse_status
|
||||
********************************************************************/
|
||||
extern const bclass be_class_Matter_Plugin_Light0;
|
||||
be_local_closure(class_Matter_Plugin_Light0_web_values_prefix, /* name */
|
||||
be_local_closure(class_Matter_Plugin_Light0_parse_status, /* name */
|
||||
be_nested_proto(
|
||||
10, /* nstack */
|
||||
1, /* argc */
|
||||
8, /* nstack */
|
||||
3, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
&be_class_Matter_Plugin_Light0,
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 8]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(webserver),
|
||||
/* K1 */ be_nested_str_weak(get_name),
|
||||
/* K2 */ be_nested_str_weak(Power),
|
||||
/* K3 */ be_nested_str_weak(tasmota_relay_index),
|
||||
/* K4 */ be_nested_str_weak(content_send),
|
||||
/* K5 */ be_nested_str_weak(PREFIX),
|
||||
/* K6 */ be_nested_str_weak(html_escape),
|
||||
/* K7 */ be_nested_str_weak(),
|
||||
( &(const bvalue[ 9]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(tasmota_relay_index),
|
||||
/* K1 */ be_const_int(1),
|
||||
/* K2 */ be_nested_str_weak(contains),
|
||||
/* K3 */ be_nested_str_weak(POWER),
|
||||
/* K4 */ be_nested_str_weak(find),
|
||||
/* K5 */ be_nested_str_weak(ON),
|
||||
/* K6 */ be_nested_str_weak(shadow_onoff),
|
||||
/* K7 */ be_nested_str_weak(attribute_updated),
|
||||
/* K8 */ be_const_int(0),
|
||||
}),
|
||||
be_str_weak(web_values_prefix),
|
||||
be_str_weak(parse_status),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[22]) { /* code */
|
||||
0xA4060000, // 0000 IMPORT R1 K0
|
||||
0x8C080101, // 0001 GETMET R2 R0 K1
|
||||
0x7C080200, // 0002 CALL R2 1
|
||||
0x5C0C0400, // 0003 MOVE R3 R2
|
||||
0x740E0004, // 0004 JMPT R3 #000A
|
||||
0x600C0008, // 0005 GETGBL R3 G8
|
||||
0x88100103, // 0006 GETMBR R4 R0 K3
|
||||
0x7C0C0200, // 0007 CALL R3 1
|
||||
0x000E0403, // 0008 ADD R3 K2 R3
|
||||
0x5C080600, // 0009 MOVE R2 R3
|
||||
0x8C0C0304, // 000A GETMET R3 R1 K4
|
||||
0x60140018, // 000B GETGBL R5 G24
|
||||
0x88180105, // 000C GETMBR R6 R0 K5
|
||||
0x780A0003, // 000D JMPF R2 #0012
|
||||
0x8C1C0306, // 000E GETMET R7 R1 K6
|
||||
0x5C240400, // 000F MOVE R9 R2
|
||||
0x7C1C0400, // 0010 CALL R7 2
|
||||
0x70020000, // 0011 JMP #0013
|
||||
0x581C0007, // 0012 LDCONST R7 K7
|
||||
0x7C140400, // 0013 CALL R5 2
|
||||
0x7C0C0400, // 0014 CALL R3 2
|
||||
0x80000000, // 0015 RET 0
|
||||
( &(const binstruction[37]) { /* code */
|
||||
0x540E000A, // 0000 LDINT R3 11
|
||||
0x1C0C0403, // 0001 EQ R3 R2 R3
|
||||
0x780E0020, // 0002 JMPF R3 #0024
|
||||
0x500C0000, // 0003 LDBOOL R3 0 0
|
||||
0x88100100, // 0004 GETMBR R4 R0 K0
|
||||
0x1C100901, // 0005 EQ R4 R4 K1
|
||||
0x78120009, // 0006 JMPF R4 #0011
|
||||
0x8C100302, // 0007 GETMET R4 R1 K2
|
||||
0x58180003, // 0008 LDCONST R6 K3
|
||||
0x7C100400, // 0009 CALL R4 2
|
||||
0x78120005, // 000A JMPF R4 #0011
|
||||
0x8C100304, // 000B GETMET R4 R1 K4
|
||||
0x58180003, // 000C LDCONST R6 K3
|
||||
0x7C100400, // 000D CALL R4 2
|
||||
0x1C100905, // 000E EQ R4 R4 K5
|
||||
0x5C0C0800, // 000F MOVE R3 R4
|
||||
0x70020007, // 0010 JMP #0019
|
||||
0x8C100304, // 0011 GETMET R4 R1 K4
|
||||
0x60180008, // 0012 GETGBL R6 G8
|
||||
0x881C0100, // 0013 GETMBR R7 R0 K0
|
||||
0x7C180200, // 0014 CALL R6 1
|
||||
0x001A0606, // 0015 ADD R6 K3 R6
|
||||
0x7C100400, // 0016 CALL R4 2
|
||||
0x1C100905, // 0017 EQ R4 R4 K5
|
||||
0x5C0C0800, // 0018 MOVE R3 R4
|
||||
0x88100106, // 0019 GETMBR R4 R0 K6
|
||||
0x60140017, // 001A GETGBL R5 G23
|
||||
0x5C180600, // 001B MOVE R6 R3
|
||||
0x7C140200, // 001C CALL R5 1
|
||||
0x20100805, // 001D NE R4 R4 R5
|
||||
0x78120004, // 001E JMPF R4 #0024
|
||||
0x8C100107, // 001F GETMET R4 R0 K7
|
||||
0x541A0005, // 0020 LDINT R6 6
|
||||
0x581C0008, // 0021 LDCONST R7 K8
|
||||
0x7C100600, // 0022 CALL R4 3
|
||||
0x90020C03, // 0023 SETMBR R0 K6 R3
|
||||
0x80000000, // 0024 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
|
@ -653,22 +658,17 @@ be_local_closure(class_Matter_Plugin_Light0_web_values_prefix, /* name */
|
|||
********************************************************************/
|
||||
extern const bclass be_class_Matter_Plugin_Device;
|
||||
be_local_class(Matter_Plugin_Light0,
|
||||
2,
|
||||
3,
|
||||
&be_class_Matter_Plugin_Device,
|
||||
be_nested_map(21,
|
||||
be_nested_map(22,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Light0_read_attribute_closure) },
|
||||
{ be_const_key_weak(update_virtual, -1), be_const_closure(class_Matter_Plugin_Light0_update_virtual_closure) },
|
||||
{ be_const_key_weak(tasmota_relay_index, 1), be_const_var(0) },
|
||||
{ be_const_key_weak(parse_status, 5), be_const_closure(class_Matter_Plugin_Light0_parse_status_closure) },
|
||||
{ be_const_key_weak(parse_configuration, -1), be_const_closure(class_Matter_Plugin_Light0_parse_configuration_closure) },
|
||||
{ be_const_key_weak(UPDATE_COMMANDS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
|
||||
be_const_list( * be_nested_list(1,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_nested_str_weak(Power),
|
||||
})) ) } )) },
|
||||
{ be_const_key_weak(set_onoff, -1), be_const_closure(class_Matter_Plugin_Light0_set_onoff_closure) },
|
||||
{ be_const_key_weak(CLUSTERS, 19), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
|
||||
{ be_const_key_weak(parse_status, 8), be_const_closure(class_Matter_Plugin_Light0_parse_status_closure) },
|
||||
{ be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(Relay_X3Cx_X3E_X20number) },
|
||||
{ be_const_key_weak(light_index, -1), be_const_var(1) },
|
||||
{ be_const_key_weak(UPDATE_TIME, -1), be_const_int(250) },
|
||||
{ be_const_key_weak(set_onoff, 18), be_const_closure(class_Matter_Plugin_Light0_set_onoff_closure) },
|
||||
{ be_const_key_weak(tasmota_relay_index, -1), be_const_var(0) },
|
||||
{ be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
|
||||
be_const_map( * be_nested_map(6,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_int(6, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
|
||||
|
@ -752,23 +752,29 @@ be_local_class(Matter_Plugin_Light0,
|
|||
be_const_int(65533),
|
||||
})) ) } )) },
|
||||
})) ) } )) },
|
||||
{ be_const_key_weak(init, -1), be_const_closure(class_Matter_Plugin_Light0_init_closure) },
|
||||
{ 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(web_values, -1), be_const_closure(class_Matter_Plugin_Light0_web_values_closure) },
|
||||
{ be_const_key_weak(DISPLAY_NAME, 8), be_nested_str_weak(Light_X200_X20On) },
|
||||
{ be_const_key_weak(shadow_onoff, -1), be_const_var(1) },
|
||||
{ be_const_key_weak(invoke_request, -1), be_const_closure(class_Matter_Plugin_Light0_invoke_request_closure) },
|
||||
{ be_const_key_weak(ARG, -1), be_nested_str_weak(relay) },
|
||||
{ be_const_key_weak(invoke_request, 10), be_const_closure(class_Matter_Plugin_Light0_invoke_request_closure) },
|
||||
{ be_const_key_weak(init, 5), be_const_closure(class_Matter_Plugin_Light0_init_closure) },
|
||||
{ be_const_key_weak(UPDATE_COMMANDS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
|
||||
be_const_list( * be_nested_list(1,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_nested_str_weak(Power),
|
||||
})) ) } )) },
|
||||
{ be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Light0_read_attribute_closure) },
|
||||
{ be_const_key_weak(update_virtual, -1), be_const_closure(class_Matter_Plugin_Light0_update_virtual_closure) },
|
||||
{ be_const_key_weak(web_values_prefix, -1), be_const_closure(class_Matter_Plugin_Light0_web_values_prefix_closure) },
|
||||
{ be_const_key_weak(shadow_onoff, 11), be_const_var(2) },
|
||||
{ be_const_key_weak(TYPE, 13), be_nested_str_weak(light0) },
|
||||
{ be_const_key_weak(ARG_TYPE, -1), be_const_static_closure(class_Matter_Plugin_Light0__X3Clambda_X3E_closure) },
|
||||
{ be_const_key_weak(update_shadow, -1), be_const_closure(class_Matter_Plugin_Light0_update_shadow_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(256, -1), be_const_int(2) },
|
||||
})) ) } )) },
|
||||
{ be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(Relay_X3Cx_X3E_X20number) },
|
||||
{ be_const_key_weak(update_shadow, -1), be_const_closure(class_Matter_Plugin_Light0_update_shadow_closure) },
|
||||
{ be_const_key_weak(web_values_prefix, -1), be_const_closure(class_Matter_Plugin_Light0_web_values_prefix_closure) },
|
||||
{ be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Light_X200_X20On) },
|
||||
{ be_const_key_weak(web_values, 3), be_const_closure(class_Matter_Plugin_Light0_web_values_closure) },
|
||||
{ be_const_key_weak(parse_configuration, 0), be_const_closure(class_Matter_Plugin_Light0_parse_configuration_closure) },
|
||||
})),
|
||||
be_str_weak(Matter_Plugin_Light0)
|
||||
);
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -7,12 +7,12 @@
|
|||
extern const bclass be_class_Matter_Plugin_Light2;
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: set_ct
|
||||
** Solidified function: update_virtual
|
||||
********************************************************************/
|
||||
extern const bclass be_class_Matter_Plugin_Light2;
|
||||
be_local_closure(class_Matter_Plugin_Light2_set_ct, /* name */
|
||||
be_local_closure(class_Matter_Plugin_Light2_update_virtual, /* name */
|
||||
be_nested_proto(
|
||||
7, /* nstack */
|
||||
6, /* nstack */
|
||||
2, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
|
@ -20,174 +20,33 @@ be_local_closure(class_Matter_Plugin_Light2_set_ct, /* name */
|
|||
0, /* has sup protos */
|
||||
&be_class_Matter_Plugin_Light2,
|
||||
1, /* has constants */
|
||||
( &(const bvalue[13]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(ct_min),
|
||||
/* K1 */ be_nested_str_weak(ct_max),
|
||||
/* K2 */ be_nested_str_weak(BRIDGE),
|
||||
/* K3 */ be_nested_str_weak(call_remote_sync),
|
||||
/* K4 */ be_nested_str_weak(CT),
|
||||
/* K5 */ be_nested_str_weak(parse_status),
|
||||
/* K6 */ be_nested_str_weak(VIRTUAL),
|
||||
/* K7 */ be_nested_str_weak(shadow_ct),
|
||||
/* K8 */ be_nested_str_weak(attribute_updated),
|
||||
/* K9 */ be_nested_str_weak(light),
|
||||
/* K10 */ be_nested_str_weak(set),
|
||||
/* K11 */ be_nested_str_weak(ct),
|
||||
/* K12 */ be_nested_str_weak(update_shadow),
|
||||
( &(const bvalue[ 4]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(find),
|
||||
/* K1 */ be_nested_str_weak(CT),
|
||||
/* K2 */ be_nested_str_weak(set_ct),
|
||||
/* K3 */ be_nested_str_weak(update_virtual),
|
||||
}),
|
||||
be_str_weak(set_ct),
|
||||
be_str_weak(update_virtual),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[44]) { /* 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
|
||||
0x780A000D, // 0009 JMPF R2 #0018
|
||||
0x8C080103, // 000A GETMET R2 R0 K3
|
||||
0x58100004, // 000B LDCONST R4 K4
|
||||
0x60140008, // 000C GETGBL R5 G8
|
||||
0x5C180200, // 000D MOVE R6 R1
|
||||
0x7C140200, // 000E CALL R5 1
|
||||
0x7C080600, // 000F CALL R2 3
|
||||
0x4C0C0000, // 0010 LDNIL R3
|
||||
0x200C0403, // 0011 NE R3 R2 R3
|
||||
0x780E0003, // 0012 JMPF R3 #0017
|
||||
0x8C0C0105, // 0013 GETMET R3 R0 K5
|
||||
0x5C140400, // 0014 MOVE R5 R2
|
||||
0x541A000A, // 0015 LDINT R6 11
|
||||
0x7C0C0600, // 0016 CALL R3 3
|
||||
0x70020012, // 0017 JMP #002B
|
||||
0x88080106, // 0018 GETMBR R2 R0 K6
|
||||
0x780A0008, // 0019 JMPF R2 #0023
|
||||
0x88080107, // 001A GETMBR R2 R0 K7
|
||||
0x20080202, // 001B NE R2 R1 R2
|
||||
0x780A0004, // 001C JMPF R2 #0022
|
||||
0x8C080108, // 001D GETMET R2 R0 K8
|
||||
0x541202FF, // 001E LDINT R4 768
|
||||
0x54160006, // 001F LDINT R5 7
|
||||
0x7C080600, // 0020 CALL R2 3
|
||||
0x90020E01, // 0021 SETMBR R0 K7 R1
|
||||
0x70020007, // 0022 JMP #002B
|
||||
0xA40A1200, // 0023 IMPORT R2 K9
|
||||
0x8C0C050A, // 0024 GETMET R3 R2 K10
|
||||
0x60140013, // 0025 GETGBL R5 G19
|
||||
0x7C140000, // 0026 CALL R5 0
|
||||
0x98161601, // 0027 SETIDX R5 K11 R1
|
||||
0x7C0C0400, // 0028 CALL R3 2
|
||||
0x8C0C010C, // 0029 GETMET R3 R0 K12
|
||||
0x7C0C0200, // 002A CALL R3 1
|
||||
0x80000000, // 002B RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: invoke_request
|
||||
********************************************************************/
|
||||
extern const bclass be_class_Matter_Plugin_Light2;
|
||||
be_local_closure(class_Matter_Plugin_Light2_invoke_request, /* name */
|
||||
be_nested_proto(
|
||||
12, /* nstack */
|
||||
4, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
&be_class_Matter_Plugin_Light2,
|
||||
1, /* has constants */
|
||||
( &(const bvalue[15]) { /* 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_nested_str_weak(update_shadow_lazy),
|
||||
/* K5 */ be_nested_str_weak(findsubval),
|
||||
/* K6 */ be_const_int(0),
|
||||
/* K7 */ be_nested_str_weak(ct_min),
|
||||
/* K8 */ be_nested_str_weak(ct_max),
|
||||
/* K9 */ be_nested_str_weak(set_ct),
|
||||
/* K10 */ be_nested_str_weak(log),
|
||||
/* K11 */ be_nested_str_weak(ct_X3A),
|
||||
/* K12 */ be_nested_str_weak(publish_command),
|
||||
/* K13 */ be_nested_str_weak(CT),
|
||||
/* K14 */ be_nested_str_weak(invoke_request),
|
||||
}),
|
||||
be_str_weak(invoke_request),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[66]) { /* 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
|
||||
0x781E0030, // 0006 JMPF R7 #0038
|
||||
0x8C1C0104, // 0007 GETMET R7 R0 K4
|
||||
0x7C1C0200, // 0008 CALL R7 1
|
||||
0x541E0009, // 0009 LDINT R7 10
|
||||
0x1C1C0C07, // 000A EQ R7 R6 R7
|
||||
0x781E0019, // 000B JMPF R7 #0026
|
||||
0x8C1C0505, // 000C GETMET R7 R2 K5
|
||||
0x58240006, // 000D LDCONST R9 K6
|
||||
0x7C1C0400, // 000E CALL R7 2
|
||||
0x88200107, // 000F GETMBR R8 R0 K7
|
||||
0x14200E08, // 0010 LT R8 R7 R8
|
||||
0x78220000, // 0011 JMPF R8 #0013
|
||||
0x881C0107, // 0012 GETMBR R7 R0 K7
|
||||
0x88200108, // 0013 GETMBR R8 R0 K8
|
||||
0x24200E08, // 0014 GT R8 R7 R8
|
||||
0x78220000, // 0015 JMPF R8 #0017
|
||||
0x881C0108, // 0016 GETMBR R7 R0 K8
|
||||
0x8C200109, // 0017 GETMET R8 R0 K9
|
||||
0x5C280E00, // 0018 MOVE R10 R7
|
||||
0x7C200400, // 0019 CALL R8 2
|
||||
0x60200008, // 001A GETGBL R8 G8
|
||||
0x5C240E00, // 001B MOVE R9 R7
|
||||
0x7C200200, // 001C CALL R8 1
|
||||
0x00221608, // 001D ADD R8 K11 R8
|
||||
0x900E1408, // 001E SETMBR R3 K10 R8
|
||||
0x8C20010C, // 001F GETMET R8 R0 K12
|
||||
0x5828000D, // 0020 LDCONST R10 K13
|
||||
0x5C2C0E00, // 0021 MOVE R11 R7
|
||||
0x7C200600, // 0022 CALL R8 3
|
||||
0x50200200, // 0023 LDBOOL R8 1 0
|
||||
0x80041000, // 0024 RET 1 R8
|
||||
0x70020010, // 0025 JMP #0037
|
||||
0x541E0046, // 0026 LDINT R7 71
|
||||
0x1C1C0C07, // 0027 EQ R7 R6 R7
|
||||
0x781E0002, // 0028 JMPF R7 #002C
|
||||
0x501C0200, // 0029 LDBOOL R7 1 0
|
||||
0x80040E00, // 002A RET 1 R7
|
||||
0x7002000A, // 002B JMP #0037
|
||||
0x541E004A, // 002C LDINT R7 75
|
||||
0x1C1C0C07, // 002D EQ R7 R6 R7
|
||||
0x781E0002, // 002E JMPF R7 #0032
|
||||
0x501C0200, // 002F LDBOOL R7 1 0
|
||||
0x80040E00, // 0030 RET 1 R7
|
||||
0x70020004, // 0031 JMP #0037
|
||||
0x541E004B, // 0032 LDINT R7 76
|
||||
0x1C1C0C07, // 0033 EQ R7 R6 R7
|
||||
0x781E0001, // 0034 JMPF R7 #0037
|
||||
0x501C0200, // 0035 LDBOOL R7 1 0
|
||||
0x80040E00, // 0036 RET 1 R7
|
||||
0x70020008, // 0037 JMP #0041
|
||||
0x601C0003, // 0038 GETGBL R7 G3
|
||||
0x5C200000, // 0039 MOVE R8 R0
|
||||
0x7C1C0200, // 003A CALL R7 1
|
||||
0x8C1C0F0E, // 003B GETMET R7 R7 K14
|
||||
0x5C240200, // 003C MOVE R9 R1
|
||||
0x5C280400, // 003D MOVE R10 R2
|
||||
0x5C2C0600, // 003E MOVE R11 R3
|
||||
0x7C1C0800, // 003F CALL R7 4
|
||||
0x80040E00, // 0040 RET 1 R7
|
||||
0x80000000, // 0041 RET 0
|
||||
( &(const binstruction[18]) { /* code */
|
||||
0x60080009, // 0000 GETGBL R2 G9
|
||||
0x8C0C0300, // 0001 GETMET R3 R1 K0
|
||||
0x58140001, // 0002 LDCONST R5 K1
|
||||
0x7C0C0400, // 0003 CALL R3 2
|
||||
0x7C080200, // 0004 CALL R2 1
|
||||
0x4C0C0000, // 0005 LDNIL R3
|
||||
0x200C0403, // 0006 NE R3 R2 R3
|
||||
0x780E0002, // 0007 JMPF R3 #000B
|
||||
0x8C0C0102, // 0008 GETMET R3 R0 K2
|
||||
0x5C140400, // 0009 MOVE R5 R2
|
||||
0x7C0C0400, // 000A CALL R3 2
|
||||
0x600C0003, // 000B GETGBL R3 G3
|
||||
0x5C100000, // 000C MOVE R4 R0
|
||||
0x7C0C0200, // 000D CALL R3 1
|
||||
0x8C0C0703, // 000E GETMET R3 R3 K3
|
||||
0x5C140200, // 000F MOVE R5 R1
|
||||
0x7C0C0400, // 0010 CALL R3 2
|
||||
0x80000000, // 0011 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
|
@ -306,12 +165,89 @@ be_local_closure(class_Matter_Plugin_Light2_read_attribute, /* name */
|
|||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: update_virtual
|
||||
** Solidified function: update_shadow
|
||||
********************************************************************/
|
||||
extern const bclass be_class_Matter_Plugin_Light2;
|
||||
be_local_closure(class_Matter_Plugin_Light2_update_virtual, /* name */
|
||||
be_local_closure(class_Matter_Plugin_Light2_update_shadow, /* name */
|
||||
be_nested_proto(
|
||||
6, /* nstack */
|
||||
8, /* nstack */
|
||||
1, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
&be_class_Matter_Plugin_Light2,
|
||||
1, /* has constants */
|
||||
( &(const bvalue[11]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(VIRTUAL),
|
||||
/* K1 */ be_nested_str_weak(BRIDGE),
|
||||
/* K2 */ be_nested_str_weak(light),
|
||||
/* K3 */ be_nested_str_weak(update_ct_minmax),
|
||||
/* K4 */ be_nested_str_weak(update_shadow),
|
||||
/* K5 */ be_nested_str_weak(get),
|
||||
/* K6 */ be_nested_str_weak(light_index),
|
||||
/* K7 */ be_nested_str_weak(find),
|
||||
/* K8 */ be_nested_str_weak(ct),
|
||||
/* K9 */ be_nested_str_weak(shadow_ct),
|
||||
/* K10 */ be_nested_str_weak(attribute_updated),
|
||||
}),
|
||||
be_str_weak(update_shadow),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[41]) { /* code */
|
||||
0x88040100, // 0000 GETMBR R1 R0 K0
|
||||
0x74060020, // 0001 JMPT R1 #0023
|
||||
0x88040101, // 0002 GETMBR R1 R0 K1
|
||||
0x7406001E, // 0003 JMPT R1 #0023
|
||||
0xA4060400, // 0004 IMPORT R1 K2
|
||||
0x8C080103, // 0005 GETMET R2 R0 K3
|
||||
0x7C080200, // 0006 CALL R2 1
|
||||
0x60080003, // 0007 GETGBL R2 G3
|
||||
0x5C0C0000, // 0008 MOVE R3 R0
|
||||
0x7C080200, // 0009 CALL R2 1
|
||||
0x8C080504, // 000A GETMET R2 R2 K4
|
||||
0x7C080200, // 000B CALL R2 1
|
||||
0x8C080305, // 000C GETMET R2 R1 K5
|
||||
0x88100106, // 000D GETMBR R4 R0 K6
|
||||
0x7C080400, // 000E CALL R2 2
|
||||
0x4C0C0000, // 000F LDNIL R3
|
||||
0x200C0403, // 0010 NE R3 R2 R3
|
||||
0x780E000F, // 0011 JMPF R3 #0022
|
||||
0x8C0C0507, // 0012 GETMET R3 R2 K7
|
||||
0x58140008, // 0013 LDCONST R5 K8
|
||||
0x4C180000, // 0014 LDNIL R6
|
||||
0x7C0C0600, // 0015 CALL R3 3
|
||||
0x4C100000, // 0016 LDNIL R4
|
||||
0x1C100604, // 0017 EQ R4 R3 R4
|
||||
0x78120000, // 0018 JMPF R4 #001A
|
||||
0x880C0109, // 0019 GETMBR R3 R0 K9
|
||||
0x88100109, // 001A GETMBR R4 R0 K9
|
||||
0x20100604, // 001B NE R4 R3 R4
|
||||
0x78120004, // 001C JMPF R4 #0022
|
||||
0x8C10010A, // 001D GETMET R4 R0 K10
|
||||
0x541A02FF, // 001E LDINT R6 768
|
||||
0x541E0006, // 001F LDINT R7 7
|
||||
0x7C100600, // 0020 CALL R4 3
|
||||
0x90021203, // 0021 SETMBR R0 K9 R3
|
||||
0x70020004, // 0022 JMP #0028
|
||||
0x60040003, // 0023 GETGBL R1 G3
|
||||
0x5C080000, // 0024 MOVE R2 R0
|
||||
0x7C040200, // 0025 CALL R1 1
|
||||
0x8C040304, // 0026 GETMET R1 R1 K4
|
||||
0x7C040200, // 0027 CALL R1 1
|
||||
0x80000000, // 0028 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: set_ct
|
||||
********************************************************************/
|
||||
extern const bclass be_class_Matter_Plugin_Light2;
|
||||
be_local_closure(class_Matter_Plugin_Light2_set_ct, /* name */
|
||||
be_nested_proto(
|
||||
7, /* nstack */
|
||||
2, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
|
@ -319,170 +255,70 @@ be_local_closure(class_Matter_Plugin_Light2_update_virtual, /* name */
|
|||
0, /* has sup protos */
|
||||
&be_class_Matter_Plugin_Light2,
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 4]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(find),
|
||||
/* K1 */ be_nested_str_weak(CT),
|
||||
/* K2 */ be_nested_str_weak(set_ct),
|
||||
/* K3 */ be_nested_str_weak(update_virtual),
|
||||
( &(const bvalue[14]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(ct_min),
|
||||
/* K1 */ be_nested_str_weak(ct_max),
|
||||
/* K2 */ be_nested_str_weak(BRIDGE),
|
||||
/* K3 */ be_nested_str_weak(call_remote_sync),
|
||||
/* K4 */ be_nested_str_weak(CT),
|
||||
/* K5 */ be_nested_str_weak(parse_status),
|
||||
/* K6 */ be_nested_str_weak(VIRTUAL),
|
||||
/* K7 */ be_nested_str_weak(shadow_ct),
|
||||
/* K8 */ be_nested_str_weak(attribute_updated),
|
||||
/* K9 */ be_nested_str_weak(light),
|
||||
/* K10 */ be_nested_str_weak(set),
|
||||
/* K11 */ be_nested_str_weak(ct),
|
||||
/* K12 */ be_nested_str_weak(light_index),
|
||||
/* K13 */ be_nested_str_weak(update_shadow),
|
||||
}),
|
||||
be_str_weak(update_virtual),
|
||||
be_str_weak(set_ct),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[18]) { /* code */
|
||||
0x60080009, // 0000 GETGBL R2 G9
|
||||
0x8C0C0300, // 0001 GETMET R3 R1 K0
|
||||
0x58140001, // 0002 LDCONST R5 K1
|
||||
0x7C0C0400, // 0003 CALL R3 2
|
||||
0x7C080200, // 0004 CALL R2 1
|
||||
0x4C0C0000, // 0005 LDNIL R3
|
||||
0x200C0403, // 0006 NE R3 R2 R3
|
||||
0x780E0002, // 0007 JMPF R3 #000B
|
||||
0x8C0C0102, // 0008 GETMET R3 R0 K2
|
||||
0x5C140400, // 0009 MOVE R5 R2
|
||||
0x7C0C0400, // 000A CALL R3 2
|
||||
0x600C0003, // 000B GETGBL R3 G3
|
||||
0x5C100000, // 000C MOVE R4 R0
|
||||
0x7C0C0200, // 000D CALL R3 1
|
||||
0x8C0C0703, // 000E GETMET R3 R3 K3
|
||||
0x5C140200, // 000F MOVE R5 R1
|
||||
0x7C0C0400, // 0010 CALL R3 2
|
||||
0x80000000, // 0011 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: update_ct_minmax
|
||||
********************************************************************/
|
||||
extern const bclass be_class_Matter_Plugin_Light2;
|
||||
be_local_closure(class_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 */
|
||||
&be_class_Matter_Plugin_Light2,
|
||||
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: init
|
||||
********************************************************************/
|
||||
extern const bclass be_class_Matter_Plugin_Light2;
|
||||
be_local_closure(class_Matter_Plugin_Light2_init, /* name */
|
||||
be_nested_proto(
|
||||
9, /* nstack */
|
||||
4, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
&be_class_Matter_Plugin_Light2,
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 4]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(init),
|
||||
/* K1 */ be_nested_str_weak(BRIDGE),
|
||||
/* K2 */ be_nested_str_weak(shadow_ct),
|
||||
/* K3 */ be_nested_str_weak(update_ct_minmax),
|
||||
}),
|
||||
be_str_weak(init),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[15]) { /* 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
|
||||
0x88100101, // 0008 GETMBR R4 R0 K1
|
||||
0x74120001, // 0009 JMPT R4 #000C
|
||||
0x54120144, // 000A LDINT R4 325
|
||||
0x90020404, // 000B SETMBR R0 K2 R4
|
||||
0x8C100103, // 000C GETMET R4 R0 K3
|
||||
0x7C100200, // 000D CALL R4 1
|
||||
0x80000000, // 000E RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: web_values
|
||||
********************************************************************/
|
||||
extern const bclass be_class_Matter_Plugin_Light2;
|
||||
be_local_closure(class_Matter_Plugin_Light2_web_values, /* name */
|
||||
be_nested_proto(
|
||||
10, /* nstack */
|
||||
1, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
&be_class_Matter_Plugin_Light2,
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 8]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(webserver),
|
||||
/* K1 */ be_nested_str_weak(web_values_prefix),
|
||||
/* K2 */ be_nested_str_weak(content_send),
|
||||
/* K3 */ be_nested_str_weak(_X25s_X20_X25s_X20_X25s),
|
||||
/* K4 */ be_nested_str_weak(web_value_onoff),
|
||||
/* K5 */ be_nested_str_weak(shadow_onoff),
|
||||
/* K6 */ be_nested_str_weak(web_value_dimmer),
|
||||
/* K7 */ be_nested_str_weak(web_value_ct),
|
||||
}),
|
||||
be_str_weak(web_values),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[16]) { /* code */
|
||||
0xA4060000, // 0000 IMPORT R1 K0
|
||||
0x8C080101, // 0001 GETMET R2 R0 K1
|
||||
0x7C080200, // 0002 CALL R2 1
|
||||
0x8C080302, // 0003 GETMET R2 R1 K2
|
||||
0x60100018, // 0004 GETGBL R4 G24
|
||||
0x58140003, // 0005 LDCONST R5 K3
|
||||
0x8C180104, // 0006 GETMET R6 R0 K4
|
||||
0x88200105, // 0007 GETMBR R8 R0 K5
|
||||
0x7C180400, // 0008 CALL R6 2
|
||||
0x8C1C0106, // 0009 GETMET R7 R0 K6
|
||||
0x7C1C0200, // 000A CALL R7 1
|
||||
0x8C200107, // 000B GETMET R8 R0 K7
|
||||
0x7C200200, // 000C CALL R8 1
|
||||
0x7C100800, // 000D CALL R4 4
|
||||
0x7C080400, // 000E CALL R2 2
|
||||
0x80000000, // 000F RET 0
|
||||
( &(const binstruction[45]) { /* 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
|
||||
0x780A000D, // 0009 JMPF R2 #0018
|
||||
0x8C080103, // 000A GETMET R2 R0 K3
|
||||
0x58100004, // 000B LDCONST R4 K4
|
||||
0x60140008, // 000C GETGBL R5 G8
|
||||
0x5C180200, // 000D MOVE R6 R1
|
||||
0x7C140200, // 000E CALL R5 1
|
||||
0x7C080600, // 000F CALL R2 3
|
||||
0x4C0C0000, // 0010 LDNIL R3
|
||||
0x200C0403, // 0011 NE R3 R2 R3
|
||||
0x780E0003, // 0012 JMPF R3 #0017
|
||||
0x8C0C0105, // 0013 GETMET R3 R0 K5
|
||||
0x5C140400, // 0014 MOVE R5 R2
|
||||
0x541A000A, // 0015 LDINT R6 11
|
||||
0x7C0C0600, // 0016 CALL R3 3
|
||||
0x70020013, // 0017 JMP #002C
|
||||
0x88080106, // 0018 GETMBR R2 R0 K6
|
||||
0x780A0008, // 0019 JMPF R2 #0023
|
||||
0x88080107, // 001A GETMBR R2 R0 K7
|
||||
0x20080202, // 001B NE R2 R1 R2
|
||||
0x780A0004, // 001C JMPF R2 #0022
|
||||
0x8C080108, // 001D GETMET R2 R0 K8
|
||||
0x541202FF, // 001E LDINT R4 768
|
||||
0x54160006, // 001F LDINT R5 7
|
||||
0x7C080600, // 0020 CALL R2 3
|
||||
0x90020E01, // 0021 SETMBR R0 K7 R1
|
||||
0x70020008, // 0022 JMP #002C
|
||||
0xA40A1200, // 0023 IMPORT R2 K9
|
||||
0x8C0C050A, // 0024 GETMET R3 R2 K10
|
||||
0x60140013, // 0025 GETGBL R5 G19
|
||||
0x7C140000, // 0026 CALL R5 0
|
||||
0x98161601, // 0027 SETIDX R5 K11 R1
|
||||
0x8818010C, // 0028 GETMBR R6 R0 K12
|
||||
0x7C0C0600, // 0029 CALL R3 3
|
||||
0x8C0C010D, // 002A GETMET R3 R0 K13
|
||||
0x7C0C0200, // 002B CALL R3 1
|
||||
0x80000000, // 002C RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
|
@ -607,12 +443,12 @@ be_local_closure(class_Matter_Plugin_Light2_web_value_ct, /* name */
|
|||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: update_shadow
|
||||
** Solidified function: web_values
|
||||
********************************************************************/
|
||||
extern const bclass be_class_Matter_Plugin_Light2;
|
||||
be_local_closure(class_Matter_Plugin_Light2_update_shadow, /* name */
|
||||
be_local_closure(class_Matter_Plugin_Light2_web_values, /* name */
|
||||
be_nested_proto(
|
||||
8, /* nstack */
|
||||
10, /* nstack */
|
||||
1, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
|
@ -620,61 +456,241 @@ be_local_closure(class_Matter_Plugin_Light2_update_shadow, /* name */
|
|||
0, /* has sup protos */
|
||||
&be_class_Matter_Plugin_Light2,
|
||||
1, /* has constants */
|
||||
( &(const bvalue[10]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(VIRTUAL),
|
||||
/* K1 */ be_nested_str_weak(BRIDGE),
|
||||
/* K2 */ be_nested_str_weak(light),
|
||||
/* K3 */ be_nested_str_weak(update_ct_minmax),
|
||||
/* K4 */ be_nested_str_weak(update_shadow),
|
||||
/* K5 */ be_nested_str_weak(get),
|
||||
/* K6 */ be_nested_str_weak(find),
|
||||
/* K7 */ be_nested_str_weak(ct),
|
||||
/* K8 */ be_nested_str_weak(shadow_ct),
|
||||
/* K9 */ be_nested_str_weak(attribute_updated),
|
||||
( &(const bvalue[ 8]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(webserver),
|
||||
/* K1 */ be_nested_str_weak(web_values_prefix),
|
||||
/* K2 */ be_nested_str_weak(content_send),
|
||||
/* K3 */ be_nested_str_weak(_X25s_X20_X25s_X20_X25s),
|
||||
/* K4 */ be_nested_str_weak(web_value_onoff),
|
||||
/* K5 */ be_nested_str_weak(shadow_onoff),
|
||||
/* K6 */ be_nested_str_weak(web_value_dimmer),
|
||||
/* K7 */ be_nested_str_weak(web_value_ct),
|
||||
}),
|
||||
be_str_weak(update_shadow),
|
||||
be_str_weak(web_values),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[40]) { /* code */
|
||||
0x88040100, // 0000 GETMBR R1 R0 K0
|
||||
0x7406001F, // 0001 JMPT R1 #0022
|
||||
0x88040101, // 0002 GETMBR R1 R0 K1
|
||||
0x7406001D, // 0003 JMPT R1 #0022
|
||||
0xA4060400, // 0004 IMPORT R1 K2
|
||||
0x8C080103, // 0005 GETMET R2 R0 K3
|
||||
0x7C080200, // 0006 CALL R2 1
|
||||
0x60080003, // 0007 GETGBL R2 G3
|
||||
0x5C0C0000, // 0008 MOVE R3 R0
|
||||
0x7C080200, // 0009 CALL R2 1
|
||||
0x8C080504, // 000A GETMET R2 R2 K4
|
||||
0x7C080200, // 000B CALL R2 1
|
||||
0x8C080305, // 000C GETMET R2 R1 K5
|
||||
0x7C080200, // 000D CALL R2 1
|
||||
0x4C0C0000, // 000E LDNIL R3
|
||||
0x200C0403, // 000F NE R3 R2 R3
|
||||
0x780E000F, // 0010 JMPF R3 #0021
|
||||
0x8C0C0506, // 0011 GETMET R3 R2 K6
|
||||
0x58140007, // 0012 LDCONST R5 K7
|
||||
0x4C180000, // 0013 LDNIL R6
|
||||
0x7C0C0600, // 0014 CALL R3 3
|
||||
0x4C100000, // 0015 LDNIL R4
|
||||
0x1C100604, // 0016 EQ R4 R3 R4
|
||||
0x78120000, // 0017 JMPF R4 #0019
|
||||
0x880C0108, // 0018 GETMBR R3 R0 K8
|
||||
0x88100108, // 0019 GETMBR R4 R0 K8
|
||||
0x20100604, // 001A NE R4 R3 R4
|
||||
0x78120004, // 001B JMPF R4 #0021
|
||||
0x8C100109, // 001C GETMET R4 R0 K9
|
||||
0x541A02FF, // 001D LDINT R6 768
|
||||
0x541E0006, // 001E LDINT R7 7
|
||||
0x7C100600, // 001F CALL R4 3
|
||||
0x90021003, // 0020 SETMBR R0 K8 R3
|
||||
0x70020004, // 0021 JMP #0027
|
||||
0x60040003, // 0022 GETGBL R1 G3
|
||||
0x5C080000, // 0023 MOVE R2 R0
|
||||
0x7C040200, // 0024 CALL R1 1
|
||||
0x8C040304, // 0025 GETMET R1 R1 K4
|
||||
0x7C040200, // 0026 CALL R1 1
|
||||
0x80000000, // 0027 RET 0
|
||||
( &(const binstruction[16]) { /* code */
|
||||
0xA4060000, // 0000 IMPORT R1 K0
|
||||
0x8C080101, // 0001 GETMET R2 R0 K1
|
||||
0x7C080200, // 0002 CALL R2 1
|
||||
0x8C080302, // 0003 GETMET R2 R1 K2
|
||||
0x60100018, // 0004 GETGBL R4 G24
|
||||
0x58140003, // 0005 LDCONST R5 K3
|
||||
0x8C180104, // 0006 GETMET R6 R0 K4
|
||||
0x88200105, // 0007 GETMBR R8 R0 K5
|
||||
0x7C180400, // 0008 CALL R6 2
|
||||
0x8C1C0106, // 0009 GETMET R7 R0 K6
|
||||
0x7C1C0200, // 000A CALL R7 1
|
||||
0x8C200107, // 000B GETMET R8 R0 K7
|
||||
0x7C200200, // 000C CALL R8 1
|
||||
0x7C100800, // 000D CALL R4 4
|
||||
0x7C080400, // 000E CALL R2 2
|
||||
0x80000000, // 000F RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: init
|
||||
********************************************************************/
|
||||
extern const bclass be_class_Matter_Plugin_Light2;
|
||||
be_local_closure(class_Matter_Plugin_Light2_init, /* name */
|
||||
be_nested_proto(
|
||||
9, /* nstack */
|
||||
4, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
&be_class_Matter_Plugin_Light2,
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 8]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(init),
|
||||
/* K1 */ be_nested_str_weak(BRIDGE),
|
||||
/* K2 */ be_nested_str_weak(shadow_ct),
|
||||
/* K3 */ be_nested_str_weak(light),
|
||||
/* K4 */ be_nested_str_weak(get),
|
||||
/* K5 */ be_const_int(1),
|
||||
/* K6 */ be_nested_str_weak(light_index),
|
||||
/* K7 */ be_nested_str_weak(update_ct_minmax),
|
||||
}),
|
||||
be_str_weak(init),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[23]) { /* 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
|
||||
0x88100101, // 0008 GETMBR R4 R0 K1
|
||||
0x74120009, // 0009 JMPT R4 #0014
|
||||
0x54120144, // 000A LDINT R4 325
|
||||
0x90020404, // 000B SETMBR R0 K2 R4
|
||||
0xA4120600, // 000C IMPORT R4 K3
|
||||
0x8C140904, // 000D GETMET R5 R4 K4
|
||||
0x581C0005, // 000E LDCONST R7 K5
|
||||
0x7C140400, // 000F CALL R5 2
|
||||
0x4C180000, // 0010 LDNIL R6
|
||||
0x20140A06, // 0011 NE R5 R5 R6
|
||||
0x78160000, // 0012 JMPF R5 #0014
|
||||
0x90020D05, // 0013 SETMBR R0 K6 K5
|
||||
0x8C100107, // 0014 GETMET R4 R0 K7
|
||||
0x7C100200, // 0015 CALL R4 1
|
||||
0x80000000, // 0016 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: invoke_request
|
||||
********************************************************************/
|
||||
extern const bclass be_class_Matter_Plugin_Light2;
|
||||
be_local_closure(class_Matter_Plugin_Light2_invoke_request, /* name */
|
||||
be_nested_proto(
|
||||
12, /* nstack */
|
||||
4, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
&be_class_Matter_Plugin_Light2,
|
||||
1, /* has constants */
|
||||
( &(const bvalue[15]) { /* 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_nested_str_weak(update_shadow_lazy),
|
||||
/* K5 */ be_nested_str_weak(findsubval),
|
||||
/* K6 */ be_const_int(0),
|
||||
/* K7 */ be_nested_str_weak(ct_min),
|
||||
/* K8 */ be_nested_str_weak(ct_max),
|
||||
/* K9 */ be_nested_str_weak(set_ct),
|
||||
/* K10 */ be_nested_str_weak(log),
|
||||
/* K11 */ be_nested_str_weak(ct_X3A),
|
||||
/* K12 */ be_nested_str_weak(publish_command),
|
||||
/* K13 */ be_nested_str_weak(CT),
|
||||
/* K14 */ be_nested_str_weak(invoke_request),
|
||||
}),
|
||||
be_str_weak(invoke_request),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[66]) { /* 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
|
||||
0x781E0030, // 0006 JMPF R7 #0038
|
||||
0x8C1C0104, // 0007 GETMET R7 R0 K4
|
||||
0x7C1C0200, // 0008 CALL R7 1
|
||||
0x541E0009, // 0009 LDINT R7 10
|
||||
0x1C1C0C07, // 000A EQ R7 R6 R7
|
||||
0x781E0019, // 000B JMPF R7 #0026
|
||||
0x8C1C0505, // 000C GETMET R7 R2 K5
|
||||
0x58240006, // 000D LDCONST R9 K6
|
||||
0x7C1C0400, // 000E CALL R7 2
|
||||
0x88200107, // 000F GETMBR R8 R0 K7
|
||||
0x14200E08, // 0010 LT R8 R7 R8
|
||||
0x78220000, // 0011 JMPF R8 #0013
|
||||
0x881C0107, // 0012 GETMBR R7 R0 K7
|
||||
0x88200108, // 0013 GETMBR R8 R0 K8
|
||||
0x24200E08, // 0014 GT R8 R7 R8
|
||||
0x78220000, // 0015 JMPF R8 #0017
|
||||
0x881C0108, // 0016 GETMBR R7 R0 K8
|
||||
0x8C200109, // 0017 GETMET R8 R0 K9
|
||||
0x5C280E00, // 0018 MOVE R10 R7
|
||||
0x7C200400, // 0019 CALL R8 2
|
||||
0x60200008, // 001A GETGBL R8 G8
|
||||
0x5C240E00, // 001B MOVE R9 R7
|
||||
0x7C200200, // 001C CALL R8 1
|
||||
0x00221608, // 001D ADD R8 K11 R8
|
||||
0x900E1408, // 001E SETMBR R3 K10 R8
|
||||
0x8C20010C, // 001F GETMET R8 R0 K12
|
||||
0x5828000D, // 0020 LDCONST R10 K13
|
||||
0x5C2C0E00, // 0021 MOVE R11 R7
|
||||
0x7C200600, // 0022 CALL R8 3
|
||||
0x50200200, // 0023 LDBOOL R8 1 0
|
||||
0x80041000, // 0024 RET 1 R8
|
||||
0x70020010, // 0025 JMP #0037
|
||||
0x541E0046, // 0026 LDINT R7 71
|
||||
0x1C1C0C07, // 0027 EQ R7 R6 R7
|
||||
0x781E0002, // 0028 JMPF R7 #002C
|
||||
0x501C0200, // 0029 LDBOOL R7 1 0
|
||||
0x80040E00, // 002A RET 1 R7
|
||||
0x7002000A, // 002B JMP #0037
|
||||
0x541E004A, // 002C LDINT R7 75
|
||||
0x1C1C0C07, // 002D EQ R7 R6 R7
|
||||
0x781E0002, // 002E JMPF R7 #0032
|
||||
0x501C0200, // 002F LDBOOL R7 1 0
|
||||
0x80040E00, // 0030 RET 1 R7
|
||||
0x70020004, // 0031 JMP #0037
|
||||
0x541E004B, // 0032 LDINT R7 76
|
||||
0x1C1C0C07, // 0033 EQ R7 R6 R7
|
||||
0x781E0001, // 0034 JMPF R7 #0037
|
||||
0x501C0200, // 0035 LDBOOL R7 1 0
|
||||
0x80040E00, // 0036 RET 1 R7
|
||||
0x70020008, // 0037 JMP #0041
|
||||
0x601C0003, // 0038 GETGBL R7 G3
|
||||
0x5C200000, // 0039 MOVE R8 R0
|
||||
0x7C1C0200, // 003A CALL R7 1
|
||||
0x8C1C0F0E, // 003B GETMET R7 R7 K14
|
||||
0x5C240200, // 003C MOVE R9 R1
|
||||
0x5C280400, // 003D MOVE R10 R2
|
||||
0x5C2C0600, // 003E MOVE R11 R3
|
||||
0x7C1C0800, // 003F CALL R7 4
|
||||
0x80040E00, // 0040 RET 1 R7
|
||||
0x80000000, // 0041 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: update_ct_minmax
|
||||
********************************************************************/
|
||||
extern const bclass be_class_Matter_Plugin_Light2;
|
||||
be_local_closure(class_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 */
|
||||
&be_class_Matter_Plugin_Light2,
|
||||
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
|
||||
})
|
||||
)
|
||||
);
|
||||
|
@ -688,22 +704,26 @@ extern const bclass be_class_Matter_Plugin_Light1;
|
|||
be_local_class(Matter_Plugin_Light2,
|
||||
3,
|
||||
&be_class_Matter_Plugin_Light1,
|
||||
be_nested_map(18,
|
||||
be_nested_map(20,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_weak(update_shadow, -1), be_const_closure(class_Matter_Plugin_Light2_update_shadow_closure) },
|
||||
{ be_const_key_weak(set_ct, 13), be_const_closure(class_Matter_Plugin_Light2_set_ct_closure) },
|
||||
{ be_const_key_weak(update_virtual, -1), be_const_closure(class_Matter_Plugin_Light2_update_virtual_closure) },
|
||||
{ be_const_key_weak(DISPLAY_NAME, 6), be_nested_str_weak(Light_X202_X20CT) },
|
||||
{ be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Light2_read_attribute_closure) },
|
||||
{ be_const_key_weak(ct_max, 18), be_const_var(2) },
|
||||
{ be_const_key_weak(ARG, -1), be_nested_str_weak() },
|
||||
{ be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(_Not_X20used_) },
|
||||
{ be_const_key_weak(shadow_ct, -1), be_const_var(0) },
|
||||
{ be_const_key_weak(set_ct, 16), be_const_closure(class_Matter_Plugin_Light2_set_ct_closure) },
|
||||
{ be_const_key_weak(TYPE, -1), be_nested_str_weak(light2) },
|
||||
{ be_const_key_weak(update_shadow, 8), be_const_closure(class_Matter_Plugin_Light2_update_shadow_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_const_key_weak(UPDATE_COMMANDS, 17), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
|
||||
be_const_list( * be_nested_list(3,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_nested_str_weak(Power),
|
||||
be_nested_str_weak(Bri),
|
||||
be_nested_str_weak(CT),
|
||||
})) ) } )) },
|
||||
{ be_const_key_weak(web_value_ct, -1), be_const_closure(class_Matter_Plugin_Light2_web_value_ct_closure) },
|
||||
{ be_const_key_weak(web_values, -1), be_const_closure(class_Matter_Plugin_Light2_web_values_closure) },
|
||||
{ be_const_key_weak(ct_min, -1), be_const_var(1) },
|
||||
{ be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
|
||||
be_const_map( * be_nested_map(8,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
|
@ -818,19 +838,17 @@ be_local_class(Matter_Plugin_Light2,
|
|||
be_const_int(65533),
|
||||
})) ) } )) },
|
||||
})) ) } )) },
|
||||
{ be_const_key_weak(init, -1), be_const_closure(class_Matter_Plugin_Light2_init_closure) },
|
||||
{ be_const_key_weak(invoke_request, -1), be_const_closure(class_Matter_Plugin_Light2_invoke_request_closure) },
|
||||
{ be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Light2_read_attribute_closure) },
|
||||
{ be_const_key_weak(shadow_ct, 0), be_const_var(0) },
|
||||
{ be_const_key_weak(update_virtual, -1), be_const_closure(class_Matter_Plugin_Light2_update_virtual_closure) },
|
||||
{ be_const_key_weak(DISPLAY_NAME, 16), be_nested_str_weak(Light_X202_X20CT) },
|
||||
{ be_const_key_weak(web_value_ct, 11), be_const_closure(class_Matter_Plugin_Light2_web_value_ct_closure) },
|
||||
{ be_const_key_weak(parse_status, -1), be_const_closure(class_Matter_Plugin_Light2_parse_status_closure) },
|
||||
{ be_const_key_weak(TYPE, -1), be_nested_str_weak(light2) },
|
||||
{ be_const_key_weak(ct_min, 12), be_const_var(1) },
|
||||
{ be_const_key_weak(web_values, -1), be_const_closure(class_Matter_Plugin_Light2_web_values_closure) },
|
||||
{ be_const_key_weak(init, 10), be_const_closure(class_Matter_Plugin_Light2_init_closure) },
|
||||
{ be_const_key_weak(update_ct_minmax, -1), be_const_closure(class_Matter_Plugin_Light2_update_ct_minmax_closure) },
|
||||
{ be_const_key_weak(ct_max, -1), be_const_var(2) },
|
||||
{ be_const_key_weak(parse_status, -1), be_const_closure(class_Matter_Plugin_Light2_parse_status_closure) },
|
||||
{ be_const_key_weak(UPDATE_COMMANDS, 4), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
|
||||
be_const_list( * be_nested_list(3,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_nested_str_weak(Power),
|
||||
be_nested_str_weak(Bri),
|
||||
be_nested_str_weak(CT),
|
||||
})) ) } )) },
|
||||
})),
|
||||
be_str_weak(Matter_Plugin_Light2)
|
||||
);
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -40,13 +40,14 @@ extern const bclass be_class_Matter_Plugin_Light1;
|
|||
be_local_class(Matter_Plugin_Bridge_Light1,
|
||||
0,
|
||||
&be_class_Matter_Plugin_Light1,
|
||||
be_nested_map(5,
|
||||
be_nested_map(6,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_weak(TYPE, 3), be_nested_str_weak(http_light1) },
|
||||
{ be_const_key_weak(UPDATE_TIME, 2), be_const_int(3000) },
|
||||
{ be_const_key_weak(UPDATE_TIME, -1), be_const_int(3000) },
|
||||
{ be_const_key_weak(TYPE, -1), be_nested_str_weak(http_light1) },
|
||||
{ be_const_key_weak(BRIDGE, -1), be_const_bool(1) },
|
||||
{ be_const_key_weak(ARG_HINT, 5), be_nested_str_weak(Relay_X3Cx_X3E_X20number) },
|
||||
{ be_const_key_weak(ARG_TYPE, -1), be_const_static_closure(class_Matter_Plugin_Bridge_Light1__X3Clambda_X3E_closure) },
|
||||
{ be_const_key_weak(ARG, -1), be_nested_str_weak(relay) },
|
||||
{ be_const_key_weak(ARG_TYPE, 0), be_const_static_closure(class_Matter_Plugin_Bridge_Light1__X3Clambda_X3E_closure) },
|
||||
})),
|
||||
be_str_weak(Matter_Plugin_Bridge_Light1)
|
||||
);
|
||||
|
|
|
@ -40,13 +40,14 @@ extern const bclass be_class_Matter_Plugin_Light2;
|
|||
be_local_class(Matter_Plugin_Bridge_Light2,
|
||||
0,
|
||||
&be_class_Matter_Plugin_Light2,
|
||||
be_nested_map(5,
|
||||
be_nested_map(6,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_weak(TYPE, 3), be_nested_str_weak(http_light2) },
|
||||
{ be_const_key_weak(UPDATE_TIME, 2), be_const_int(3000) },
|
||||
{ be_const_key_weak(UPDATE_TIME, -1), be_const_int(3000) },
|
||||
{ be_const_key_weak(TYPE, -1), be_nested_str_weak(http_light2) },
|
||||
{ be_const_key_weak(BRIDGE, -1), be_const_bool(1) },
|
||||
{ be_const_key_weak(ARG_HINT, 5), be_nested_str_weak(Relay_X3Cx_X3E_X20number) },
|
||||
{ be_const_key_weak(ARG_TYPE, -1), be_const_static_closure(class_Matter_Plugin_Bridge_Light2__X3Clambda_X3E_closure) },
|
||||
{ be_const_key_weak(ARG, -1), be_nested_str_weak(relay) },
|
||||
{ be_const_key_weak(ARG_TYPE, 0), be_const_static_closure(class_Matter_Plugin_Bridge_Light2__X3Clambda_X3E_closure) },
|
||||
})),
|
||||
be_str_weak(Matter_Plugin_Bridge_Light2)
|
||||
);
|
||||
|
|
|
@ -40,13 +40,14 @@ extern const bclass be_class_Matter_Plugin_Light3;
|
|||
be_local_class(Matter_Plugin_Bridge_Light3,
|
||||
0,
|
||||
&be_class_Matter_Plugin_Light3,
|
||||
be_nested_map(5,
|
||||
be_nested_map(6,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_weak(TYPE, 3), be_nested_str_weak(http_light3) },
|
||||
{ be_const_key_weak(UPDATE_TIME, 2), be_const_int(3000) },
|
||||
{ be_const_key_weak(UPDATE_TIME, -1), be_const_int(3000) },
|
||||
{ be_const_key_weak(TYPE, -1), be_nested_str_weak(http_light3) },
|
||||
{ be_const_key_weak(BRIDGE, -1), be_const_bool(1) },
|
||||
{ be_const_key_weak(ARG_HINT, 5), be_nested_str_weak(Relay_X3Cx_X3E_X20number) },
|
||||
{ be_const_key_weak(ARG_TYPE, -1), be_const_static_closure(class_Matter_Plugin_Bridge_Light3__X3Clambda_X3E_closure) },
|
||||
{ be_const_key_weak(ARG, -1), be_nested_str_weak(relay) },
|
||||
{ be_const_key_weak(ARG_TYPE, 0), be_const_static_closure(class_Matter_Plugin_Bridge_Light3__X3Clambda_X3E_closure) },
|
||||
})),
|
||||
be_str_weak(Matter_Plugin_Bridge_Light3)
|
||||
);
|
||||
|
|
|
@ -5795,24 +5795,24 @@ be_local_closure(class_Matter_Device_autoconf_device_map, /* name */
|
|||
/* K0 */ be_nested_str_weak(json),
|
||||
/* K1 */ be_nested_str_weak(matter),
|
||||
/* K2 */ be_nested_str_weak(START_ENDPOINT),
|
||||
/* K3 */ be_nested_str_weak(light),
|
||||
/* K4 */ be_nested_str_weak(get),
|
||||
/* K5 */ be_nested_str_weak(find),
|
||||
/* K6 */ be_nested_str_weak(channels),
|
||||
/* K7 */ be_nested_str_weak(),
|
||||
/* K8 */ be_const_int(0),
|
||||
/* K3 */ be_const_int(0),
|
||||
/* K4 */ be_nested_str_weak(light),
|
||||
/* K5 */ be_nested_str_weak(get),
|
||||
/* K6 */ be_nested_str_weak(find),
|
||||
/* K7 */ be_nested_str_weak(channels),
|
||||
/* K8 */ be_nested_str_weak(),
|
||||
/* K9 */ be_const_int(1),
|
||||
/* K10 */ be_nested_str_weak(type),
|
||||
/* K11 */ be_nested_str_weak(light1),
|
||||
/* K12 */ be_const_int(2),
|
||||
/* K13 */ be_nested_str_weak(light2),
|
||||
/* K14 */ be_nested_str_weak(light3),
|
||||
/* K15 */ be_nested_str_weak(tasmota),
|
||||
/* K16 */ be_nested_str_weak(cmd),
|
||||
/* K17 */ be_nested_str_weak(Status_X2013),
|
||||
/* K18 */ be_nested_str_weak(log),
|
||||
/* K19 */ be_nested_str_weak(MTR_X3A_X20Status_X2013_X20_X3D_X20),
|
||||
/* K20 */ be_const_int(3),
|
||||
/* K14 */ be_const_int(3),
|
||||
/* K15 */ be_nested_str_weak(light3),
|
||||
/* K16 */ be_nested_str_weak(tasmota),
|
||||
/* K17 */ be_nested_str_weak(cmd),
|
||||
/* K18 */ be_nested_str_weak(Status_X2013),
|
||||
/* K19 */ be_nested_str_weak(log),
|
||||
/* K20 */ be_nested_str_weak(MTR_X3A_X20Status_X2013_X20_X3D_X20),
|
||||
/* K21 */ be_nested_str_weak(contains),
|
||||
/* K22 */ be_nested_str_weak(StatusSHT),
|
||||
/* K23 */ be_nested_str_weak(SHT),
|
||||
|
@ -5833,203 +5833,269 @@ be_local_closure(class_Matter_Device_autoconf_device_map, /* name */
|
|||
}),
|
||||
be_str_weak(autoconf_device_map),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[196]) { /* code */
|
||||
( &(const binstruction[262]) { /* code */
|
||||
0xA4060000, // 0000 IMPORT R1 K0
|
||||
0x60080013, // 0001 GETGBL R2 G19
|
||||
0x7C080000, // 0002 CALL R2 0
|
||||
0xB80E0200, // 0003 GETNGBL R3 K1
|
||||
0x880C0702, // 0004 GETMBR R3 R3 K2
|
||||
0x50100000, // 0005 LDBOOL R4 0 0
|
||||
0xA4160600, // 0006 IMPORT R5 K3
|
||||
0x8C180B04, // 0007 GETMET R6 R5 K4
|
||||
0x7C180200, // 0008 CALL R6 1
|
||||
0x4C1C0000, // 0009 LDNIL R7
|
||||
0x201C0C07, // 000A NE R7 R6 R7
|
||||
0x781E0024, // 000B JMPF R7 #0031
|
||||
0x601C000C, // 000C GETGBL R7 G12
|
||||
0x8C200D05, // 000D GETMET R8 R6 K5
|
||||
0x58280006, // 000E LDCONST R10 K6
|
||||
0x582C0007, // 000F LDCONST R11 K7
|
||||
0x7C200600, // 0010 CALL R8 3
|
||||
0x7C1C0200, // 0011 CALL R7 1
|
||||
0x24200F08, // 0012 GT R8 R7 K8
|
||||
0x7822001C, // 0013 JMPF R8 #0031
|
||||
0x1C200F09, // 0014 EQ R8 R7 K9
|
||||
0x78220007, // 0015 JMPF R8 #001E
|
||||
0x60200008, // 0016 GETGBL R8 G8
|
||||
0x5C240600, // 0017 MOVE R9 R3
|
||||
0x7C200200, // 0018 CALL R8 1
|
||||
0x60240013, // 0019 GETGBL R9 G19
|
||||
0x7C240000, // 001A CALL R9 0
|
||||
0x9826150B, // 001B SETIDX R9 K10 K11
|
||||
0x98081009, // 001C SETIDX R2 R8 R9
|
||||
0x70020010, // 001D JMP #002F
|
||||
0x1C200F0C, // 001E EQ R8 R7 K12
|
||||
0x78220007, // 001F JMPF R8 #0028
|
||||
0x60200008, // 0020 GETGBL R8 G8
|
||||
0x5C240600, // 0021 MOVE R9 R3
|
||||
0x7C200200, // 0022 CALL R8 1
|
||||
0x60240013, // 0023 GETGBL R9 G19
|
||||
0x7C240000, // 0024 CALL R9 0
|
||||
0x9826150D, // 0025 SETIDX R9 K10 K13
|
||||
0x98081009, // 0026 SETIDX R2 R8 R9
|
||||
0x70020006, // 0027 JMP #002F
|
||||
0x60200008, // 0028 GETGBL R8 G8
|
||||
0x5C240600, // 0029 MOVE R9 R3
|
||||
0x7C200200, // 002A CALL R8 1
|
||||
0x60240013, // 002B GETGBL R9 G19
|
||||
0x7C240000, // 002C CALL R9 0
|
||||
0x9826150E, // 002D SETIDX R9 K10 K14
|
||||
0x98081009, // 002E SETIDX R2 R8 R9
|
||||
0x50100200, // 002F LDBOOL R4 1 0
|
||||
0x000C0709, // 0030 ADD R3 R3 K9
|
||||
0xB81E1E00, // 0031 GETNGBL R7 K15
|
||||
0x8C1C0F10, // 0032 GETMET R7 R7 K16
|
||||
0x58240011, // 0033 LDCONST R9 K17
|
||||
0x50280200, // 0034 LDBOOL R10 1 0
|
||||
0x7C1C0600, // 0035 CALL R7 3
|
||||
0x60200012, // 0036 GETGBL R8 G18
|
||||
0x7C200000, // 0037 CALL R8 0
|
||||
0xB8262400, // 0038 GETNGBL R9 K18
|
||||
0x60280008, // 0039 GETGBL R10 G8
|
||||
0x5C2C0E00, // 003A MOVE R11 R7
|
||||
0x7C280200, // 003B CALL R10 1
|
||||
0x002A260A, // 003C ADD R10 K19 R10
|
||||
0x582C0014, // 003D LDCONST R11 K20
|
||||
0x7C240400, // 003E CALL R9 2
|
||||
0x4C240000, // 003F LDNIL R9
|
||||
0x20240E09, // 0040 NE R9 R7 R9
|
||||
0x7826004D, // 0041 JMPF R9 #0090
|
||||
0x8C240F15, // 0042 GETMET R9 R7 K21
|
||||
0x582C0016, // 0043 LDCONST R11 K22
|
||||
0x7C240400, // 0044 CALL R9 2
|
||||
0x78260049, // 0045 JMPF R9 #0090
|
||||
0x941C0F16, // 0046 GETIDX R7 R7 K22
|
||||
0x58240008, // 0047 LDCONST R9 K8
|
||||
0x50280200, // 0048 LDBOOL R10 1 0
|
||||
0x782A0045, // 0049 JMPF R10 #0090
|
||||
0x60280008, // 004A GETGBL R10 G8
|
||||
0x5C2C1200, // 004B MOVE R11 R9
|
||||
0x7C280200, // 004C CALL R10 1
|
||||
0x002A2E0A, // 004D ADD R10 K23 R10
|
||||
0x8C2C0F15, // 004E GETMET R11 R7 K21
|
||||
0x5C341400, // 004F MOVE R13 R10
|
||||
0x7C2C0400, // 0050 CALL R11 2
|
||||
0x742E0000, // 0051 JMPT R11 #0053
|
||||
0x7002003C, // 0052 JMP #0090
|
||||
0x942C0E0A, // 0053 GETIDX R11 R7 R10
|
||||
0xB8322400, // 0054 GETNGBL R12 K18
|
||||
0x60340018, // 0055 GETGBL R13 G24
|
||||
0x58380018, // 0056 LDCONST R14 K24
|
||||
0x5C3C1400, // 0057 MOVE R15 R10
|
||||
0x60400008, // 0058 GETGBL R16 G8
|
||||
0x5C441600, // 0059 MOVE R17 R11
|
||||
0x7C400200, // 005A CALL R16 1
|
||||
0x7C340600, // 005B CALL R13 3
|
||||
0x58380014, // 005C LDCONST R14 K20
|
||||
0x7C300400, // 005D CALL R12 2
|
||||
0x8C301705, // 005E GETMET R12 R11 K5
|
||||
0x58380019, // 005F LDCONST R14 K25
|
||||
0x543DFFFE, // 0060 LDINT R15 -1
|
||||
0x7C300600, // 0061 CALL R12 3
|
||||
0x8C341705, // 0062 GETMET R13 R11 K5
|
||||
0x583C001A, // 0063 LDCONST R15 K26
|
||||
0x5441FFFE, // 0064 LDINT R16 -1
|
||||
0x7C340600, // 0065 CALL R13 3
|
||||
0x24381908, // 0066 GT R14 R12 K8
|
||||
0x783A0002, // 0067 JMPF R14 #006B
|
||||
0x8C38111B, // 0068 GETMET R14 R8 K27
|
||||
0x04401909, // 0069 SUB R16 R12 K9
|
||||
0x7C380400, // 006A CALL R14 2
|
||||
0x24381B08, // 006B GT R14 R13 K8
|
||||
0x783A0002, // 006C JMPF R14 #0070
|
||||
0x8C38111B, // 006D GETMET R14 R8 K27
|
||||
0x04401B09, // 006E SUB R16 R13 K9
|
||||
0x7C380400, // 006F CALL R14 2
|
||||
0xB83A2400, // 0070 GETNGBL R14 K18
|
||||
0x603C0018, // 0071 GETGBL R15 G24
|
||||
0x5840001C, // 0072 LDCONST R16 K28
|
||||
0x5C441800, // 0073 MOVE R17 R12
|
||||
0x5C481A00, // 0074 MOVE R18 R13
|
||||
0x7C3C0600, // 0075 CALL R15 3
|
||||
0x58400014, // 0076 LDCONST R16 K20
|
||||
0x7C380400, // 0077 CALL R14 2
|
||||
0x8C381705, // 0078 GETMET R14 R11 K5
|
||||
0x5840001D, // 0079 LDCONST R16 K29
|
||||
0x7C380400, // 007A CALL R14 2
|
||||
0x783A0002, // 007B JMPF R14 #007F
|
||||
0x943C1D0C, // 007C GETIDX R15 R14 K12
|
||||
0x243C1F08, // 007D GT R15 R15 K8
|
||||
0x743E0000, // 007E JMPT R15 #0080
|
||||
0x503C0001, // 007F LDBOOL R15 0 1
|
||||
0x503C0200, // 0080 LDBOOL R15 1 0
|
||||
0x60400008, // 0081 GETGBL R16 G8
|
||||
0x5C440600, // 0082 MOVE R17 R3
|
||||
0x7C400200, // 0083 CALL R16 1
|
||||
0x60440013, // 0084 GETGBL R17 G19
|
||||
0x7C440000, // 0085 CALL R17 0
|
||||
0x783E0001, // 0086 JMPF R15 #0089
|
||||
0x5848001E, // 0087 LDCONST R18 K30
|
||||
0x70020000, // 0088 JMP #008A
|
||||
0x5848001F, // 0089 LDCONST R18 K31
|
||||
0x98461412, // 008A SETIDX R17 K10 R18
|
||||
0x98463E09, // 008B SETIDX R17 K31 R9
|
||||
0x98082011, // 008C SETIDX R2 R16 R17
|
||||
0x000C0709, // 008D ADD R3 R3 K9
|
||||
0x00241309, // 008E ADD R9 R9 K9
|
||||
0x7001FFB7, // 008F JMP #0048
|
||||
0x6024000C, // 0090 GETGBL R9 G12
|
||||
0xB82A1E00, // 0091 GETNGBL R10 K15
|
||||
0x8C281520, // 0092 GETMET R10 R10 K32
|
||||
0x7C280200, // 0093 CALL R10 1
|
||||
0x7C240200, // 0094 CALL R9 1
|
||||
0x58280008, // 0095 LDCONST R10 K8
|
||||
0x78120000, // 0096 JMPF R4 #0098
|
||||
0x04241309, // 0097 SUB R9 R9 K9
|
||||
0x142C1409, // 0098 LT R11 R10 R9
|
||||
0x782E0011, // 0099 JMPF R11 #00AC
|
||||
0x8C2C1105, // 009A GETMET R11 R8 K5
|
||||
0x5C341400, // 009B MOVE R13 R10
|
||||
0x7C2C0400, // 009C CALL R11 2
|
||||
0x4C300000, // 009D LDNIL R12
|
||||
0x1C2C160C, // 009E EQ R11 R11 R12
|
||||
0x782E0009, // 009F JMPF R11 #00AA
|
||||
0x602C0008, // 00A0 GETGBL R11 G8
|
||||
0x5C300600, // 00A1 MOVE R12 R3
|
||||
0x7C2C0200, // 00A2 CALL R11 1
|
||||
0x60300013, // 00A3 GETGBL R12 G19
|
||||
0x7C300000, // 00A4 CALL R12 0
|
||||
0x98321521, // 00A5 SETIDX R12 K10 K33
|
||||
0x00341509, // 00A6 ADD R13 R10 K9
|
||||
0x9832420D, // 00A7 SETIDX R12 K33 R13
|
||||
0x9808160C, // 00A8 SETIDX R2 R11 R12
|
||||
0x000C0709, // 00A9 ADD R3 R3 K9
|
||||
0x00281509, // 00AA ADD R10 R10 K9
|
||||
0x7001FFEB, // 00AB JMP #0098
|
||||
0x8C2C0322, // 00AC GETMET R11 R1 K34
|
||||
0xB8361E00, // 00AD GETNGBL R13 K15
|
||||
0x8C341B23, // 00AE GETMET R13 R13 K35
|
||||
0x7C340200, // 00AF CALL R13 1
|
||||
0x7C2C0400, // 00B0 CALL R11 2
|
||||
0x8C300124, // 00B1 GETMET R12 R0 K36
|
||||
0x5C381600, // 00B2 MOVE R14 R11
|
||||
0x7C300400, // 00B3 CALL R12 2
|
||||
0x60340010, // 00B4 GETGBL R13 G16
|
||||
0x5C381800, // 00B5 MOVE R14 R12
|
||||
0x7C340200, // 00B6 CALL R13 1
|
||||
0xA8020007, // 00B7 EXBLK 0 #00C0
|
||||
0x5C381A00, // 00B8 MOVE R14 R13
|
||||
0x7C380000, // 00B9 CALL R14 0
|
||||
0x603C0008, // 00BA GETGBL R15 G8
|
||||
0x5C400600, // 00BB MOVE R16 R3
|
||||
0x7C3C0200, // 00BC CALL R15 1
|
||||
0x98081E0E, // 00BD SETIDX R2 R15 R14
|
||||
0x000C0709, // 00BE ADD R3 R3 K9
|
||||
0x7001FFF7, // 00BF JMP #00B8
|
||||
0x58340025, // 00C0 LDCONST R13 K37
|
||||
0xAC340200, // 00C1 CATCH R13 1 0
|
||||
0xB0080000, // 00C2 RAISE 2 R0 R0
|
||||
0x80040400, // 00C3 RET 1 R2
|
||||
0x58100003, // 0005 LDCONST R4 K3
|
||||
0xA4160800, // 0006 IMPORT R5 K4
|
||||
0x8C180B05, // 0007 GETMET R6 R5 K5
|
||||
0x58200003, // 0008 LDCONST R8 K3
|
||||
0x7C180400, // 0009 CALL R6 2
|
||||
0x4C1C0000, // 000A LDNIL R7
|
||||
0x201C0C07, // 000B NE R7 R6 R7
|
||||
0x781E0066, // 000C JMPF R7 #0074
|
||||
0x601C000C, // 000D GETGBL R7 G12
|
||||
0x8C200D06, // 000E GETMET R8 R6 K6
|
||||
0x58280007, // 000F LDCONST R10 K7
|
||||
0x582C0008, // 0010 LDCONST R11 K8
|
||||
0x7C200600, // 0011 CALL R8 3
|
||||
0x7C1C0200, // 0012 CALL R7 1
|
||||
0x58100009, // 0013 LDCONST R4 K9
|
||||
0x24200F03, // 0014 GT R8 R7 K3
|
||||
0x7822005D, // 0015 JMPF R8 #0074
|
||||
0x1C200F09, // 0016 EQ R8 R7 K9
|
||||
0x7822001E, // 0017 JMPF R8 #0037
|
||||
0x60200008, // 0018 GETGBL R8 G8
|
||||
0x5C240600, // 0019 MOVE R9 R3
|
||||
0x7C200200, // 001A CALL R8 1
|
||||
0x60240013, // 001B GETGBL R9 G19
|
||||
0x7C240000, // 001C CALL R9 0
|
||||
0x9826150B, // 001D SETIDX R9 K10 K11
|
||||
0x98081009, // 001E SETIDX R2 R8 R9
|
||||
0x000C0709, // 001F ADD R3 R3 K9
|
||||
0x58200009, // 0020 LDCONST R8 K9
|
||||
0x4C240000, // 0021 LDNIL R9
|
||||
0x8C280B05, // 0022 GETMET R10 R5 K5
|
||||
0x5C301000, // 0023 MOVE R12 R8
|
||||
0x7C280400, // 0024 CALL R10 2
|
||||
0x5C241400, // 0025 MOVE R9 R10
|
||||
0x4C2C0000, // 0026 LDNIL R11
|
||||
0x2028140B, // 0027 NE R10 R10 R11
|
||||
0x782A000C, // 0028 JMPF R10 #0036
|
||||
0x60280008, // 0029 GETGBL R10 G8
|
||||
0x5C2C0600, // 002A MOVE R11 R3
|
||||
0x7C280200, // 002B CALL R10 1
|
||||
0x602C0013, // 002C GETGBL R11 G19
|
||||
0x7C2C0000, // 002D CALL R11 0
|
||||
0x982E150B, // 002E SETIDX R11 K10 K11
|
||||
0x00301109, // 002F ADD R12 R8 K9
|
||||
0x982E080C, // 0030 SETIDX R11 K4 R12
|
||||
0x9808140B, // 0031 SETIDX R2 R10 R11
|
||||
0x000C0709, // 0032 ADD R3 R3 K9
|
||||
0x00100909, // 0033 ADD R4 R4 K9
|
||||
0x00201109, // 0034 ADD R8 R8 K9
|
||||
0x7001FFEB, // 0035 JMP #0022
|
||||
0x7002003C, // 0036 JMP #0074
|
||||
0x1C200F0C, // 0037 EQ R8 R7 K12
|
||||
0x78220008, // 0038 JMPF R8 #0042
|
||||
0x60200008, // 0039 GETGBL R8 G8
|
||||
0x5C240600, // 003A MOVE R9 R3
|
||||
0x7C200200, // 003B CALL R8 1
|
||||
0x60240013, // 003C GETGBL R9 G19
|
||||
0x7C240000, // 003D CALL R9 0
|
||||
0x9826150D, // 003E SETIDX R9 K10 K13
|
||||
0x98081009, // 003F SETIDX R2 R8 R9
|
||||
0x000C0709, // 0040 ADD R3 R3 K9
|
||||
0x70020031, // 0041 JMP #0074
|
||||
0x1C200F0E, // 0042 EQ R8 R7 K14
|
||||
0x7822002B, // 0043 JMPF R8 #0070
|
||||
0x60200008, // 0044 GETGBL R8 G8
|
||||
0x5C240600, // 0045 MOVE R9 R3
|
||||
0x7C200200, // 0046 CALL R8 1
|
||||
0x60240013, // 0047 GETGBL R9 G19
|
||||
0x7C240000, // 0048 CALL R9 0
|
||||
0x9826150F, // 0049 SETIDX R9 K10 K15
|
||||
0x98081009, // 004A SETIDX R2 R8 R9
|
||||
0x000C0709, // 004B ADD R3 R3 K9
|
||||
0x8C200B05, // 004C GETMET R8 R5 K5
|
||||
0x58280009, // 004D LDCONST R10 K9
|
||||
0x7C200400, // 004E CALL R8 2
|
||||
0x4C240000, // 004F LDNIL R9
|
||||
0x20241009, // 0050 NE R9 R8 R9
|
||||
0x7826001C, // 0051 JMPF R9 #006F
|
||||
0x6024000C, // 0052 GETGBL R9 G12
|
||||
0x8C281106, // 0053 GETMET R10 R8 K6
|
||||
0x58300007, // 0054 LDCONST R12 K7
|
||||
0x58340008, // 0055 LDCONST R13 K8
|
||||
0x7C280600, // 0056 CALL R10 3
|
||||
0x7C240200, // 0057 CALL R9 1
|
||||
0x1C281309, // 0058 EQ R10 R9 K9
|
||||
0x782A0009, // 0059 JMPF R10 #0064
|
||||
0x60280008, // 005A GETGBL R10 G8
|
||||
0x5C2C0600, // 005B MOVE R11 R3
|
||||
0x7C280200, // 005C CALL R10 1
|
||||
0x602C0013, // 005D GETGBL R11 G19
|
||||
0x7C2C0000, // 005E CALL R11 0
|
||||
0x982E150B, // 005F SETIDX R11 K10 K11
|
||||
0x9808140B, // 0060 SETIDX R2 R10 R11
|
||||
0x000C0709, // 0061 ADD R3 R3 K9
|
||||
0x00100909, // 0062 ADD R4 R4 K9
|
||||
0x7002000A, // 0063 JMP #006F
|
||||
0x1C28130C, // 0064 EQ R10 R9 K12
|
||||
0x782A0008, // 0065 JMPF R10 #006F
|
||||
0x60280008, // 0066 GETGBL R10 G8
|
||||
0x5C2C0600, // 0067 MOVE R11 R3
|
||||
0x7C280200, // 0068 CALL R10 1
|
||||
0x602C0013, // 0069 GETGBL R11 G19
|
||||
0x7C2C0000, // 006A CALL R11 0
|
||||
0x982E150D, // 006B SETIDX R11 K10 K13
|
||||
0x9808140B, // 006C SETIDX R2 R10 R11
|
||||
0x000C0709, // 006D ADD R3 R3 K9
|
||||
0x00100909, // 006E ADD R4 R4 K9
|
||||
0x70020003, // 006F JMP #0074
|
||||
0x54220003, // 0070 LDINT R8 4
|
||||
0x1C200E08, // 0071 EQ R8 R7 R8
|
||||
0x78220000, // 0072 JMPF R8 #0074
|
||||
0x7001FFFF, // 0073 JMP #0074
|
||||
0xB81E2000, // 0074 GETNGBL R7 K16
|
||||
0x8C1C0F11, // 0075 GETMET R7 R7 K17
|
||||
0x58240012, // 0076 LDCONST R9 K18
|
||||
0x50280200, // 0077 LDBOOL R10 1 0
|
||||
0x7C1C0600, // 0078 CALL R7 3
|
||||
0x60200012, // 0079 GETGBL R8 G18
|
||||
0x7C200000, // 007A CALL R8 0
|
||||
0xB8262600, // 007B GETNGBL R9 K19
|
||||
0x60280008, // 007C GETGBL R10 G8
|
||||
0x5C2C0E00, // 007D MOVE R11 R7
|
||||
0x7C280200, // 007E CALL R10 1
|
||||
0x002A280A, // 007F ADD R10 K20 R10
|
||||
0x582C000E, // 0080 LDCONST R11 K14
|
||||
0x7C240400, // 0081 CALL R9 2
|
||||
0x4C240000, // 0082 LDNIL R9
|
||||
0x20240E09, // 0083 NE R9 R7 R9
|
||||
0x7826004D, // 0084 JMPF R9 #00D3
|
||||
0x8C240F15, // 0085 GETMET R9 R7 K21
|
||||
0x582C0016, // 0086 LDCONST R11 K22
|
||||
0x7C240400, // 0087 CALL R9 2
|
||||
0x78260049, // 0088 JMPF R9 #00D3
|
||||
0x941C0F16, // 0089 GETIDX R7 R7 K22
|
||||
0x58240003, // 008A LDCONST R9 K3
|
||||
0x50280200, // 008B LDBOOL R10 1 0
|
||||
0x782A0045, // 008C JMPF R10 #00D3
|
||||
0x60280008, // 008D GETGBL R10 G8
|
||||
0x5C2C1200, // 008E MOVE R11 R9
|
||||
0x7C280200, // 008F CALL R10 1
|
||||
0x002A2E0A, // 0090 ADD R10 K23 R10
|
||||
0x8C2C0F15, // 0091 GETMET R11 R7 K21
|
||||
0x5C341400, // 0092 MOVE R13 R10
|
||||
0x7C2C0400, // 0093 CALL R11 2
|
||||
0x742E0000, // 0094 JMPT R11 #0096
|
||||
0x7002003C, // 0095 JMP #00D3
|
||||
0x942C0E0A, // 0096 GETIDX R11 R7 R10
|
||||
0xB8322600, // 0097 GETNGBL R12 K19
|
||||
0x60340018, // 0098 GETGBL R13 G24
|
||||
0x58380018, // 0099 LDCONST R14 K24
|
||||
0x5C3C1400, // 009A MOVE R15 R10
|
||||
0x60400008, // 009B GETGBL R16 G8
|
||||
0x5C441600, // 009C MOVE R17 R11
|
||||
0x7C400200, // 009D CALL R16 1
|
||||
0x7C340600, // 009E CALL R13 3
|
||||
0x5838000E, // 009F LDCONST R14 K14
|
||||
0x7C300400, // 00A0 CALL R12 2
|
||||
0x8C301706, // 00A1 GETMET R12 R11 K6
|
||||
0x58380019, // 00A2 LDCONST R14 K25
|
||||
0x543DFFFE, // 00A3 LDINT R15 -1
|
||||
0x7C300600, // 00A4 CALL R12 3
|
||||
0x8C341706, // 00A5 GETMET R13 R11 K6
|
||||
0x583C001A, // 00A6 LDCONST R15 K26
|
||||
0x5441FFFE, // 00A7 LDINT R16 -1
|
||||
0x7C340600, // 00A8 CALL R13 3
|
||||
0x24381903, // 00A9 GT R14 R12 K3
|
||||
0x783A0002, // 00AA JMPF R14 #00AE
|
||||
0x8C38111B, // 00AB GETMET R14 R8 K27
|
||||
0x04401909, // 00AC SUB R16 R12 K9
|
||||
0x7C380400, // 00AD CALL R14 2
|
||||
0x24381B03, // 00AE GT R14 R13 K3
|
||||
0x783A0002, // 00AF JMPF R14 #00B3
|
||||
0x8C38111B, // 00B0 GETMET R14 R8 K27
|
||||
0x04401B09, // 00B1 SUB R16 R13 K9
|
||||
0x7C380400, // 00B2 CALL R14 2
|
||||
0xB83A2600, // 00B3 GETNGBL R14 K19
|
||||
0x603C0018, // 00B4 GETGBL R15 G24
|
||||
0x5840001C, // 00B5 LDCONST R16 K28
|
||||
0x5C441800, // 00B6 MOVE R17 R12
|
||||
0x5C481A00, // 00B7 MOVE R18 R13
|
||||
0x7C3C0600, // 00B8 CALL R15 3
|
||||
0x5840000E, // 00B9 LDCONST R16 K14
|
||||
0x7C380400, // 00BA CALL R14 2
|
||||
0x8C381706, // 00BB GETMET R14 R11 K6
|
||||
0x5840001D, // 00BC LDCONST R16 K29
|
||||
0x7C380400, // 00BD CALL R14 2
|
||||
0x783A0002, // 00BE JMPF R14 #00C2
|
||||
0x943C1D0C, // 00BF GETIDX R15 R14 K12
|
||||
0x243C1F03, // 00C0 GT R15 R15 K3
|
||||
0x743E0000, // 00C1 JMPT R15 #00C3
|
||||
0x503C0001, // 00C2 LDBOOL R15 0 1
|
||||
0x503C0200, // 00C3 LDBOOL R15 1 0
|
||||
0x60400008, // 00C4 GETGBL R16 G8
|
||||
0x5C440600, // 00C5 MOVE R17 R3
|
||||
0x7C400200, // 00C6 CALL R16 1
|
||||
0x60440013, // 00C7 GETGBL R17 G19
|
||||
0x7C440000, // 00C8 CALL R17 0
|
||||
0x783E0001, // 00C9 JMPF R15 #00CC
|
||||
0x5848001E, // 00CA LDCONST R18 K30
|
||||
0x70020000, // 00CB JMP #00CD
|
||||
0x5848001F, // 00CC LDCONST R18 K31
|
||||
0x98461412, // 00CD SETIDX R17 K10 R18
|
||||
0x98463E09, // 00CE SETIDX R17 K31 R9
|
||||
0x98082011, // 00CF SETIDX R2 R16 R17
|
||||
0x000C0709, // 00D0 ADD R3 R3 K9
|
||||
0x00241309, // 00D1 ADD R9 R9 K9
|
||||
0x7001FFB7, // 00D2 JMP #008B
|
||||
0x6024000C, // 00D3 GETGBL R9 G12
|
||||
0xB82A2000, // 00D4 GETNGBL R10 K16
|
||||
0x8C281520, // 00D5 GETMET R10 R10 K32
|
||||
0x7C280200, // 00D6 CALL R10 1
|
||||
0x7C240200, // 00D7 CALL R9 1
|
||||
0x58280003, // 00D8 LDCONST R10 K3
|
||||
0x04241204, // 00D9 SUB R9 R9 R4
|
||||
0x142C1409, // 00DA LT R11 R10 R9
|
||||
0x782E0011, // 00DB JMPF R11 #00EE
|
||||
0x8C2C1106, // 00DC GETMET R11 R8 K6
|
||||
0x5C341400, // 00DD MOVE R13 R10
|
||||
0x7C2C0400, // 00DE CALL R11 2
|
||||
0x4C300000, // 00DF LDNIL R12
|
||||
0x1C2C160C, // 00E0 EQ R11 R11 R12
|
||||
0x782E0009, // 00E1 JMPF R11 #00EC
|
||||
0x602C0008, // 00E2 GETGBL R11 G8
|
||||
0x5C300600, // 00E3 MOVE R12 R3
|
||||
0x7C2C0200, // 00E4 CALL R11 1
|
||||
0x60300013, // 00E5 GETGBL R12 G19
|
||||
0x7C300000, // 00E6 CALL R12 0
|
||||
0x98321521, // 00E7 SETIDX R12 K10 K33
|
||||
0x00341509, // 00E8 ADD R13 R10 K9
|
||||
0x9832420D, // 00E9 SETIDX R12 K33 R13
|
||||
0x9808160C, // 00EA SETIDX R2 R11 R12
|
||||
0x000C0709, // 00EB ADD R3 R3 K9
|
||||
0x00281509, // 00EC ADD R10 R10 K9
|
||||
0x7001FFEB, // 00ED JMP #00DA
|
||||
0x8C2C0322, // 00EE GETMET R11 R1 K34
|
||||
0xB8362000, // 00EF GETNGBL R13 K16
|
||||
0x8C341B23, // 00F0 GETMET R13 R13 K35
|
||||
0x7C340200, // 00F1 CALL R13 1
|
||||
0x7C2C0400, // 00F2 CALL R11 2
|
||||
0x8C300124, // 00F3 GETMET R12 R0 K36
|
||||
0x5C381600, // 00F4 MOVE R14 R11
|
||||
0x7C300400, // 00F5 CALL R12 2
|
||||
0x60340010, // 00F6 GETGBL R13 G16
|
||||
0x5C381800, // 00F7 MOVE R14 R12
|
||||
0x7C340200, // 00F8 CALL R13 1
|
||||
0xA8020007, // 00F9 EXBLK 0 #0102
|
||||
0x5C381A00, // 00FA MOVE R14 R13
|
||||
0x7C380000, // 00FB CALL R14 0
|
||||
0x603C0008, // 00FC GETGBL R15 G8
|
||||
0x5C400600, // 00FD MOVE R16 R3
|
||||
0x7C3C0200, // 00FE CALL R15 1
|
||||
0x98081E0E, // 00FF SETIDX R2 R15 R14
|
||||
0x000C0709, // 0100 ADD R3 R3 K9
|
||||
0x7001FFF7, // 0101 JMP #00FA
|
||||
0x58340025, // 0102 LDCONST R13 K37
|
||||
0xAC340200, // 0103 CATCH R13 1 0
|
||||
0xB0080000, // 0104 RAISE 2 R0 R0
|
||||
0x80040400, // 0105 RET 1 R2
|
||||
})
|
||||
)
|
||||
);
|
||||
|
|
|
@ -105,7 +105,7 @@ extern "C" {
|
|||
}
|
||||
}
|
||||
} else { // Light.pwm_multi_channels
|
||||
if ((light_num >= 0) && (light_num < LST_MAX)) {
|
||||
if ((light_num >= 0) && (light_num < LST_MAX) && (light_num < Light.subtype)) {
|
||||
data_present = true;
|
||||
be_map_insert_bool(vm, "power", Light.power & (1 << light_num));
|
||||
be_map_insert_int(vm, "bri", Light.current_color[light_num]);
|
||||
|
@ -221,56 +221,72 @@ extern "C" {
|
|||
}
|
||||
}
|
||||
|
||||
// ct
|
||||
if (has_ct) {
|
||||
light_controller.changeCTB(val_ct, light_state.getBriCT());
|
||||
}
|
||||
|
||||
// hue
|
||||
if (has_hue) {
|
||||
uint8_t sat;
|
||||
uint8_t bri;
|
||||
light_state.getHSB(nullptr, &sat, &bri);
|
||||
light_controller.changeHSB(val_hue, sat, bri);
|
||||
}
|
||||
|
||||
// sat
|
||||
if (has_sat) {
|
||||
uint16_t hue;
|
||||
uint8_t bri;
|
||||
light_state.getHSB(&hue, nullptr, &bri);
|
||||
light_controller.changeHSB(hue, val_sat, bri);
|
||||
}
|
||||
|
||||
// rgb
|
||||
if (has_rgb) {
|
||||
SBuffer buf = SBuffer::SBufferFromHex(val_rgb_s, strlen(val_rgb_s));
|
||||
uint8_t channels[LST_MAX] = {};
|
||||
memcpy(channels, buf.buf(), buf.len() > LST_MAX ? LST_MAX : buf.len());
|
||||
bool on = false; // if all are zero, then only set power off
|
||||
for (uint32_t i = 0; i < LST_MAX; i++) {
|
||||
if (channels[i] != 0) { on = true; }
|
||||
if (!Light.pwm_multi_channels) {
|
||||
// ct
|
||||
if (has_ct) {
|
||||
light_controller.changeCTB(val_ct, light_state.getBriCT());
|
||||
}
|
||||
if (on) {
|
||||
light_controller.changeChannels(channels);
|
||||
} else {
|
||||
ExecuteCommandPower(idx + 1, POWER_OFF, SRC_BERRY);
|
||||
}
|
||||
}
|
||||
|
||||
// channels
|
||||
if (has_channels) {
|
||||
if (val_on) {
|
||||
light_controller.changeChannels(channels);
|
||||
} else {
|
||||
ExecuteCommandPower(idx + 1, POWER_OFF, SRC_BERRY);
|
||||
// hue
|
||||
if (has_hue) {
|
||||
uint8_t sat;
|
||||
uint8_t bri;
|
||||
light_state.getHSB(nullptr, &sat, &bri);
|
||||
light_controller.changeHSB(val_hue, sat, bri);
|
||||
}
|
||||
}
|
||||
|
||||
// bri is done after channels and rgb
|
||||
// bri
|
||||
if (has_bri) {
|
||||
light_controller.changeBri(val_bri);
|
||||
// sat
|
||||
if (has_sat) {
|
||||
uint16_t hue;
|
||||
uint8_t bri;
|
||||
light_state.getHSB(&hue, nullptr, &bri);
|
||||
light_controller.changeHSB(hue, val_sat, bri);
|
||||
}
|
||||
|
||||
// rgb
|
||||
if (has_rgb) {
|
||||
SBuffer buf = SBuffer::SBufferFromHex(val_rgb_s, strlen(val_rgb_s));
|
||||
uint8_t channels[LST_MAX] = {};
|
||||
memcpy(channels, buf.buf(), buf.len() > LST_MAX ? LST_MAX : buf.len());
|
||||
bool on = false; // if all are zero, then only set power off
|
||||
for (uint32_t i = 0; i < LST_MAX; i++) {
|
||||
if (channels[i] != 0) { on = true; }
|
||||
}
|
||||
if (on) {
|
||||
light_controller.changeChannels(channels);
|
||||
} else {
|
||||
ExecuteCommandPower(idx + 1, POWER_OFF, SRC_BERRY);
|
||||
}
|
||||
}
|
||||
|
||||
// channels
|
||||
if (has_channels) {
|
||||
if (val_on) {
|
||||
light_controller.changeChannels(channels);
|
||||
} else {
|
||||
ExecuteCommandPower(idx + 1, POWER_OFF, SRC_BERRY);
|
||||
}
|
||||
}
|
||||
|
||||
// bri is done after channels and rgb
|
||||
// bri
|
||||
if (has_bri) {
|
||||
if (light_controller.isCTRGBLinked()) {
|
||||
light_controller.changeBri(val_bri);
|
||||
} else {
|
||||
if (idx == 0) {
|
||||
light_controller.changeBriRGB(val_bri);
|
||||
} else {
|
||||
light_controller.changeBriCT(val_bri);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// multi-channel (SetOption68 1)
|
||||
// bri
|
||||
if (has_bri) {
|
||||
LightSetBri(Light.device + idx, val_bri);
|
||||
}
|
||||
}
|
||||
|
||||
push_getlight(vm, idx);
|
||||
|
|
Loading…
Reference in New Issue