From 16bea1d248f0010049bceaa562939297fa26b130 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期四, 25 七月 2024 15:27:21 +0800
Subject: [PATCH] Merge branch 'Dev-Branch-2024' into wjc

---
 HDL_ON/DAL/DriverLayer/Control_Udp.cs |   97 +++++++++++++++++++++++++++++++-----------------
 1 files changed, 62 insertions(+), 35 deletions(-)

diff --git a/HDL_ON/DAL/DriverLayer/Control_Udp.cs b/HDL_ON/DAL/DriverLayer/Control_Udp.cs
index a98ad05..5f3e595 100644
--- a/HDL_ON/DAL/DriverLayer/Control_Udp.cs
+++ b/HDL_ON/DAL/DriverLayer/Control_Udp.cs
@@ -393,8 +393,26 @@
                                 }
                             }
                             break;
-                        case SPK.OtherCommon:
-
+                        case SPK.OtherCommon://2024-02-01 15:19:28
+                            foreach (var attr in f.status)
+                            {
+                                if (attr.key == FunctionAttributeKey.OnOff)
+                                {
+                                    byte onOffValue = 0;
+                                    switch (attr.value)
+                                    {
+                                        case "on":
+                                            onOffValue = 0;
+                                            break;
+                                        case "off":
+                                            onOffValue = 255;
+                                            break;
+                                    }
+                                    ControlBytesSend(Command.SetCommonSwitch, f.localFunction.bus.SubnetID, f.localFunction.bus.DeviceID,
+                                        new byte[] { f.localFunction.bus.LoopId, onOffValue });
+                                    break;
+                                }
+                            }
                             break;
                     }
                 }
@@ -446,21 +464,24 @@
                 {
                     case SPK.LightCCT:
                         #region cct light
-                        byte b0 = 100;
-                        if (commandDictionary.ContainsKey(FunctionAttributeKey.OnOff))
+                        byte b0 = Convert.ToByte(function.lastBrightness);
+                        if (commandDictionary.ContainsKey(FunctionAttributeKey.Brightness))
                         {
-                            if (function.trait_on_off.curValue.ToString() == "off")
-                            {
-                                b0 = 0;
-                            }
-                            else
-                            {
-                                b0 = function.lastBrightness == 0 ? (byte)100 : Convert.ToByte(function.lastBrightness);
-                            }
+                            b0 = Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness));
                         }
                         else
                         {
-                            b0 = Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness));
+                            if (commandDictionary.ContainsKey(FunctionAttributeKey.OnOff))
+                            {
+                                if (function.trait_on_off.curValue.ToString() == "off")
+                                {
+                                    b0 = 0;
+                                }
+                                else
+                                {
+                                    b0 = function.lastBrightness == 0 ? (byte)100 : Convert.ToByte(function.lastBrightness);
+                                }
+                            }
                         }
                         var bytes0 = new byte[] { function.bus.LoopId,
                                             b0,
@@ -474,21 +495,24 @@
                         break;
                     case SPK.LightRGB:
                         #region rgb light
-                        byte b = 100;
-                        if (commandDictionary.ContainsKey(FunctionAttributeKey.OnOff))
+                        byte b = Convert.ToByte(function.lastBrightness);
+                        if (commandDictionary.ContainsKey(FunctionAttributeKey.Brightness))
                         {
-                            if (function.trait_on_off.curValue.ToString() == "off")
-                            {
-                                b = 0;
-                            }
-                            else
-                            {
-                                b = function.lastBrightness == 0 ? (byte)100 : Convert.ToByte(function.lastBrightness);
-                            }
+                            b = Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness));
                         }
                         else
                         {
-                            b = Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness));
+                            if (commandDictionary.ContainsKey(FunctionAttributeKey.OnOff))
+                            {
+                                if (function.trait_on_off.curValue.ToString() == "off")
+                                {
+                                    b = 0;
+                                }
+                                else
+                                {
+                                    b = function.lastBrightness == 0 ? (byte)100 : Convert.ToByte(function.lastBrightness);
+                                }
+                            }
                         }
                         var tempLight = new Light();
                         var bytes = new byte[] { function.bus.LoopId,
@@ -503,21 +527,24 @@
                         break;
                     case SPK.LightDimming:
                         #region dimming light
-                        byte b1 = 100;
-                        if (commandDictionary.ContainsKey(FunctionAttributeKey.OnOff))
+                        byte b1 = Convert.ToByte(function.lastBrightness);
+                        if (commandDictionary.ContainsKey(FunctionAttributeKey.Brightness))
                         {
-                            if (function.trait_on_off.curValue.ToString() == "off")
-                            {
-                                b1 = 0;
-                            }
-                            else
-                            {
-                                b1 = function.lastBrightness == 0 ? (byte)100 : Convert.ToByte(function.lastBrightness);
-                            }
+                            b1 = Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness));
                         }
                         else
                         {
-                            b1 = Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness));
+                            if (commandDictionary.ContainsKey(FunctionAttributeKey.OnOff))
+                            {
+                                if (function.trait_on_off.curValue.ToString() == "off")
+                                {
+                                    b1 = 0;
+                                }
+                                else
+                                {
+                                    b1 = function.lastBrightness == 0 ? (byte)100 : Convert.ToByte(function.lastBrightness);
+                                }
+                            }
                         }
                         ControlBytesSend(Command.SetSingleLight, subnetId, deviceId, new byte[] {
                                             function.bus.LoopId,

--
Gitblit v1.8.0