From ba275a7b58e56c61820ffccc86571447b2997e52 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期四, 05 八月 2021 16:18:00 +0800
Subject: [PATCH] 2021-08-05 1.更新

---
 HDL_ON/DAL/DriverLayer/Packet.cs |  123 +++++++++++++++++++++++++---------------
 1 files changed, 77 insertions(+), 46 deletions(-)

diff --git a/HDL_ON/DAL/DriverLayer/Packet.cs b/HDL_ON/DAL/DriverLayer/Packet.cs
index 5f0b9f5..5994565 100644
--- a/HDL_ON/DAL/DriverLayer/Packet.cs
+++ b/HDL_ON/DAL/DriverLayer/Packet.cs
@@ -97,7 +97,8 @@
                 {
                     ddd += bb + ",";
                 }
-                MainPage.Log(ddd);
+                MainPage.Log($"bus鍛戒护:" + ((int)command).ToString("X").PadLeft(4, '0') + " : 鏁版嵁:" + ddd);
+                //MainPage.Log($"bus鍛戒护:"+ ((int)command) + " : 鏁版嵁:" + ddd);
 #endif
                 //澶勭悊鏄惁瑕侀噸鍙戞暟鎹�
                 ManagerReceive(subnetID, deviceID, command, usefulBytes);
@@ -179,7 +180,7 @@
                                     light.trait_on_off.curValue = receiveBytes[light.bus.LoopId] == 0 ? "off" : "on";
                                     if (light.trait_on_off.curValue.ToString() == "on")
                                     {
-                                        light.SetAttrState(FunctionAttributeKey.Brightness, receiveBytes[2].ToString());
+                                        light.SetAttrState(FunctionAttributeKey.Brightness, receiveBytes[i+1].ToString());
                                         light.lastState = Language.StringByID(StringId.Brightness) + " : " + receiveBytes[2] + "%";
                                     }
                                     HomePage.UpdataFunctionStates(light);
@@ -227,25 +228,40 @@
                         break;
                     case Command.SetLogicLoopColorACK:
                     case Command.ReadLogicLoopColorACK:
-                        foreach (var rgb in FunctionList.List.GetLightList())
+                        foreach (var lightTeme in FunctionList.List.GetLightList())
                         {
-                            if (rgb.GetBusId() == subnetID + "_" + deviceID + "_" + receiveBytes[0])
+                            if (lightTeme.GetBusId() == subnetID + "_" + deviceID + "_" + receiveBytes[0])
                             {
-                                if (rgb.spk == SPK.LightRGB)
+                                if (lightTeme.spk == SPK.LightRGB)
                                 {
-                                    rgb.trait_on_off.curValue = receiveBytes[1] > 0 ? "on" : "off";
+                                    lightTeme.trait_on_off.curValue = receiveBytes[1] > 0 ? "on" : "off";
                                     if (receiveBytes[1] > 0)
                                     {
-                                        rgb.SetAttrState(FunctionAttributeKey.Brightness, receiveBytes[1].ToString());
-                                        rgb.lastState = Language.StringByID(StringId.Brightness) + " : " + receiveBytes[1] + "%";
+                                        lightTeme.SetAttrState(FunctionAttributeKey.Brightness, receiveBytes[1].ToString());
+                                        lightTeme.lastState = Language.StringByID(StringId.Brightness) + " : " + receiveBytes[1] + "%";
                                     }
-                                    new Light().SetRGBcolor(new byte[] { receiveBytes[6], receiveBytes[7], receiveBytes[8] }, rgb);
+                                    new Light().SetRGBcolor(new byte[] { receiveBytes[6], receiveBytes[7], receiveBytes[8] }, lightTeme);
 
-                                    HomePage.UpdataFunctionStates(rgb);
-                                    RoomPage.UpdataStates(rgb);
-                                    FunctionPage.UpdataStates(rgb);
-                                    ClassificationPage.UpdataInfo(rgb);
-                                    RGBPage.UpdataStates(rgb);
+                                    HomePage.UpdataFunctionStates(lightTeme);
+                                    RoomPage.UpdataStates(lightTeme);
+                                    FunctionPage.UpdataStates(lightTeme);
+                                    ClassificationPage.UpdataInfo(lightTeme);
+                                    RGBPage.UpdataStates(lightTeme);
+                                }else if(lightTeme.spk == SPK.LightCCT)
+                                {
+                                    lightTeme.trait_on_off.curValue = receiveBytes[1] > 0 ? "on" : "off";
+                                    if (receiveBytes[1] > 0)
+                                    {
+                                        lightTeme.SetAttrState(FunctionAttributeKey.Brightness, receiveBytes[1].ToString());
+                                        lightTeme.lastState = Language.StringByID(StringId.Brightness) + " : " + receiveBytes[1] + "%";
+                                    }
+                                    new Light().SetCCT(new byte[] { receiveBytes[6], receiveBytes[7] }, lightTeme);
+
+                                    HomePage.UpdataFunctionStates(lightTeme);
+                                    RoomPage.UpdataStates(lightTeme);
+                                    FunctionPage.UpdataStates(lightTeme);
+                                    ClassificationPage.UpdataInfo(lightTeme);
+                                    ColorTureLampPage.UpdataStatus(lightTeme);
                                 }
                             }
                         }
@@ -405,38 +421,44 @@
                                 {
                                     function.Fh_Mode_Temp.Add("away", receiveBytes[7]);
                                 }
-
-                                switch (function.GetAttrState(FunctionAttributeKey.Mode))
+                                if (function.GetAttribute(FunctionAttributeKey.Mode) == null)
                                 {
-                                    case "normal":
-                                        function.lastState = Language.StringByID(StringId.Normal);
-                                        function.SetAttrState(FunctionAttributeKey.SetTemp,receiveBytes[4].ToString());
-                                        break;
-                                    case "day":
-                                        function.lastState = Language.StringByID(StringId.Day);
-                                        function.SetAttrState(FunctionAttributeKey.SetTemp, receiveBytes[5].ToString());
-                                        break;
-                                    case "night":
-                                        function.lastState = Language.StringByID(StringId.Night);
-                                        function.SetAttrState(FunctionAttributeKey.SetTemp, receiveBytes[6].ToString());
-                                        break;
-                                    case "timer":
-                                        function.lastState = Language.StringByID(StringId.Auto);
-                                        if (receiveBytes[8] == 0)
-                                        {
-                                            function.SetAttrState(FunctionAttributeKey.TimeFlag, 0);
+                                    function.SetAttrState(FunctionAttributeKey.SetTemp, receiveBytes[4].ToString());
+                                }
+                                else
+                                {
+                                    switch (function.GetAttrState(FunctionAttributeKey.Mode))
+                                    {
+                                        case "normal":
+                                            function.lastState = Language.StringByID(StringId.Normal);
+                                            function.SetAttrState(FunctionAttributeKey.SetTemp, receiveBytes[4].ToString());
+                                            break;
+                                        case "day":
+                                            function.lastState = Language.StringByID(StringId.Day);
                                             function.SetAttrState(FunctionAttributeKey.SetTemp, receiveBytes[5].ToString());
-                                        }
-                                        else
-                                        {
-                                            function.SetAttrState(FunctionAttributeKey.TimeFlag, 1);
+                                            break;
+                                        case "night":
+                                            function.lastState = Language.StringByID(StringId.Night);
                                             function.SetAttrState(FunctionAttributeKey.SetTemp, receiveBytes[6].ToString());
-                                        }
-                                        break;
-                                    case "away":
-                                        function.SetAttrState(FunctionAttributeKey.SetTemp, receiveBytes[7].ToString());
-                                        function.lastState = Language.StringByID(StringId.Away);
-                                        break;
+                                            break;
+                                        case "timer":
+                                            function.lastState = Language.StringByID(StringId.Auto);
+                                            if (receiveBytes[8] == 0)
+                                            {
+                                                function.SetAttrState(FunctionAttributeKey.TimeFlag, 0);
+                                                function.SetAttrState(FunctionAttributeKey.SetTemp, receiveBytes[5].ToString());
+                                            }
+                                            else
+                                            {
+                                                function.SetAttrState(FunctionAttributeKey.TimeFlag, 1);
+                                                function.SetAttrState(FunctionAttributeKey.SetTemp, receiveBytes[6].ToString());
+                                            }
+                                            break;
+                                        case "away":
+                                            function.SetAttrState(FunctionAttributeKey.SetTemp, receiveBytes[7].ToString());
+                                            function.lastState = Language.StringByID(StringId.Away);
+                                            break;
+                                    }
                                 }
                                 var indoorTemp = 0;
                                 if (receiveBytes[9] > 128)
@@ -448,7 +470,14 @@
                                 }
                                 function.SetAttrState(FunctionAttributeKey.RoomTemp, indoorTemp);
 
-                                function.lastState += " " + function.GetAttrState(FunctionAttributeKey.Mode) + new FloorHeating().GetTempUnitString(function);
+                                if (function.GetAttribute(FunctionAttributeKey.Mode) == null)
+                                {
+                                    function.lastState = "";
+                                }
+                                else
+                                {
+                                    function.lastState += " " + function.GetAttrState(FunctionAttributeKey.Mode) + new FloorHeating().GetTempUnitString(function);
+                                }
                                 RoomPage.UpdataStates(function);
                                 FunctionPage.UpdataStates(function);
                                 HomePage.UpdataFunctionStates(function);
@@ -653,8 +682,8 @@
                             /// 10	杩囨护缃戝墿浣�	%
                             /// 11	杩囨护缃戜娇鐢ㄨ秴鏃�	1 瓒呮椂 0 鏃� true/false
                             airFresh.SetAttrState(FunctionAttributeKey.OnOff, receiveBytes[2] == 0 ? "off" : "on");
-                            airFresh.SetAttrState(FunctionAttributeKey.Mode, receiveBytes[3] == 1 ? "humidification" : "fan");
-                            airFresh.SetAttrState(FunctionAttributeKey.Energy, receiveBytes[4] == 1 ? "true" : "false");
+                            airFresh.SetAttrState(FunctionAttributeKey.Mode, receiveBytes[3] == 1 ? "fan" : "humidification");
+                            airFresh.SetAttrState(FunctionAttributeKey.Energy, receiveBytes[4] == 1 ? "false" : "true");
                             switch (receiveBytes[5])
                             {
                                 case 0:
@@ -675,6 +704,8 @@
                             airFresh.SetAttrState(FunctionAttributeKey.IndoorHumidity, receiveBytes[8].ToString());
                             airFresh.SetAttrState(FunctionAttributeKey.FilterRemain, receiveBytes[9].ToString());
                             airFresh.SetAttrState(FunctionAttributeKey.FilterTimeout, receiveBytes[10] == 1 ? "true" : "false");
+                            //璁惧鐘舵�佹帹閫�
+                            Stan.HdlFormLogic.Current.DeviceStatuPush(airFresh, true);
                         }
                         break;
                 }

--
Gitblit v1.8.0