From af9c3e0b3b1eb370e966b3ca9db3f62848d4189b Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期六, 21 八月 2021 13:03:12 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/newBranch1' into WJC

---
 HDL_ON/DAL/DriverLayer/Control_Udp.cs |   53 ++++++++++++++++++++++++++++-------------------------
 1 files changed, 28 insertions(+), 25 deletions(-)

diff --git a/HDL_ON/DAL/DriverLayer/Control_Udp.cs b/HDL_ON/DAL/DriverLayer/Control_Udp.cs
index 789428d..37ee1e3 100644
--- a/HDL_ON/DAL/DriverLayer/Control_Udp.cs
+++ b/HDL_ON/DAL/DriverLayer/Control_Udp.cs
@@ -50,7 +50,7 @@
         /// <summary>
         /// 鍙戦�佹暟鎹紝涓嶉渶瑕佺瓑寰呭洖澶�
         /// </summary>
-        public void ControlBytesSend(Command command, byte subnetID, byte deviceID, byte[] gatewayBytes, int sendCount = 3)
+        public void ControlBytesSend(Command command, byte subnetID, byte deviceID, byte[] gatewayBytes, int sendCount = 3,bool reSend = false)
         {
 #if DEBUG
             string ddd = "";
@@ -69,7 +69,8 @@
                 SubnetID = subnetID,
                 DeviceID = deviceID,
                 AddData = gatewayBytes,
-            }, sendCount, false);
+            }, 3, true);
+            //}, sendCount, reSend);
         }
 
         /// <summary>
@@ -423,7 +424,7 @@
         /// </summary>
         /// <param name="commandString"></param>
         /// <returns></returns>
-        public void WriteBusData(Function function, Dictionary<string, string> commandDictionary)
+        public void WriteBusData(Function function, Dictionary<string, string> commandDictionary,bool reSend = false)
         {
             try
             {
@@ -437,17 +438,21 @@
                         switch (function.spk)
                         {
                             case SPK.LightCCT:
-                                byte b0 = 100;//寮�鍏虫搷浣滀緷鎹畂n_off瀛楁锛屽疄闄呭紑鍏冲�间緷鎹産rightness锛屽綋on_off涓烘墦寮�锛宐rightness涓嶈兘涓�0
-                                if(commandDictionary.ContainsKey(FunctionAttributeKey.OnOff))
+                                byte b0 = 100;
+                                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);
+                                    }
                                 }
                                 else
                                 {
-                                    b0 = Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness));// == 0 ? (byte)100 : Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness));
+                                    b0 = Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness));
                                 }
                                 var bytes0 = new byte[] { function.bus.LoopId,
                                             b0,
@@ -459,22 +464,21 @@
                                 ControlBytesSend(Command.SetLogicLoopColor, subnetId, deviceId, bytes0, 1);
                                 break;
                             case SPK.LightRGB:
-                                byte b = 100;//寮�鍏虫搷浣滀緷鎹畂n_off瀛楁锛屽疄闄呭紑鍏冲�间緷鎹産rightness锛屽綋on_off涓烘墦寮�锛宐rightness涓嶈兘涓�0
-                                if (function.trait_on_off.curValue.ToString() == "off")
+                                byte b = 100;
+                                if (commandDictionary.ContainsKey(FunctionAttributeKey.OnOff))
                                 {
-                                    b = 0;
-                                }
-                                else
-                                {
-                                    byte lightBri1 = Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness));
-                                    if (lightBri1 == 0)
+                                    if (function.trait_on_off.curValue.ToString() == "off")
                                     {
-                                        b = 100;
+                                        b = 0;
                                     }
                                     else
                                     {
-                                        b = lightBri1;
+                                        b = function.lastBrightness == 0 ? (byte)100 : Convert.ToByte(function.lastBrightness);
                                     }
+                                }
+                                else
+                                {
+                                    b = Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness));
                                 }
                                 var tempLight = new Light();
                                 var bytes = new byte[] { function.bus.LoopId,
@@ -488,22 +492,21 @@
                                 break;
                             case SPK.LightDimming:
                                 byte b1 = 100;
-                                if (function.trait_on_off.curValue.ToString() == "off")
+                                if (commandDictionary.ContainsKey(FunctionAttributeKey.OnOff))
                                 {
-                                    b1 = 0;
-                                }
-                                else
-                                {
-                                    byte lightBri = Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness));
-                                    if (lightBri == 0)
+                                    if (function.trait_on_off.curValue.ToString() == "off")
                                     {
-                                        b1 = 100;
+                                        b1 = 0;
                                     }
                                     else
                                     {
-                                        b1 = lightBri;
+                                        b1 = function.lastBrightness == 0 ? (byte)100 : Convert.ToByte(function.lastBrightness);
                                     }
                                 }
+                                else
+                                {
+                                    b1 = Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness));
+                                }
                                 ControlBytesSend(Command.SetSingleLight, subnetId, deviceId, new byte[] {
                                             function.bus.LoopId,
                                             b1,

--
Gitblit v1.8.0