diff --git a/lib/libesp32/berry_matter/src/be_matter_module.c b/lib/libesp32/berry_matter/src/be_matter_module.c index 9a82abce2..459518fee 100644 --- a/lib/libesp32/berry_matter/src/be_matter_module.c +++ b/lib/libesp32/berry_matter/src/be_matter_module.c @@ -160,6 +160,7 @@ extern const bclass be_class_Matter_TLV; // need to declare it upfront because #include "solidify/solidified_Matter_Plugin_Light2.h" #include "solidify/solidified_Matter_Plugin_Light3.h" #include "solidify/solidified_Matter_Plugin_Shutter.h" +#include "solidify/solidified_Matter_Plugin_ShutterTilt.h" #include "solidify/solidified_Matter_Plugin_Sensor.h" #include "solidify/solidified_Matter_Plugin_Sensor_Pressure.h" #include "solidify/solidified_Matter_Plugin_Sensor_Temp.h" @@ -339,6 +340,7 @@ module matter (scope: global, strings: weak) { Plugin_Light2, class(be_class_Matter_Plugin_Light2) // Color Temperature Light Plugin_Light3, class(be_class_Matter_Plugin_Light3) // Extended Color Light Plugin_Shutter, class(be_class_Matter_Plugin_Shutter) // Shutter + Plugin_ShutterTilt, class(be_class_Matter_Plugin_ShutterTilt) // Shutter + Tilt Plugin_Sensor, class(be_class_Matter_Plugin_Sensor) // Generic Sensor Plugin_Sensor_Pressure, class(be_class_Matter_Plugin_Sensor_Pressure) // Pressure Sensor Plugin_Sensor_Temp, class(be_class_Matter_Plugin_Sensor_Temp) // Temperature Sensor diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Device.be b/lib/libesp32/berry_matter/src/embedded/Matter_Device.be index abd767d8a..e96321fb8 100644 --- a/lib/libesp32/berry_matter/src/embedded/Matter_Device.be +++ b/lib/libesp32/berry_matter/src/embedded/Matter_Device.be @@ -1048,8 +1048,11 @@ class Matter_Device if relay2 >= 0 relays_reserved.push(relay2) end tasmota.log(string.format("MTR: relay1 = %s, relay2 = %s", relay1, relay2), 3) + # is there tilt support + var tilt_array = d.find('TiltConfig') + var tilt_config = tilt_array && (tilt_array[2] > 0) # add shutter to definition - m[str(endpoint)] = {'type':'shutter','shutter':idx} + m[str(endpoint)] = {'type': tilt_config ? 'shutter+tilt' : 'shutter', 'shutter':idx} endpoint += 1 idx += 1 end diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_Shutter.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_Shutter.be index 408e74ba7..c3e0f38df 100644 --- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_Shutter.be +++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_Shutter.be @@ -34,7 +34,7 @@ class Matter_Plugin_Shutter : Matter_Plugin_Device # 0x0003: inherited # Identify 1.2 p.16 # 0x0004: inherited # Groups 1.3 p.21 # 0x0005: inherited # Scenes 1.4 p.30 - no writable - 0x0102: [0,5,6,7,8,9,0xA,0xB,0xC,0xD,0xE,0xF,0x17,0xFFFC,0xFFFD], # Window Covering 5.3 p.289 + 0x0102: [0,5,7,0xA,0xB,0xD,0xE,0x17,0xFFFC,0xFFFD], # Window Covering 5.3 p.289 } static var TYPES = { 0x0202: 2 } # New data model format and notation @@ -79,34 +79,24 @@ class Matter_Plugin_Shutter : Matter_Plugin_Device return TLV.create_TLV(TLV.U1, 0xFF) # 0xFF = unknown type of shutter elif attribute == 0x0005 # ---------- NumberOfActuationsLift / u16 ---------- return TLV.create_TLV(TLV.U2, 0) - elif attribute == 0x0006 # ---------- NumberOfActuationsTilt / u16 ---------- - return TLV.create_TLV(TLV.U2, 0) elif attribute == 0x0007 # ---------- ConfigStatus / u8 ---------- - return TLV.create_TLV(TLV.U1, 1 + 8 + 16) # Operational + Lift Position Aware + Tilt Position Aware + return TLV.create_TLV(TLV.U1, 1 + 8) # Operational + Lift Position Aware elif attribute == 0x000D # ---------- EndProductType / u8 ---------- return TLV.create_TLV(TLV.U1, 0xFF) # 0xFF = unknown type of shutter - elif attribute == 0x0008 # ---------- CurrentPositionLiftPercentage / u8 ---------- - return TLV.create_TLV(TLV.U2, 100 - self.shadow_shutter_pos) elif attribute == 0x000E # ---------- CurrentPositionLiftPercent100ths / u16 ---------- return TLV.create_TLV(TLV.U2, (100 - self.shadow_shutter_pos) * 100) - elif attribute == 0x0009 # ---------- CurrentPositionTiltPercentage / u8 ---------- - return TLV.create_TLV(TLV.U2, 100 - self.shadow_shutter_tilt) - elif attribute == 0x000F # ---------- CurrentPositionTiltPercent100ths / u8 ---------- - return TLV.create_TLV(TLV.U2, (100 - self.shadow_shutter_tilt) * 100) elif attribute == 0x000A # ---------- OperationalStatus / u8 ---------- var op = self.shadow_shutter_direction == 0 ? 0 : (self.shadow_shutter_direction > 0 ? 1 : 2) - return TLV.create_TLV(TLV.U1, op) # TODO from sensors + return TLV.create_TLV(TLV.U1, op) elif attribute == 0x000B # ---------- TargetPositionLiftPercent100ths / u16 ---------- return TLV.create_TLV(TLV.U2, (100 - self.shadow_shutter_target) * 100) - elif attribute == 0x000C # ---------- TargetPositionTiltPercent100ths / u16 ---------- - return TLV.create_TLV(TLV.U1, 0) # TODO elif attribute == 0x0017 # ---------- Mode / u8 ---------- return TLV.create_TLV(TLV.U1, 0) # normal mode elif attribute == 0xFFFC # ---------- FeatureMap / map32 ---------- - return TLV.create_TLV(TLV.U4, 3 + 4 + 16) # Lift + Tilt + PA_LF + PA_TL + return TLV.create_TLV(TLV.U4, 1 + 4) # Lift + PA_LF elif attribute == 0xFFFD # ---------- ClusterRevision / u2 ---------- return TLV.create_TLV(TLV.U4, 5) # New data model format and notation end @@ -152,13 +142,6 @@ class Matter_Plugin_Shutter : Matter_Plugin_Device self.update_shadow() end return true - elif command == 0x0008 # ---------- GoToTiltPercentage ---------- - var tilt = val.findsubval(0) - if tilt != nil - tilt = tilt / 10 - ctx.log = "tilt%:"+str(tilt) - end - return true end else @@ -182,16 +165,14 @@ class Matter_Plugin_Shutter : Matter_Plugin_Device var val_pos = v.find("Position") if val_pos != nil if val_pos != self.shadow_shutter_pos - # self.attribute_updated(0x0102, 0x0008) # CurrentPositionLiftPercentage self.attribute_updated(0x0102, 0x000E) # CurrentPositionLiftPercent100ths end self.shadow_shutter_pos = val_pos end - # Tilt + # Tilt - we can keep it here knowing that it won't change if not implemented var val_tilt = v.find("Tilt") if val_tilt != nil if val_tilt != self.shadow_shutter_tilt - # self.attribute_updated(0x0102, 0x0009) # CurrentPositionTiltPercentage self.attribute_updated(0x0102, 0x000F) # CurrentPositionTiltPercent100ths end self.shadow_shutter_tilt = val_tilt diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_ShutterTilt.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_ShutterTilt.be new file mode 100644 index 000000000..7d8adb7b4 --- /dev/null +++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_ShutterTilt.be @@ -0,0 +1,114 @@ +# +# Matter_Plugin_ShutterTilt.be - implements the behavior for shutters with tilt control +# +# Copyright (C) 2023 Stephan Hadinger & Theo Arends +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +# Matter plug-in for core behavior + +# dummy declaration for solidification +class Matter_Plugin_Shutter end + +#@ solidify:Matter_Plugin_ShutterTilt,weak + +class Matter_Plugin_ShutterTilt : Matter_Plugin_Shutter + static var TYPE = "shutter+tilt" # name of the plug-in in json + static var NAME = "Shutter + Tilt" # display name of the plug-in + # inherited static var ARG = "shutter" # additional argument name (or empty if none) + # inherited static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type + static var CLUSTERS = { + # 0x001D: inherited # Descriptor Cluster 9.5 p.453 + # 0x0003: inherited # Identify 1.2 p.16 + # 0x0004: inherited # Groups 1.3 p.21 + # 0x0005: inherited # Scenes 1.4 p.30 - no writable + 0x0102: [7,0xC,0xF,0xFFFC], # Window Covering 5.3 p.289 + } + # inherited static var TYPES = { 0x0202: 2 } # New data model format and notation + + # below is inherited + # var tasmota_shutter_index # Shutter number in Tasmota (zero based) + # var shadow_shutter_pos + # var shadow_shutter_target + # var shadow_shutter_tilt + # var shadow_shutter_direction # 1=opening -1=closing 0=not moving TODO + + ############################################################# + # Constructor inherited + + ############################################################# + # Update shadow inherited + + ############################################################# + # read an attribute + # + def read_attribute(session, ctx) + import string + var TLV = matter.TLV + var cluster = ctx.cluster + var attribute = ctx.attribute + + # ==================================================================================================== + if cluster == 0x0102 # ========== Window Covering 5.3 p.289 ========== + self.update_shadow_lazy() + if attribute == 0x0007 # ---------- ConfigStatus / u8 ---------- + return TLV.create_TLV(TLV.U1, 1 + 8 + 16) # Operational + Lift Position Aware + Tilt Position Aware + + elif attribute == 0x000F # ---------- CurrentPositionTiltPercent100ths / u8 ---------- + return TLV.create_TLV(TLV.U2, (100 - self.shadow_shutter_tilt) * 100) + elif attribute == 0x000C # ---------- TargetPositionTiltPercent100ths / u16 ---------- + return TLV.create_TLV(TLV.U1, 0) # TODO + + elif attribute == 0xFFFC # ---------- FeatureMap / map32 ---------- + return TLV.create_TLV(TLV.U4, 3 + 4 + 16) # Lift + Tilt + PA_LF + PA_TL + end + end + # else + return super(self).read_attribute(session, ctx) + end + + ############################################################# + # Invoke a command + # + # 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 + + # ==================================================================================================== + if cluster == 0x0102 # ========== Window Covering 5.3 p.289 ========== + self.update_shadow_lazy() + if command == 0x0008 # ---------- GoToTiltPercentage ---------- + var tilt = val.findsubval(0) + if tilt != nil + tilt = tilt / 10 + ctx.log = "tilt%:"+str(tilt) + end + return true + end + end + # else + return super(self).invoke_request(session, val, ctx) + + end + + ############################################################# + # parse sensor inherited + +end +matter.Plugin_ShutterTilt = Matter_Plugin_ShutterTilt diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_UI.be b/lib/libesp32/berry_matter/src/embedded/Matter_UI.be index a2633b34c..cfc9e4cfc 100644 --- a/lib/libesp32/berry_matter/src/embedded/Matter_UI.be +++ b/lib/libesp32/berry_matter/src/embedded/Matter_UI.be @@ -33,7 +33,7 @@ import matter ################################################################################# class Matter_UI static var _ROOT_TYPES = "root" - static var _CLASSES_TYPES = "|relay|light0|light1|light2|light3|shutter" + static var _CLASSES_TYPES = "|relay|light0|light1|light2|light3|shutter|shutter+tilt" "|temperature|pressure|illuminance|humidity" var device diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Device.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Device.h index 3c48befb9..57409987c 100644 --- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Device.h +++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Device.h @@ -2018,7 +2018,7 @@ be_local_closure(Matter_Device_autoconf_device_map, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[51]) { /* constants */ + ( &(const bvalue[53]) { /* constants */ /* K0 */ be_nested_str_weak(string), /* K1 */ be_nested_str_weak(json), /* K2 */ be_nested_str_weak(0), @@ -2050,30 +2050,32 @@ be_local_closure(Matter_Device_autoconf_device_map, /* name */ /* K28 */ be_nested_str_weak(Relay2), /* K29 */ be_nested_str_weak(push), /* K30 */ be_nested_str_weak(MTR_X3A_X20relay1_X20_X3D_X20_X25s_X2C_X20relay2_X20_X3D_X20_X25s), - /* K31 */ be_nested_str_weak(shutter), - /* K32 */ be_nested_str_weak(get_power), - /* K33 */ be_nested_str_weak(relay), - /* K34 */ be_nested_str_weak(load), - /* K35 */ be_nested_str_weak(read_sensors), - /* K36 */ be_nested_str_weak(k2l), - /* K37 */ be_nested_str_weak(Temperature), - /* K38 */ be_nested_str_weak(_X23Temperature), - /* K39 */ be_nested_str_weak(temperature), - /* K40 */ be_nested_str_weak(filter), - /* K41 */ be_nested_str_weak(stop_iteration), - /* K42 */ be_nested_str_weak(Pressure), - /* K43 */ be_nested_str_weak(_X23Pressure), - /* K44 */ be_nested_str_weak(pressure), - /* K45 */ be_nested_str_weak(Illuminance), - /* K46 */ be_nested_str_weak(_X23Illuminance), - /* K47 */ be_nested_str_weak(illuminance), - /* K48 */ be_nested_str_weak(Humidity), - /* K49 */ be_nested_str_weak(_X23Humidity), - /* K50 */ be_nested_str_weak(humidity), + /* K31 */ be_nested_str_weak(TiltConfig), + /* K32 */ be_nested_str_weak(shutter_X2Btilt), + /* K33 */ be_nested_str_weak(shutter), + /* K34 */ be_nested_str_weak(get_power), + /* K35 */ be_nested_str_weak(relay), + /* K36 */ be_nested_str_weak(load), + /* K37 */ be_nested_str_weak(read_sensors), + /* K38 */ be_nested_str_weak(k2l), + /* K39 */ be_nested_str_weak(Temperature), + /* K40 */ be_nested_str_weak(_X23Temperature), + /* K41 */ be_nested_str_weak(temperature), + /* K42 */ be_nested_str_weak(filter), + /* K43 */ be_nested_str_weak(stop_iteration), + /* K44 */ be_nested_str_weak(Pressure), + /* K45 */ be_nested_str_weak(_X23Pressure), + /* K46 */ be_nested_str_weak(pressure), + /* K47 */ be_nested_str_weak(Illuminance), + /* K48 */ be_nested_str_weak(_X23Illuminance), + /* K49 */ be_nested_str_weak(illuminance), + /* K50 */ be_nested_str_weak(Humidity), + /* K51 */ be_nested_str_weak(_X23Humidity), + /* K52 */ be_nested_str_weak(humidity), }), be_str_weak(autoconf_device_map), &be_const_str_solidified, - ( &(const binstruction[326]) { /* code */ + ( &(const binstruction[339]) { /* code */ 0xA4060000, // 0000 IMPORT R1 K0 0xA40A0200, // 0001 IMPORT R2 K1 0x600C0013, // 0002 GETGBL R3 G19 @@ -2145,11 +2147,11 @@ be_local_closure(Matter_Device_autoconf_device_map, /* name */ 0x8C281116, // 0044 GETMET R10 R8 K22 0x58300017, // 0045 LDCONST R12 K23 0x7C280400, // 0046 CALL R10 2 - 0x782A0040, // 0047 JMPF R10 #0089 + 0x782A004D, // 0047 JMPF R10 #0096 0x94201117, // 0048 GETIDX R8 R8 K23 0x5828000B, // 0049 LDCONST R10 K11 0x502C0200, // 004A LDBOOL R11 1 0 - 0x782E003C, // 004B JMPF R11 #0089 + 0x782E0049, // 004B JMPF R11 #0096 0x602C0008, // 004C GETGBL R11 G8 0x5C301400, // 004D MOVE R12 R10 0x7C2C0200, // 004E CALL R11 1 @@ -2158,7 +2160,7 @@ be_local_closure(Matter_Device_autoconf_device_map, /* name */ 0x5C381600, // 0051 MOVE R14 R11 0x7C300400, // 0052 CALL R12 2 0x74320000, // 0053 JMPT R12 #0055 - 0x70020033, // 0054 JMP #0089 + 0x70020040, // 0054 JMP #0096 0x9430100B, // 0055 GETIDX R12 R8 R11 0xB8362000, // 0056 GETNGBL R13 K16 0x8C341B13, // 0057 GETMET R13 R13 K19 @@ -2200,206 +2202,219 @@ be_local_closure(Matter_Device_autoconf_device_map, /* name */ 0x7C440800, // 007B CALL R17 4 0x58480015, // 007C LDCONST R18 K21 0x7C3C0600, // 007D CALL R15 3 - 0x603C0008, // 007E GETGBL R15 G8 - 0x5C400800, // 007F MOVE R16 R4 - 0x7C3C0200, // 0080 CALL R15 1 - 0x60400013, // 0081 GETGBL R16 G19 - 0x7C400000, // 0082 CALL R16 0 - 0x9842071F, // 0083 SETIDX R16 K3 K31 - 0x98423E0A, // 0084 SETIDX R16 K31 R10 - 0x980C1E10, // 0085 SETIDX R3 R15 R16 - 0x00100905, // 0086 ADD R4 R4 K5 - 0x00281505, // 0087 ADD R10 R10 K5 - 0x7001FFC0, // 0088 JMP #004A - 0x6028000C, // 0089 GETGBL R10 G12 - 0xB82E2000, // 008A GETNGBL R11 K16 - 0x8C2C1720, // 008B GETMET R11 R11 K32 - 0x7C2C0200, // 008C CALL R11 1 - 0x7C280200, // 008D CALL R10 1 - 0x582C000B, // 008E LDCONST R11 K11 - 0x78160000, // 008F JMPF R5 #0091 - 0x04281505, // 0090 SUB R10 R10 K5 - 0x1430160A, // 0091 LT R12 R11 R10 - 0x78320010, // 0092 JMPF R12 #00A4 - 0x8C301308, // 0093 GETMET R12 R9 K8 - 0x5C381600, // 0094 MOVE R14 R11 - 0x7C300400, // 0095 CALL R12 2 - 0x4C340000, // 0096 LDNIL R13 - 0x1C30180D, // 0097 EQ R12 R12 R13 - 0x78320008, // 0098 JMPF R12 #00A2 - 0x60300008, // 0099 GETGBL R12 G8 - 0x5C340800, // 009A MOVE R13 R4 - 0x7C300200, // 009B CALL R12 1 - 0x60340013, // 009C GETGBL R13 G19 - 0x7C340000, // 009D CALL R13 0 - 0x98360721, // 009E SETIDX R13 K3 K33 - 0x9836420B, // 009F SETIDX R13 K33 R11 - 0x980C180D, // 00A0 SETIDX R3 R12 R13 - 0x00100905, // 00A1 ADD R4 R4 K5 - 0x002C1705, // 00A2 ADD R11 R11 K5 - 0x7001FFEC, // 00A3 JMP #0091 - 0x8C300522, // 00A4 GETMET R12 R2 K34 - 0xB83A2000, // 00A5 GETNGBL R14 K16 - 0x8C381D23, // 00A6 GETMET R14 R14 K35 - 0x7C380200, // 00A7 CALL R14 1 - 0x7C300400, // 00A8 CALL R12 2 - 0x5412001F, // 00A9 LDINT R4 32 - 0x60340010, // 00AA GETGBL R13 G16 - 0x8C380124, // 00AB GETMET R14 R0 K36 - 0x5C401800, // 00AC MOVE R16 R12 - 0x7C380400, // 00AD CALL R14 2 - 0x7C340200, // 00AE CALL R13 1 - 0xA802001C, // 00AF EXBLK 0 #00CD - 0x5C381A00, // 00B0 MOVE R14 R13 - 0x7C380000, // 00B1 CALL R14 0 - 0x943C180E, // 00B2 GETIDX R15 R12 R14 - 0x6040000F, // 00B3 GETGBL R16 G15 - 0x5C441E00, // 00B4 MOVE R17 R15 - 0x60480013, // 00B5 GETGBL R18 G19 - 0x7C400400, // 00B6 CALL R16 2 - 0x7842000D, // 00B7 JMPF R16 #00C6 - 0x8C401F16, // 00B8 GETMET R16 R15 K22 - 0x58480025, // 00B9 LDCONST R18 K37 - 0x7C400400, // 00BA CALL R16 2 - 0x78420009, // 00BB JMPF R16 #00C6 - 0x00401D26, // 00BC ADD R16 R14 K38 - 0x60440008, // 00BD GETGBL R17 G8 - 0x5C480800, // 00BE MOVE R18 R4 - 0x7C440200, // 00BF CALL R17 1 - 0x60480013, // 00C0 GETGBL R18 G19 - 0x7C480000, // 00C1 CALL R18 0 - 0x984A0727, // 00C2 SETIDX R18 K3 K39 - 0x984A5010, // 00C3 SETIDX R18 K40 R16 - 0x980C2212, // 00C4 SETIDX R3 R17 R18 - 0x00100905, // 00C5 ADD R4 R4 K5 - 0x54420027, // 00C6 LDINT R16 40 - 0x24400810, // 00C7 GT R16 R4 R16 - 0x78420000, // 00C8 JMPF R16 #00CA - 0x70020000, // 00C9 JMP #00CB - 0x7001FFE4, // 00CA JMP #00B0 - 0xA8040001, // 00CB EXBLK 1 1 - 0x70020002, // 00CC JMP #00D0 - 0x58340029, // 00CD LDCONST R13 K41 - 0xAC340200, // 00CE CATCH R13 1 0 - 0xB0080000, // 00CF RAISE 2 R0 R0 - 0x54120027, // 00D0 LDINT R4 40 - 0x60340010, // 00D1 GETGBL R13 G16 - 0x8C380124, // 00D2 GETMET R14 R0 K36 - 0x5C401800, // 00D3 MOVE R16 R12 - 0x7C380400, // 00D4 CALL R14 2 - 0x7C340200, // 00D5 CALL R13 1 - 0xA802001C, // 00D6 EXBLK 0 #00F4 - 0x5C381A00, // 00D7 MOVE R14 R13 - 0x7C380000, // 00D8 CALL R14 0 - 0x943C180E, // 00D9 GETIDX R15 R12 R14 - 0x6040000F, // 00DA GETGBL R16 G15 - 0x5C441E00, // 00DB MOVE R17 R15 - 0x60480013, // 00DC GETGBL R18 G19 - 0x7C400400, // 00DD CALL R16 2 - 0x7842000D, // 00DE JMPF R16 #00ED - 0x8C401F16, // 00DF GETMET R16 R15 K22 - 0x5848002A, // 00E0 LDCONST R18 K42 - 0x7C400400, // 00E1 CALL R16 2 - 0x78420009, // 00E2 JMPF R16 #00ED - 0x00401D2B, // 00E3 ADD R16 R14 K43 - 0x60440008, // 00E4 GETGBL R17 G8 - 0x5C480800, // 00E5 MOVE R18 R4 - 0x7C440200, // 00E6 CALL R17 1 - 0x60480013, // 00E7 GETGBL R18 G19 - 0x7C480000, // 00E8 CALL R18 0 - 0x984A072C, // 00E9 SETIDX R18 K3 K44 - 0x984A5010, // 00EA SETIDX R18 K40 R16 - 0x980C2212, // 00EB SETIDX R3 R17 R18 - 0x00100905, // 00EC ADD R4 R4 K5 - 0x5442002E, // 00ED LDINT R16 47 - 0x24400810, // 00EE GT R16 R4 R16 - 0x78420000, // 00EF JMPF R16 #00F1 - 0x70020000, // 00F0 JMP #00F2 - 0x7001FFE4, // 00F1 JMP #00D7 - 0xA8040001, // 00F2 EXBLK 1 1 - 0x70020002, // 00F3 JMP #00F7 - 0x58340029, // 00F4 LDCONST R13 K41 - 0xAC340200, // 00F5 CATCH R13 1 0 - 0xB0080000, // 00F6 RAISE 2 R0 R0 - 0x5412002F, // 00F7 LDINT R4 48 - 0x60340010, // 00F8 GETGBL R13 G16 - 0x8C380124, // 00F9 GETMET R14 R0 K36 - 0x5C401800, // 00FA MOVE R16 R12 - 0x7C380400, // 00FB CALL R14 2 - 0x7C340200, // 00FC CALL R13 1 - 0xA802001C, // 00FD EXBLK 0 #011B - 0x5C381A00, // 00FE MOVE R14 R13 - 0x7C380000, // 00FF CALL R14 0 - 0x943C180E, // 0100 GETIDX R15 R12 R14 - 0x6040000F, // 0101 GETGBL R16 G15 - 0x5C441E00, // 0102 MOVE R17 R15 - 0x60480013, // 0103 GETGBL R18 G19 - 0x7C400400, // 0104 CALL R16 2 - 0x7842000D, // 0105 JMPF R16 #0114 - 0x8C401F16, // 0106 GETMET R16 R15 K22 - 0x5848002D, // 0107 LDCONST R18 K45 - 0x7C400400, // 0108 CALL R16 2 - 0x78420009, // 0109 JMPF R16 #0114 - 0x00401D2E, // 010A ADD R16 R14 K46 - 0x60440008, // 010B GETGBL R17 G8 - 0x5C480800, // 010C MOVE R18 R4 - 0x7C440200, // 010D CALL R17 1 - 0x60480013, // 010E GETGBL R18 G19 - 0x7C480000, // 010F CALL R18 0 - 0x984A072F, // 0110 SETIDX R18 K3 K47 - 0x984A5010, // 0111 SETIDX R18 K40 R16 - 0x980C2212, // 0112 SETIDX R3 R17 R18 - 0x00100905, // 0113 ADD R4 R4 K5 - 0x54420037, // 0114 LDINT R16 56 - 0x24400810, // 0115 GT R16 R4 R16 - 0x78420000, // 0116 JMPF R16 #0118 - 0x70020000, // 0117 JMP #0119 - 0x7001FFE4, // 0118 JMP #00FE - 0xA8040001, // 0119 EXBLK 1 1 - 0x70020002, // 011A JMP #011E - 0x58340029, // 011B LDCONST R13 K41 - 0xAC340200, // 011C CATCH R13 1 0 - 0xB0080000, // 011D RAISE 2 R0 R0 - 0x54120037, // 011E LDINT R4 56 - 0x60340010, // 011F GETGBL R13 G16 - 0x8C380124, // 0120 GETMET R14 R0 K36 - 0x5C401800, // 0121 MOVE R16 R12 - 0x7C380400, // 0122 CALL R14 2 - 0x7C340200, // 0123 CALL R13 1 - 0xA802001C, // 0124 EXBLK 0 #0142 - 0x5C381A00, // 0125 MOVE R14 R13 - 0x7C380000, // 0126 CALL R14 0 - 0x943C180E, // 0127 GETIDX R15 R12 R14 - 0x6040000F, // 0128 GETGBL R16 G15 - 0x5C441E00, // 0129 MOVE R17 R15 - 0x60480013, // 012A GETGBL R18 G19 - 0x7C400400, // 012B CALL R16 2 - 0x7842000D, // 012C JMPF R16 #013B - 0x8C401F16, // 012D GETMET R16 R15 K22 - 0x58480030, // 012E LDCONST R18 K48 - 0x7C400400, // 012F CALL R16 2 - 0x78420009, // 0130 JMPF R16 #013B - 0x00401D31, // 0131 ADD R16 R14 K49 - 0x60440008, // 0132 GETGBL R17 G8 - 0x5C480800, // 0133 MOVE R18 R4 - 0x7C440200, // 0134 CALL R17 1 - 0x60480013, // 0135 GETGBL R18 G19 - 0x7C480000, // 0136 CALL R18 0 - 0x984A0732, // 0137 SETIDX R18 K3 K50 - 0x984A5010, // 0138 SETIDX R18 K40 R16 - 0x980C2212, // 0139 SETIDX R3 R17 R18 - 0x00100905, // 013A ADD R4 R4 K5 - 0x5442003F, // 013B LDINT R16 64 - 0x24400810, // 013C GT R16 R4 R16 - 0x78420000, // 013D JMPF R16 #013F - 0x70020000, // 013E JMP #0140 - 0x7001FFE4, // 013F JMP #0125 - 0xA8040001, // 0140 EXBLK 1 1 - 0x70020002, // 0141 JMP #0145 - 0x58340029, // 0142 LDCONST R13 K41 - 0xAC340200, // 0143 CATCH R13 1 0 - 0xB0080000, // 0144 RAISE 2 R0 R0 - 0x80040600, // 0145 RET 1 R3 + 0x8C3C1908, // 007E GETMET R15 R12 K8 + 0x5844001F, // 007F LDCONST R17 K31 + 0x7C3C0400, // 0080 CALL R15 2 + 0x783E0002, // 0081 JMPF R15 #0085 + 0x94401F0D, // 0082 GETIDX R16 R15 K13 + 0x2440210B, // 0083 GT R16 R16 K11 + 0x74420000, // 0084 JMPT R16 #0086 + 0x50400001, // 0085 LDBOOL R16 0 1 + 0x50400200, // 0086 LDBOOL R16 1 0 + 0x60440008, // 0087 GETGBL R17 G8 + 0x5C480800, // 0088 MOVE R18 R4 + 0x7C440200, // 0089 CALL R17 1 + 0x60480013, // 008A GETGBL R18 G19 + 0x7C480000, // 008B CALL R18 0 + 0x78420001, // 008C JMPF R16 #008F + 0x584C0020, // 008D LDCONST R19 K32 + 0x70020000, // 008E JMP #0090 + 0x584C0021, // 008F LDCONST R19 K33 + 0x984A0613, // 0090 SETIDX R18 K3 R19 + 0x984A420A, // 0091 SETIDX R18 K33 R10 + 0x980C2212, // 0092 SETIDX R3 R17 R18 + 0x00100905, // 0093 ADD R4 R4 K5 + 0x00281505, // 0094 ADD R10 R10 K5 + 0x7001FFB3, // 0095 JMP #004A + 0x6028000C, // 0096 GETGBL R10 G12 + 0xB82E2000, // 0097 GETNGBL R11 K16 + 0x8C2C1722, // 0098 GETMET R11 R11 K34 + 0x7C2C0200, // 0099 CALL R11 1 + 0x7C280200, // 009A CALL R10 1 + 0x582C000B, // 009B LDCONST R11 K11 + 0x78160000, // 009C JMPF R5 #009E + 0x04281505, // 009D SUB R10 R10 K5 + 0x1430160A, // 009E LT R12 R11 R10 + 0x78320010, // 009F JMPF R12 #00B1 + 0x8C301308, // 00A0 GETMET R12 R9 K8 + 0x5C381600, // 00A1 MOVE R14 R11 + 0x7C300400, // 00A2 CALL R12 2 + 0x4C340000, // 00A3 LDNIL R13 + 0x1C30180D, // 00A4 EQ R12 R12 R13 + 0x78320008, // 00A5 JMPF R12 #00AF + 0x60300008, // 00A6 GETGBL R12 G8 + 0x5C340800, // 00A7 MOVE R13 R4 + 0x7C300200, // 00A8 CALL R12 1 + 0x60340013, // 00A9 GETGBL R13 G19 + 0x7C340000, // 00AA CALL R13 0 + 0x98360723, // 00AB SETIDX R13 K3 K35 + 0x9836460B, // 00AC SETIDX R13 K35 R11 + 0x980C180D, // 00AD SETIDX R3 R12 R13 + 0x00100905, // 00AE ADD R4 R4 K5 + 0x002C1705, // 00AF ADD R11 R11 K5 + 0x7001FFEC, // 00B0 JMP #009E + 0x8C300524, // 00B1 GETMET R12 R2 K36 + 0xB83A2000, // 00B2 GETNGBL R14 K16 + 0x8C381D25, // 00B3 GETMET R14 R14 K37 + 0x7C380200, // 00B4 CALL R14 1 + 0x7C300400, // 00B5 CALL R12 2 + 0x5412001F, // 00B6 LDINT R4 32 + 0x60340010, // 00B7 GETGBL R13 G16 + 0x8C380126, // 00B8 GETMET R14 R0 K38 + 0x5C401800, // 00B9 MOVE R16 R12 + 0x7C380400, // 00BA CALL R14 2 + 0x7C340200, // 00BB CALL R13 1 + 0xA802001C, // 00BC EXBLK 0 #00DA + 0x5C381A00, // 00BD MOVE R14 R13 + 0x7C380000, // 00BE CALL R14 0 + 0x943C180E, // 00BF GETIDX R15 R12 R14 + 0x6040000F, // 00C0 GETGBL R16 G15 + 0x5C441E00, // 00C1 MOVE R17 R15 + 0x60480013, // 00C2 GETGBL R18 G19 + 0x7C400400, // 00C3 CALL R16 2 + 0x7842000D, // 00C4 JMPF R16 #00D3 + 0x8C401F16, // 00C5 GETMET R16 R15 K22 + 0x58480027, // 00C6 LDCONST R18 K39 + 0x7C400400, // 00C7 CALL R16 2 + 0x78420009, // 00C8 JMPF R16 #00D3 + 0x00401D28, // 00C9 ADD R16 R14 K40 + 0x60440008, // 00CA GETGBL R17 G8 + 0x5C480800, // 00CB MOVE R18 R4 + 0x7C440200, // 00CC CALL R17 1 + 0x60480013, // 00CD GETGBL R18 G19 + 0x7C480000, // 00CE CALL R18 0 + 0x984A0729, // 00CF SETIDX R18 K3 K41 + 0x984A5410, // 00D0 SETIDX R18 K42 R16 + 0x980C2212, // 00D1 SETIDX R3 R17 R18 + 0x00100905, // 00D2 ADD R4 R4 K5 + 0x54420027, // 00D3 LDINT R16 40 + 0x24400810, // 00D4 GT R16 R4 R16 + 0x78420000, // 00D5 JMPF R16 #00D7 + 0x70020000, // 00D6 JMP #00D8 + 0x7001FFE4, // 00D7 JMP #00BD + 0xA8040001, // 00D8 EXBLK 1 1 + 0x70020002, // 00D9 JMP #00DD + 0x5834002B, // 00DA LDCONST R13 K43 + 0xAC340200, // 00DB CATCH R13 1 0 + 0xB0080000, // 00DC RAISE 2 R0 R0 + 0x54120027, // 00DD LDINT R4 40 + 0x60340010, // 00DE GETGBL R13 G16 + 0x8C380126, // 00DF GETMET R14 R0 K38 + 0x5C401800, // 00E0 MOVE R16 R12 + 0x7C380400, // 00E1 CALL R14 2 + 0x7C340200, // 00E2 CALL R13 1 + 0xA802001C, // 00E3 EXBLK 0 #0101 + 0x5C381A00, // 00E4 MOVE R14 R13 + 0x7C380000, // 00E5 CALL R14 0 + 0x943C180E, // 00E6 GETIDX R15 R12 R14 + 0x6040000F, // 00E7 GETGBL R16 G15 + 0x5C441E00, // 00E8 MOVE R17 R15 + 0x60480013, // 00E9 GETGBL R18 G19 + 0x7C400400, // 00EA CALL R16 2 + 0x7842000D, // 00EB JMPF R16 #00FA + 0x8C401F16, // 00EC GETMET R16 R15 K22 + 0x5848002C, // 00ED LDCONST R18 K44 + 0x7C400400, // 00EE CALL R16 2 + 0x78420009, // 00EF JMPF R16 #00FA + 0x00401D2D, // 00F0 ADD R16 R14 K45 + 0x60440008, // 00F1 GETGBL R17 G8 + 0x5C480800, // 00F2 MOVE R18 R4 + 0x7C440200, // 00F3 CALL R17 1 + 0x60480013, // 00F4 GETGBL R18 G19 + 0x7C480000, // 00F5 CALL R18 0 + 0x984A072E, // 00F6 SETIDX R18 K3 K46 + 0x984A5410, // 00F7 SETIDX R18 K42 R16 + 0x980C2212, // 00F8 SETIDX R3 R17 R18 + 0x00100905, // 00F9 ADD R4 R4 K5 + 0x5442002E, // 00FA LDINT R16 47 + 0x24400810, // 00FB GT R16 R4 R16 + 0x78420000, // 00FC JMPF R16 #00FE + 0x70020000, // 00FD JMP #00FF + 0x7001FFE4, // 00FE JMP #00E4 + 0xA8040001, // 00FF EXBLK 1 1 + 0x70020002, // 0100 JMP #0104 + 0x5834002B, // 0101 LDCONST R13 K43 + 0xAC340200, // 0102 CATCH R13 1 0 + 0xB0080000, // 0103 RAISE 2 R0 R0 + 0x5412002F, // 0104 LDINT R4 48 + 0x60340010, // 0105 GETGBL R13 G16 + 0x8C380126, // 0106 GETMET R14 R0 K38 + 0x5C401800, // 0107 MOVE R16 R12 + 0x7C380400, // 0108 CALL R14 2 + 0x7C340200, // 0109 CALL R13 1 + 0xA802001C, // 010A EXBLK 0 #0128 + 0x5C381A00, // 010B MOVE R14 R13 + 0x7C380000, // 010C CALL R14 0 + 0x943C180E, // 010D GETIDX R15 R12 R14 + 0x6040000F, // 010E GETGBL R16 G15 + 0x5C441E00, // 010F MOVE R17 R15 + 0x60480013, // 0110 GETGBL R18 G19 + 0x7C400400, // 0111 CALL R16 2 + 0x7842000D, // 0112 JMPF R16 #0121 + 0x8C401F16, // 0113 GETMET R16 R15 K22 + 0x5848002F, // 0114 LDCONST R18 K47 + 0x7C400400, // 0115 CALL R16 2 + 0x78420009, // 0116 JMPF R16 #0121 + 0x00401D30, // 0117 ADD R16 R14 K48 + 0x60440008, // 0118 GETGBL R17 G8 + 0x5C480800, // 0119 MOVE R18 R4 + 0x7C440200, // 011A CALL R17 1 + 0x60480013, // 011B GETGBL R18 G19 + 0x7C480000, // 011C CALL R18 0 + 0x984A0731, // 011D SETIDX R18 K3 K49 + 0x984A5410, // 011E SETIDX R18 K42 R16 + 0x980C2212, // 011F SETIDX R3 R17 R18 + 0x00100905, // 0120 ADD R4 R4 K5 + 0x54420037, // 0121 LDINT R16 56 + 0x24400810, // 0122 GT R16 R4 R16 + 0x78420000, // 0123 JMPF R16 #0125 + 0x70020000, // 0124 JMP #0126 + 0x7001FFE4, // 0125 JMP #010B + 0xA8040001, // 0126 EXBLK 1 1 + 0x70020002, // 0127 JMP #012B + 0x5834002B, // 0128 LDCONST R13 K43 + 0xAC340200, // 0129 CATCH R13 1 0 + 0xB0080000, // 012A RAISE 2 R0 R0 + 0x54120037, // 012B LDINT R4 56 + 0x60340010, // 012C GETGBL R13 G16 + 0x8C380126, // 012D GETMET R14 R0 K38 + 0x5C401800, // 012E MOVE R16 R12 + 0x7C380400, // 012F CALL R14 2 + 0x7C340200, // 0130 CALL R13 1 + 0xA802001C, // 0131 EXBLK 0 #014F + 0x5C381A00, // 0132 MOVE R14 R13 + 0x7C380000, // 0133 CALL R14 0 + 0x943C180E, // 0134 GETIDX R15 R12 R14 + 0x6040000F, // 0135 GETGBL R16 G15 + 0x5C441E00, // 0136 MOVE R17 R15 + 0x60480013, // 0137 GETGBL R18 G19 + 0x7C400400, // 0138 CALL R16 2 + 0x7842000D, // 0139 JMPF R16 #0148 + 0x8C401F16, // 013A GETMET R16 R15 K22 + 0x58480032, // 013B LDCONST R18 K50 + 0x7C400400, // 013C CALL R16 2 + 0x78420009, // 013D JMPF R16 #0148 + 0x00401D33, // 013E ADD R16 R14 K51 + 0x60440008, // 013F GETGBL R17 G8 + 0x5C480800, // 0140 MOVE R18 R4 + 0x7C440200, // 0141 CALL R17 1 + 0x60480013, // 0142 GETGBL R18 G19 + 0x7C480000, // 0143 CALL R18 0 + 0x984A0734, // 0144 SETIDX R18 K3 K52 + 0x984A5410, // 0145 SETIDX R18 K42 R16 + 0x980C2212, // 0146 SETIDX R3 R17 R18 + 0x00100905, // 0147 ADD R4 R4 K5 + 0x5442003F, // 0148 LDINT R16 64 + 0x24400810, // 0149 GT R16 R4 R16 + 0x78420000, // 014A JMPF R16 #014C + 0x70020000, // 014B JMP #014D + 0x7001FFE4, // 014C JMP #0132 + 0xA8040001, // 014D EXBLK 1 1 + 0x70020002, // 014E JMP #0152 + 0x5834002B, // 014F LDCONST R13 K43 + 0xAC340200, // 0150 CATCH R13 1 0 + 0xB0080000, // 0151 RAISE 2 R0 R0 + 0x80040600, // 0152 RET 1 R3 }) ) ); diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_Shutter.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_Shutter.h index bdf05f9db..54edf5622 100644 --- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_Shutter.h +++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_Shutter.h @@ -46,7 +46,7 @@ be_local_closure(Matter_Plugin_Shutter_read_attribute, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[19]) { /* constants */ + ( &(const bvalue[17]) { /* constants */ /* K0 */ be_nested_str_weak(string), /* K1 */ be_nested_str_weak(matter), /* K2 */ be_nested_str_weak(TLV), @@ -59,17 +59,15 @@ be_local_closure(Matter_Plugin_Shutter_read_attribute, /* name */ /* K9 */ be_nested_str_weak(U2), /* K10 */ be_const_int(1), /* K11 */ be_nested_str_weak(shadow_shutter_pos), - /* K12 */ be_nested_str_weak(shadow_shutter_tilt), - /* K13 */ be_nested_str_weak(shadow_shutter_direction), - /* K14 */ be_const_int(2), - /* K15 */ be_nested_str_weak(shadow_shutter_target), - /* K16 */ be_nested_str_weak(U4), - /* K17 */ be_const_int(3), - /* K18 */ be_nested_str_weak(read_attribute), + /* K12 */ be_nested_str_weak(shadow_shutter_direction), + /* K13 */ be_const_int(2), + /* K14 */ be_nested_str_weak(shadow_shutter_target), + /* K15 */ be_nested_str_weak(U4), + /* K16 */ be_nested_str_weak(read_attribute), }), be_str_weak(read_attribute), &be_const_str_solidified, - ( &(const binstruction[186]) { /* code */ + ( &(const binstruction[129]) { /* code */ 0xA40E0000, // 0000 IMPORT R3 K0 0xB8120200, // 0001 GETNGBL R4 K1 0x88100902, // 0002 GETMBR R4 R4 K2 @@ -77,7 +75,7 @@ be_local_closure(Matter_Plugin_Shutter_read_attribute, /* name */ 0x88180504, // 0004 GETMBR R6 R2 K4 0x541E0101, // 0005 LDINT R7 258 0x1C1C0A07, // 0006 EQ R7 R5 R7 - 0x781E00A8, // 0007 JMPF R7 #00B1 + 0x781E006F, // 0007 JMPF R7 #0078 0x8C1C0105, // 0008 GETMET R7 R0 K5 0x7C1C0200, // 0009 CALL R7 1 0x1C1C0D06, // 000A EQ R7 R6 K6 @@ -87,7 +85,7 @@ be_local_closure(Matter_Plugin_Shutter_read_attribute, /* name */ 0x542A00FE, // 000E LDINT R10 255 0x7C1C0600, // 000F CALL R7 3 0x80040E00, // 0010 RET 1 R7 - 0x7002009D, // 0011 JMP #00B0 + 0x70020064, // 0011 JMP #0077 0x541E0004, // 0012 LDINT R7 5 0x1C1C0C07, // 0013 EQ R7 R6 R7 0x781E0005, // 0014 JMPF R7 #001B @@ -96,166 +94,109 @@ be_local_closure(Matter_Plugin_Shutter_read_attribute, /* name */ 0x58280006, // 0017 LDCONST R10 K6 0x7C1C0600, // 0018 CALL R7 3 0x80040E00, // 0019 RET 1 R7 - 0x70020094, // 001A JMP #00B0 - 0x541E0005, // 001B LDINT R7 6 + 0x7002005B, // 001A JMP #0077 + 0x541E0006, // 001B LDINT R7 7 0x1C1C0C07, // 001C EQ R7 R6 R7 - 0x781E0005, // 001D JMPF R7 #0024 + 0x781E0006, // 001D JMPF R7 #0025 0x8C1C0907, // 001E GETMET R7 R4 K7 - 0x88240909, // 001F GETMBR R9 R4 K9 - 0x58280006, // 0020 LDCONST R10 K6 - 0x7C1C0600, // 0021 CALL R7 3 - 0x80040E00, // 0022 RET 1 R7 - 0x7002008B, // 0023 JMP #00B0 - 0x541E0006, // 0024 LDINT R7 7 - 0x1C1C0C07, // 0025 EQ R7 R6 R7 - 0x781E0008, // 0026 JMPF R7 #0030 - 0x8C1C0907, // 0027 GETMET R7 R4 K7 - 0x88240908, // 0028 GETMBR R9 R4 K8 - 0x542A0007, // 0029 LDINT R10 8 - 0x002A140A, // 002A ADD R10 K10 R10 - 0x542E000F, // 002B LDINT R11 16 - 0x0028140B, // 002C ADD R10 R10 R11 - 0x7C1C0600, // 002D CALL R7 3 - 0x80040E00, // 002E RET 1 R7 - 0x7002007F, // 002F JMP #00B0 - 0x541E000C, // 0030 LDINT R7 13 - 0x1C1C0C07, // 0031 EQ R7 R6 R7 - 0x781E0005, // 0032 JMPF R7 #0039 - 0x8C1C0907, // 0033 GETMET R7 R4 K7 - 0x88240908, // 0034 GETMBR R9 R4 K8 - 0x542A00FE, // 0035 LDINT R10 255 - 0x7C1C0600, // 0036 CALL R7 3 - 0x80040E00, // 0037 RET 1 R7 - 0x70020076, // 0038 JMP #00B0 - 0x541E0007, // 0039 LDINT R7 8 - 0x1C1C0C07, // 003A EQ R7 R6 R7 - 0x781E0007, // 003B JMPF R7 #0044 - 0x8C1C0907, // 003C GETMET R7 R4 K7 - 0x88240909, // 003D GETMBR R9 R4 K9 - 0x542A0063, // 003E LDINT R10 100 - 0x882C010B, // 003F GETMBR R11 R0 K11 - 0x0428140B, // 0040 SUB R10 R10 R11 - 0x7C1C0600, // 0041 CALL R7 3 - 0x80040E00, // 0042 RET 1 R7 - 0x7002006B, // 0043 JMP #00B0 - 0x541E000D, // 0044 LDINT R7 14 - 0x1C1C0C07, // 0045 EQ R7 R6 R7 - 0x781E0009, // 0046 JMPF R7 #0051 - 0x8C1C0907, // 0047 GETMET R7 R4 K7 - 0x88240909, // 0048 GETMBR R9 R4 K9 - 0x542A0063, // 0049 LDINT R10 100 - 0x882C010B, // 004A GETMBR R11 R0 K11 - 0x0428140B, // 004B SUB R10 R10 R11 - 0x542E0063, // 004C LDINT R11 100 - 0x0828140B, // 004D MUL R10 R10 R11 - 0x7C1C0600, // 004E CALL R7 3 - 0x80040E00, // 004F RET 1 R7 - 0x7002005E, // 0050 JMP #00B0 - 0x541E0008, // 0051 LDINT R7 9 - 0x1C1C0C07, // 0052 EQ R7 R6 R7 - 0x781E0007, // 0053 JMPF R7 #005C - 0x8C1C0907, // 0054 GETMET R7 R4 K7 - 0x88240909, // 0055 GETMBR R9 R4 K9 - 0x542A0063, // 0056 LDINT R10 100 - 0x882C010C, // 0057 GETMBR R11 R0 K12 - 0x0428140B, // 0058 SUB R10 R10 R11 + 0x88240908, // 001F GETMBR R9 R4 K8 + 0x542A0007, // 0020 LDINT R10 8 + 0x002A140A, // 0021 ADD R10 K10 R10 + 0x7C1C0600, // 0022 CALL R7 3 + 0x80040E00, // 0023 RET 1 R7 + 0x70020051, // 0024 JMP #0077 + 0x541E000C, // 0025 LDINT R7 13 + 0x1C1C0C07, // 0026 EQ R7 R6 R7 + 0x781E0005, // 0027 JMPF R7 #002E + 0x8C1C0907, // 0028 GETMET R7 R4 K7 + 0x88240908, // 0029 GETMBR R9 R4 K8 + 0x542A00FE, // 002A LDINT R10 255 + 0x7C1C0600, // 002B CALL R7 3 + 0x80040E00, // 002C RET 1 R7 + 0x70020048, // 002D JMP #0077 + 0x541E000D, // 002E LDINT R7 14 + 0x1C1C0C07, // 002F EQ R7 R6 R7 + 0x781E0009, // 0030 JMPF R7 #003B + 0x8C1C0907, // 0031 GETMET R7 R4 K7 + 0x88240909, // 0032 GETMBR R9 R4 K9 + 0x542A0063, // 0033 LDINT R10 100 + 0x882C010B, // 0034 GETMBR R11 R0 K11 + 0x0428140B, // 0035 SUB R10 R10 R11 + 0x542E0063, // 0036 LDINT R11 100 + 0x0828140B, // 0037 MUL R10 R10 R11 + 0x7C1C0600, // 0038 CALL R7 3 + 0x80040E00, // 0039 RET 1 R7 + 0x7002003B, // 003A JMP #0077 + 0x541E0009, // 003B LDINT R7 10 + 0x1C1C0C07, // 003C EQ R7 R6 R7 + 0x781E0010, // 003D JMPF R7 #004F + 0x881C010C, // 003E GETMBR R7 R0 K12 + 0x1C1C0F06, // 003F EQ R7 R7 K6 + 0x781E0001, // 0040 JMPF R7 #0043 + 0x581C0006, // 0041 LDCONST R7 K6 + 0x70020005, // 0042 JMP #0049 + 0x881C010C, // 0043 GETMBR R7 R0 K12 + 0x241C0F06, // 0044 GT R7 R7 K6 + 0x781E0001, // 0045 JMPF R7 #0048 + 0x581C000A, // 0046 LDCONST R7 K10 + 0x70020000, // 0047 JMP #0049 + 0x581C000D, // 0048 LDCONST R7 K13 + 0x8C200907, // 0049 GETMET R8 R4 K7 + 0x88280908, // 004A GETMBR R10 R4 K8 + 0x5C2C0E00, // 004B MOVE R11 R7 + 0x7C200600, // 004C CALL R8 3 + 0x80041000, // 004D RET 1 R8 + 0x70020027, // 004E JMP #0077 + 0x541E000A, // 004F LDINT R7 11 + 0x1C1C0C07, // 0050 EQ R7 R6 R7 + 0x781E0009, // 0051 JMPF R7 #005C + 0x8C1C0907, // 0052 GETMET R7 R4 K7 + 0x88240909, // 0053 GETMBR R9 R4 K9 + 0x542A0063, // 0054 LDINT R10 100 + 0x882C010E, // 0055 GETMBR R11 R0 K14 + 0x0428140B, // 0056 SUB R10 R10 R11 + 0x542E0063, // 0057 LDINT R11 100 + 0x0828140B, // 0058 MUL R10 R10 R11 0x7C1C0600, // 0059 CALL R7 3 0x80040E00, // 005A RET 1 R7 - 0x70020053, // 005B JMP #00B0 - 0x541E000E, // 005C LDINT R7 15 + 0x7002001A, // 005B JMP #0077 + 0x541E0016, // 005C LDINT R7 23 0x1C1C0C07, // 005D EQ R7 R6 R7 - 0x781E0009, // 005E JMPF R7 #0069 + 0x781E0005, // 005E JMPF R7 #0065 0x8C1C0907, // 005F GETMET R7 R4 K7 - 0x88240909, // 0060 GETMBR R9 R4 K9 - 0x542A0063, // 0061 LDINT R10 100 - 0x882C010C, // 0062 GETMBR R11 R0 K12 - 0x0428140B, // 0063 SUB R10 R10 R11 - 0x542E0063, // 0064 LDINT R11 100 - 0x0828140B, // 0065 MUL R10 R10 R11 - 0x7C1C0600, // 0066 CALL R7 3 - 0x80040E00, // 0067 RET 1 R7 - 0x70020046, // 0068 JMP #00B0 - 0x541E0009, // 0069 LDINT R7 10 - 0x1C1C0C07, // 006A EQ R7 R6 R7 - 0x781E0010, // 006B JMPF R7 #007D - 0x881C010D, // 006C GETMBR R7 R0 K13 - 0x1C1C0F06, // 006D EQ R7 R7 K6 - 0x781E0001, // 006E JMPF R7 #0071 - 0x581C0006, // 006F LDCONST R7 K6 - 0x70020005, // 0070 JMP #0077 - 0x881C010D, // 0071 GETMBR R7 R0 K13 - 0x241C0F06, // 0072 GT R7 R7 K6 - 0x781E0001, // 0073 JMPF R7 #0076 - 0x581C000A, // 0074 LDCONST R7 K10 - 0x70020000, // 0075 JMP #0077 - 0x581C000E, // 0076 LDCONST R7 K14 - 0x8C200907, // 0077 GETMET R8 R4 K7 - 0x88280908, // 0078 GETMBR R10 R4 K8 - 0x5C2C0E00, // 0079 MOVE R11 R7 - 0x7C200600, // 007A CALL R8 3 - 0x80041000, // 007B RET 1 R8 - 0x70020032, // 007C JMP #00B0 - 0x541E000A, // 007D LDINT R7 11 - 0x1C1C0C07, // 007E EQ R7 R6 R7 - 0x781E0009, // 007F JMPF R7 #008A - 0x8C1C0907, // 0080 GETMET R7 R4 K7 - 0x88240909, // 0081 GETMBR R9 R4 K9 - 0x542A0063, // 0082 LDINT R10 100 - 0x882C010F, // 0083 GETMBR R11 R0 K15 - 0x0428140B, // 0084 SUB R10 R10 R11 - 0x542E0063, // 0085 LDINT R11 100 - 0x0828140B, // 0086 MUL R10 R10 R11 - 0x7C1C0600, // 0087 CALL R7 3 - 0x80040E00, // 0088 RET 1 R7 - 0x70020025, // 0089 JMP #00B0 - 0x541E000B, // 008A LDINT R7 12 - 0x1C1C0C07, // 008B EQ R7 R6 R7 - 0x781E0005, // 008C JMPF R7 #0093 - 0x8C1C0907, // 008D GETMET R7 R4 K7 - 0x88240908, // 008E GETMBR R9 R4 K8 - 0x58280006, // 008F LDCONST R10 K6 - 0x7C1C0600, // 0090 CALL R7 3 - 0x80040E00, // 0091 RET 1 R7 - 0x7002001C, // 0092 JMP #00B0 - 0x541E0016, // 0093 LDINT R7 23 - 0x1C1C0C07, // 0094 EQ R7 R6 R7 - 0x781E0005, // 0095 JMPF R7 #009C - 0x8C1C0907, // 0096 GETMET R7 R4 K7 - 0x88240908, // 0097 GETMBR R9 R4 K8 - 0x58280006, // 0098 LDCONST R10 K6 - 0x7C1C0600, // 0099 CALL R7 3 - 0x80040E00, // 009A RET 1 R7 - 0x70020013, // 009B JMP #00B0 - 0x541EFFFB, // 009C LDINT R7 65532 - 0x1C1C0C07, // 009D EQ R7 R6 R7 - 0x781E0008, // 009E JMPF R7 #00A8 - 0x8C1C0907, // 009F GETMET R7 R4 K7 - 0x88240910, // 00A0 GETMBR R9 R4 K16 - 0x542A0003, // 00A1 LDINT R10 4 - 0x002A220A, // 00A2 ADD R10 K17 R10 - 0x542E000F, // 00A3 LDINT R11 16 - 0x0028140B, // 00A4 ADD R10 R10 R11 - 0x7C1C0600, // 00A5 CALL R7 3 - 0x80040E00, // 00A6 RET 1 R7 - 0x70020007, // 00A7 JMP #00B0 - 0x541EFFFC, // 00A8 LDINT R7 65533 - 0x1C1C0C07, // 00A9 EQ R7 R6 R7 - 0x781E0004, // 00AA JMPF R7 #00B0 - 0x8C1C0907, // 00AB GETMET R7 R4 K7 - 0x88240910, // 00AC GETMBR R9 R4 K16 - 0x542A0004, // 00AD LDINT R10 5 - 0x7C1C0600, // 00AE CALL R7 3 - 0x80040E00, // 00AF RET 1 R7 - 0x70020007, // 00B0 JMP #00B9 - 0x601C0003, // 00B1 GETGBL R7 G3 - 0x5C200000, // 00B2 MOVE R8 R0 - 0x7C1C0200, // 00B3 CALL R7 1 - 0x8C1C0F12, // 00B4 GETMET R7 R7 K18 - 0x5C240200, // 00B5 MOVE R9 R1 - 0x5C280400, // 00B6 MOVE R10 R2 - 0x7C1C0600, // 00B7 CALL R7 3 - 0x80040E00, // 00B8 RET 1 R7 - 0x80000000, // 00B9 RET 0 + 0x88240908, // 0060 GETMBR R9 R4 K8 + 0x58280006, // 0061 LDCONST R10 K6 + 0x7C1C0600, // 0062 CALL R7 3 + 0x80040E00, // 0063 RET 1 R7 + 0x70020011, // 0064 JMP #0077 + 0x541EFFFB, // 0065 LDINT R7 65532 + 0x1C1C0C07, // 0066 EQ R7 R6 R7 + 0x781E0006, // 0067 JMPF R7 #006F + 0x8C1C0907, // 0068 GETMET R7 R4 K7 + 0x8824090F, // 0069 GETMBR R9 R4 K15 + 0x542A0003, // 006A LDINT R10 4 + 0x002A140A, // 006B ADD R10 K10 R10 + 0x7C1C0600, // 006C CALL R7 3 + 0x80040E00, // 006D RET 1 R7 + 0x70020007, // 006E JMP #0077 + 0x541EFFFC, // 006F LDINT R7 65533 + 0x1C1C0C07, // 0070 EQ R7 R6 R7 + 0x781E0004, // 0071 JMPF R7 #0077 + 0x8C1C0907, // 0072 GETMET R7 R4 K7 + 0x8824090F, // 0073 GETMBR R9 R4 K15 + 0x542A0004, // 0074 LDINT R10 5 + 0x7C1C0600, // 0075 CALL R7 3 + 0x80040E00, // 0076 RET 1 R7 + 0x70020007, // 0077 JMP #0080 + 0x601C0003, // 0078 GETGBL R7 G3 + 0x5C200000, // 0079 MOVE R8 R0 + 0x7C1C0200, // 007A CALL R7 1 + 0x8C1C0F10, // 007B GETMET R7 R7 K16 + 0x5C240200, // 007C MOVE R9 R1 + 0x5C280400, // 007D MOVE R10 R2 + 0x7C1C0600, // 007E CALL R7 3 + 0x80040E00, // 007F RET 1 R7 + 0x80000000, // 0080 RET 0 }) ) ); @@ -372,7 +313,7 @@ be_local_closure(Matter_Plugin_Shutter_invoke_request, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[24]) { /* constants */ + ( &(const bvalue[23]) { /* constants */ /* K0 */ be_nested_str_weak(light), /* K1 */ be_nested_str_weak(matter), /* K2 */ be_nested_str_weak(TLV), @@ -395,12 +336,11 @@ be_local_closure(Matter_Plugin_Shutter_invoke_request, /* name */ /* K19 */ be_nested_str_weak(ShutterStopPosition), /* K20 */ be_nested_str_weak(_X20), /* K21 */ be_nested_str_weak(pos_X25_X3A), - /* K22 */ be_nested_str_weak(tilt_X25_X3A), - /* K23 */ be_nested_str_weak(invoke_request), + /* K22 */ be_nested_str_weak(invoke_request), }), be_str_weak(invoke_request), &be_const_str_solidified, - ( &(const binstruction[131]) { /* code */ + ( &(const binstruction[112]) { /* code */ 0xA4120000, // 0000 IMPORT R4 K0 0xB8160200, // 0001 GETNGBL R5 K1 0x88140B02, // 0002 GETMBR R5 R5 K2 @@ -408,7 +348,7 @@ be_local_closure(Matter_Plugin_Shutter_invoke_request, /* name */ 0x881C0704, // 0004 GETMBR R7 R3 K4 0x54220101, // 0005 LDINT R8 258 0x1C200C08, // 0006 EQ R8 R6 R8 - 0x78220070, // 0007 JMPF R8 #0079 + 0x7822005D, // 0007 JMPF R8 #0066 0x8C200105, // 0008 GETMET R8 R0 K5 0x7C200200, // 0009 CALL R8 1 0x1C200F06, // 000A EQ R8 R7 K6 @@ -426,7 +366,7 @@ be_local_closure(Matter_Plugin_Shutter_invoke_request, /* name */ 0x7C200200, // 0016 CALL R8 1 0x50200200, // 0017 LDBOOL R8 1 0 0x80041000, // 0018 RET 1 R8 - 0x7002005D, // 0019 JMP #0078 + 0x7002004A, // 0019 JMP #0065 0x1C200F0B, // 001A EQ R8 R7 K11 0x7822000D, // 001B JMPF R8 #002A 0xB8220E00, // 001C GETNGBL R8 K7 @@ -442,7 +382,7 @@ be_local_closure(Matter_Plugin_Shutter_invoke_request, /* name */ 0x7C200200, // 0026 CALL R8 1 0x50200200, // 0027 LDBOOL R8 1 0 0x80041000, // 0028 RET 1 R8 - 0x7002004D, // 0029 JMP #0078 + 0x7002003A, // 0029 JMP #0065 0x1C200F0E, // 002A EQ R8 R7 K14 0x7822000D, // 002B JMPF R8 #003A 0xB8220E00, // 002C GETNGBL R8 K7 @@ -458,10 +398,10 @@ be_local_closure(Matter_Plugin_Shutter_invoke_request, /* name */ 0x7C200200, // 0036 CALL R8 1 0x50200200, // 0037 LDBOOL R8 1 0 0x80041000, // 0038 RET 1 R8 - 0x7002003D, // 0039 JMP #0078 + 0x7002002A, // 0039 JMP #0065 0x54220004, // 003A LDINT R8 5 0x1C200E08, // 003B EQ R8 R7 R8 - 0x78220028, // 003C JMPF R8 #0066 + 0x78220027, // 003C JMPF R8 #0065 0xB8220E00, // 003D GETNGBL R8 K7 0x8C201110, // 003E GETMET R8 R8 K16 0x60280008, // 003F GETGBL R10 G8 @@ -502,36 +442,17 @@ be_local_closure(Matter_Plugin_Shutter_invoke_request, /* name */ 0x7C240200, // 0062 CALL R9 1 0x50240200, // 0063 LDBOOL R9 1 0 0x80041200, // 0064 RET 1 R9 - 0x70020011, // 0065 JMP #0078 - 0x54220007, // 0066 LDINT R8 8 - 0x1C200E08, // 0067 EQ R8 R7 R8 - 0x7822000E, // 0068 JMPF R8 #0078 - 0x8C200512, // 0069 GETMET R8 R2 K18 - 0x58280006, // 006A LDCONST R10 K6 - 0x7C200400, // 006B CALL R8 2 - 0x4C240000, // 006C LDNIL R9 - 0x20241009, // 006D NE R9 R8 R9 - 0x78260006, // 006E JMPF R9 #0076 - 0x54260009, // 006F LDINT R9 10 - 0x0C201009, // 0070 DIV R8 R8 R9 - 0x60240008, // 0071 GETGBL R9 G8 - 0x5C281000, // 0072 MOVE R10 R8 - 0x7C240200, // 0073 CALL R9 1 - 0x00262C09, // 0074 ADD R9 K22 R9 - 0x900E2009, // 0075 SETMBR R3 K16 R9 - 0x50240200, // 0076 LDBOOL R9 1 0 - 0x80041200, // 0077 RET 1 R9 - 0x70020008, // 0078 JMP #0082 - 0x60200003, // 0079 GETGBL R8 G3 - 0x5C240000, // 007A MOVE R9 R0 - 0x7C200200, // 007B CALL R8 1 - 0x8C201117, // 007C GETMET R8 R8 K23 - 0x5C280200, // 007D MOVE R10 R1 - 0x5C2C0400, // 007E MOVE R11 R2 - 0x5C300600, // 007F MOVE R12 R3 - 0x7C200800, // 0080 CALL R8 4 - 0x80041000, // 0081 RET 1 R8 - 0x80000000, // 0082 RET 0 + 0x70020008, // 0065 JMP #006F + 0x60200003, // 0066 GETGBL R8 G3 + 0x5C240000, // 0067 MOVE R9 R0 + 0x7C200200, // 0068 CALL R8 1 + 0x8C201116, // 0069 GETMET R8 R8 K22 + 0x5C280200, // 006A MOVE R10 R1 + 0x5C2C0400, // 006B MOVE R11 R2 + 0x5C300600, // 006C MOVE R12 R3 + 0x7C200800, // 006D CALL R8 4 + 0x80041000, // 006E RET 1 R8 + 0x80000000, // 006F RET 0 }) ) ); @@ -660,20 +581,15 @@ be_local_class(Matter_Plugin_Shutter, be_const_map( * be_nested_map(1, ( (struct bmapnode*) &(const bmapnode[]) { { be_const_key_int(258, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, { - be_const_list( * be_nested_list(15, + be_const_list( * be_nested_list(10, ( (struct bvalue*) &(const bvalue[]) { be_const_int(0), be_const_int(5), - be_const_int(6), be_const_int(7), - be_const_int(8), - be_const_int(9), be_const_int(10), be_const_int(11), - be_const_int(12), be_const_int(13), be_const_int(14), - be_const_int(15), be_const_int(23), be_const_int(65532), be_const_int(65533), diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_ShutterTilt.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_ShutterTilt.h new file mode 100644 index 000000000..8126a9e45 --- /dev/null +++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_ShutterTilt.h @@ -0,0 +1,219 @@ +/* Solidification of Matter_Plugin_ShutterTilt.h */ +/********************************************************************\ +* Generated code, don't edit * +\********************************************************************/ +#include "be_constobj.h" + +extern const bclass be_class_Matter_Plugin_ShutterTilt; + +/******************************************************************** +** Solidified function: invoke_request +********************************************************************/ +be_local_closure(Matter_Plugin_ShutterTilt_invoke_request, /* name */ + be_nested_proto( + 13, /* nstack */ + 4, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[11]) { /* constants */ + /* K0 */ be_nested_str_weak(light), + /* K1 */ be_nested_str_weak(matter), + /* K2 */ be_nested_str_weak(TLV), + /* K3 */ be_nested_str_weak(cluster), + /* K4 */ be_nested_str_weak(command), + /* K5 */ be_nested_str_weak(update_shadow_lazy), + /* K6 */ be_nested_str_weak(findsubval), + /* K7 */ be_const_int(0), + /* K8 */ be_nested_str_weak(log), + /* K9 */ be_nested_str_weak(tilt_X25_X3A), + /* K10 */ be_nested_str_weak(invoke_request), + }), + be_str_weak(invoke_request), + &be_const_str_solidified, + ( &(const binstruction[37]) { /* code */ + 0xA4120000, // 0000 IMPORT R4 K0 + 0xB8160200, // 0001 GETNGBL R5 K1 + 0x88140B02, // 0002 GETMBR R5 R5 K2 + 0x88180703, // 0003 GETMBR R6 R3 K3 + 0x881C0704, // 0004 GETMBR R7 R3 K4 + 0x54220101, // 0005 LDINT R8 258 + 0x1C200C08, // 0006 EQ R8 R6 R8 + 0x78220013, // 0007 JMPF R8 #001C + 0x8C200105, // 0008 GETMET R8 R0 K5 + 0x7C200200, // 0009 CALL R8 1 + 0x54220007, // 000A LDINT R8 8 + 0x1C200E08, // 000B EQ R8 R7 R8 + 0x7822000E, // 000C JMPF R8 #001C + 0x8C200506, // 000D GETMET R8 R2 K6 + 0x58280007, // 000E LDCONST R10 K7 + 0x7C200400, // 000F CALL R8 2 + 0x4C240000, // 0010 LDNIL R9 + 0x20241009, // 0011 NE R9 R8 R9 + 0x78260006, // 0012 JMPF R9 #001A + 0x54260009, // 0013 LDINT R9 10 + 0x0C201009, // 0014 DIV R8 R8 R9 + 0x60240008, // 0015 GETGBL R9 G8 + 0x5C281000, // 0016 MOVE R10 R8 + 0x7C240200, // 0017 CALL R9 1 + 0x00261209, // 0018 ADD R9 K9 R9 + 0x900E1009, // 0019 SETMBR R3 K8 R9 + 0x50240200, // 001A LDBOOL R9 1 0 + 0x80041200, // 001B RET 1 R9 + 0x60200003, // 001C GETGBL R8 G3 + 0x5C240000, // 001D MOVE R9 R0 + 0x7C200200, // 001E CALL R8 1 + 0x8C20110A, // 001F GETMET R8 R8 K10 + 0x5C280200, // 0020 MOVE R10 R1 + 0x5C2C0400, // 0021 MOVE R11 R2 + 0x5C300600, // 0022 MOVE R12 R3 + 0x7C200800, // 0023 CALL R8 4 + 0x80041000, // 0024 RET 1 R8 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: read_attribute +********************************************************************/ +be_local_closure(Matter_Plugin_ShutterTilt_read_attribute, /* name */ + be_nested_proto( + 12, /* nstack */ + 3, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[15]) { /* constants */ + /* K0 */ be_nested_str_weak(string), + /* K1 */ be_nested_str_weak(matter), + /* K2 */ be_nested_str_weak(TLV), + /* K3 */ be_nested_str_weak(cluster), + /* K4 */ be_nested_str_weak(attribute), + /* K5 */ be_nested_str_weak(update_shadow_lazy), + /* K6 */ be_nested_str_weak(create_TLV), + /* K7 */ be_nested_str_weak(U1), + /* K8 */ be_const_int(1), + /* K9 */ be_nested_str_weak(U2), + /* K10 */ be_nested_str_weak(shadow_shutter_tilt), + /* K11 */ be_const_int(0), + /* K12 */ be_nested_str_weak(U4), + /* K13 */ be_const_int(3), + /* K14 */ be_nested_str_weak(read_attribute), + }), + be_str_weak(read_attribute), + &be_const_str_solidified, + ( &(const binstruction[63]) { /* code */ + 0xA40E0000, // 0000 IMPORT R3 K0 + 0xB8120200, // 0001 GETNGBL R4 K1 + 0x88100902, // 0002 GETMBR R4 R4 K2 + 0x88140503, // 0003 GETMBR R5 R2 K3 + 0x88180504, // 0004 GETMBR R6 R2 K4 + 0x541E0101, // 0005 LDINT R7 258 + 0x1C1C0A07, // 0006 EQ R7 R5 R7 + 0x781E002E, // 0007 JMPF R7 #0037 + 0x8C1C0105, // 0008 GETMET R7 R0 K5 + 0x7C1C0200, // 0009 CALL R7 1 + 0x541E0006, // 000A LDINT R7 7 + 0x1C1C0C07, // 000B EQ R7 R6 R7 + 0x781E0008, // 000C JMPF R7 #0016 + 0x8C1C0906, // 000D GETMET R7 R4 K6 + 0x88240907, // 000E GETMBR R9 R4 K7 + 0x542A0007, // 000F LDINT R10 8 + 0x002A100A, // 0010 ADD R10 K8 R10 + 0x542E000F, // 0011 LDINT R11 16 + 0x0028140B, // 0012 ADD R10 R10 R11 + 0x7C1C0600, // 0013 CALL R7 3 + 0x80040E00, // 0014 RET 1 R7 + 0x70020020, // 0015 JMP #0037 + 0x541E000E, // 0016 LDINT R7 15 + 0x1C1C0C07, // 0017 EQ R7 R6 R7 + 0x781E0009, // 0018 JMPF R7 #0023 + 0x8C1C0906, // 0019 GETMET R7 R4 K6 + 0x88240909, // 001A GETMBR R9 R4 K9 + 0x542A0063, // 001B LDINT R10 100 + 0x882C010A, // 001C GETMBR R11 R0 K10 + 0x0428140B, // 001D SUB R10 R10 R11 + 0x542E0063, // 001E LDINT R11 100 + 0x0828140B, // 001F MUL R10 R10 R11 + 0x7C1C0600, // 0020 CALL R7 3 + 0x80040E00, // 0021 RET 1 R7 + 0x70020013, // 0022 JMP #0037 + 0x541E000B, // 0023 LDINT R7 12 + 0x1C1C0C07, // 0024 EQ R7 R6 R7 + 0x781E0005, // 0025 JMPF R7 #002C + 0x8C1C0906, // 0026 GETMET R7 R4 K6 + 0x88240907, // 0027 GETMBR R9 R4 K7 + 0x5828000B, // 0028 LDCONST R10 K11 + 0x7C1C0600, // 0029 CALL R7 3 + 0x80040E00, // 002A RET 1 R7 + 0x7002000A, // 002B JMP #0037 + 0x541EFFFB, // 002C LDINT R7 65532 + 0x1C1C0C07, // 002D EQ R7 R6 R7 + 0x781E0007, // 002E JMPF R7 #0037 + 0x8C1C0906, // 002F GETMET R7 R4 K6 + 0x8824090C, // 0030 GETMBR R9 R4 K12 + 0x542A0003, // 0031 LDINT R10 4 + 0x002A1A0A, // 0032 ADD R10 K13 R10 + 0x542E000F, // 0033 LDINT R11 16 + 0x0028140B, // 0034 ADD R10 R10 R11 + 0x7C1C0600, // 0035 CALL R7 3 + 0x80040E00, // 0036 RET 1 R7 + 0x601C0003, // 0037 GETGBL R7 G3 + 0x5C200000, // 0038 MOVE R8 R0 + 0x7C1C0200, // 0039 CALL R7 1 + 0x8C1C0F0E, // 003A GETMET R7 R7 K14 + 0x5C240200, // 003B MOVE R9 R1 + 0x5C280400, // 003C MOVE R10 R2 + 0x7C1C0600, // 003D CALL R7 3 + 0x80040E00, // 003E RET 1 R7 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified class: Matter_Plugin_ShutterTilt +********************************************************************/ +extern const bclass be_class_Matter_Plugin_Shutter; +be_local_class(Matter_Plugin_ShutterTilt, + 0, + &be_class_Matter_Plugin_Shutter, + be_nested_map(5, + ( (struct bmapnode*) &(const bmapnode[]) { + { be_const_key_weak(TYPE, 1), be_nested_str_weak(shutter_X2Btilt) }, + { be_const_key_weak(NAME, -1), be_nested_str_weak(Shutter_X20_X2B_X20Tilt) }, + { be_const_key_weak(invoke_request, 3), be_const_closure(Matter_Plugin_ShutterTilt_invoke_request_closure) }, + { be_const_key_weak(read_attribute, -1), be_const_closure(Matter_Plugin_ShutterTilt_read_attribute_closure) }, + { be_const_key_weak(CLUSTERS, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_map, { + be_const_map( * be_nested_map(1, + ( (struct bmapnode*) &(const bmapnode[]) { + { be_const_key_int(258, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, { + be_const_list( * be_nested_list(4, + ( (struct bvalue*) &(const bvalue[]) { + be_const_int(7), + be_const_int(12), + be_const_int(15), + be_const_int(65532), + })) ) } )) }, + })) ) } )) }, + })), + be_str_weak(Matter_Plugin_ShutterTilt) +); +/*******************************************************************/ + +void be_load_Matter_Plugin_ShutterTilt_class(bvm *vm) { + be_pushntvclass(vm, &be_class_Matter_Plugin_ShutterTilt); + be_setglobal(vm, "Matter_Plugin_ShutterTilt"); + be_pop(vm, 1); +} +/********************************************************************/ +/* End of solidification */ diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UI.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UI.h index 424cf1b1d..189b99c1e 100644 --- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UI.h +++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UI.h @@ -1792,7 +1792,7 @@ be_local_class(Matter_UI, be_nested_map(17, ( (struct bmapnode*) &(const bmapnode[]) { { be_const_key_weak(show_plugins_configuration, -1), be_const_closure(Matter_UI_show_plugins_configuration_closure) }, - { be_const_key_weak(_CLASSES_TYPES, 2), be_nested_str_weak(_X7Crelay_X7Clight0_X7Clight1_X7Clight2_X7Clight3_X7Cshutter_X7Ctemperature_X7Cpressure_X7Cilluminance_X7Chumidity) }, + { be_const_key_weak(_CLASSES_TYPES, 2), be_nested_str_weak(_X7Crelay_X7Clight0_X7Clight1_X7Clight2_X7Clight3_X7Cshutter_X7Cshutter_X2Btilt_X7Ctemperature_X7Cpressure_X7Cilluminance_X7Chumidity) }, { be_const_key_weak(show_fabric_info, 7), be_const_closure(Matter_UI_show_fabric_info_closure) }, { be_const_key_weak(init, -1), be_const_closure(Matter_UI_init_closure) }, { be_const_key_weak(web_add_handler, -1), be_const_closure(Matter_UI_web_add_handler_closure) }, diff --git a/tasmota/tasmota_xdrv_driver/xdrv_52_3_berry_zigbee.ino b/tasmota/tasmota_xdrv_driver/xdrv_52_3_berry_zigbee.ino index de58aeb91..7e93e3751 100644 --- a/tasmota/tasmota_xdrv_driver/xdrv_52_3_berry_zigbee.ino +++ b/tasmota/tasmota_xdrv_driver/xdrv_52_3_berry_zigbee.ino @@ -214,9 +214,9 @@ extern "C" { extern const be_ctypes_structure_t be_zigbee_zcl_frame_struct = { sizeof(ZCLFrame), /* size in bytes */ - 12, /* number of elements */ + 13, /* number of elements */ nullptr, - (const be_ctypes_structure_item_t[12]) { + (const be_ctypes_structure_item_t[13]) { { "cluster", offsetof(ZCLFrame, cluster), 0, 0, ctypes_u16, 0 }, { "cluster_specific", offsetof(ZCLFrame, clusterSpecific), 0, 0, ctypes_u8, 0 }, { "cmd", offsetof(ZCLFrame, cmd), 0, 0, ctypes_u8, 0 }, @@ -227,6 +227,7 @@ extern "C" { { "need_response", offsetof(ZCLFrame, needResponse), 0, 0, ctypes_u8, 0 }, { "payload_ptr", offsetof(ZCLFrame, payload), 0, 0, ctypes_ptr32, 0 }, { "shortaddr", offsetof(ZCLFrame, shortaddr), 0, 0, ctypes_u16, 0 }, + { "srcendpoint", offsetof(ZCLFrame, srcendpoint), 0, 0, ctypes_u8, 0 }, { "transactseq", offsetof(ZCLFrame, transactseq), 0, 0, ctypes_u8, 0 }, { "transactseq_set", offsetof(ZCLFrame, transacSet), 0, 0, ctypes_u8, 0 }, }};