From acc8caee31c4be90bd38d1af18136b0e84f6fe94 Mon Sep 17 00:00:00 2001
From: wxr <wxr@hdlchina.com.cn>
Date: 星期五, 27 九月 2024 14:01:19 +0800
Subject: [PATCH] Merge branch 'feature/v2.7_迭代' into feature/V2.7_Google

---
 HDL_ON/DAL/DriverLayer/Control_Udp.cs |  135 +++++++++++++++++++++++++++++++-------------
 1 files changed, 94 insertions(+), 41 deletions(-)

diff --git a/HDL_ON/DAL/DriverLayer/Control_Udp.cs b/HDL_ON/DAL/DriverLayer/Control_Udp.cs
index 2791215..bc21d64 100644
--- a/HDL_ON/DAL/DriverLayer/Control_Udp.cs
+++ b/HDL_ON/DAL/DriverLayer/Control_Udp.cs
@@ -104,7 +104,7 @@
             try
             {
                 //璐﹀彿娌$櫥褰曚笉鍥炲
-                if ( UserInfo.Current == null || ! UserInfo.Current.IsLogin)
+                if ( UserInfo.Current == null )///|| ! UserInfo.Current.IsLogin)
                 {
                     return;
                 }
@@ -197,7 +197,7 @@
                             }
                             break;
                         case SPK.AcStandard:
-                        case SPK.HvacAC:
+                        case SPK.HvacAC:case SPK.HvacAcPanel:
                             AC acTemp = new AC();
                             byte onoff = 0;
                             byte mode = 0;
@@ -302,7 +302,8 @@
                             break;
                         case SPK.LightRGB:
                             break;
-                        case SPK.HvacFloorHeat:case SPK.FloorHeatStandard:
+                        case SPK.HvacFloorHeat:case SPK.HvacFloorHeatPanel:
+                        case SPK.FloorHeatStandard:
                             if (f.status.Find((obj)=>obj.key ==FunctionAttributeKey.Mode) == null)
                             {
                                 foreach (var dic in f.status)
@@ -392,6 +393,27 @@
                                 }
                             }
                             break;
+                        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;
                     }
                 }
             }
@@ -442,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,
@@ -470,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,
@@ -499,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,
@@ -552,12 +583,33 @@
                         }
                         else
                         {
-                            ControlBytesSend(Command.SetCurtainModelStutas, subnetId, deviceId, new byte[] { (byte)(((int)function.bus.LoopId) + 16), Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Percent)) });
+                            if (commandDictionary.ContainsKey(FunctionAttributeKey.Percent))
+                            {
+                                ControlBytesSend(Command.SetCurtainModelStutas, subnetId, deviceId, new byte[] { (byte)(((int)function.bus.LoopId) + 16), Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Percent)) });
+                            }
+                            else
+                            {
+
+                                byte tempCurtainState = 0;
+                                if (function.trait_on_off.curValue.ToString() == "stop")
+                                {
+                                    tempCurtainState = 0;
+                                }
+                                else if (function.trait_on_off.curValue.ToString() == "on")
+                                {
+                                    tempCurtainState = 1;
+                                }
+                                else
+                                {
+                                    tempCurtainState = 2;
+                                }
+                                ControlBytesSend(Command.SetCurtainModelStutas, subnetId, deviceId, new byte[] { function.bus.LoopId, tempCurtainState });
+                            }
 
                         }
                         break;
                     case SPK.AcStandard:
-                    case SPK.HvacAC:
+                    case SPK.HvacAC:case SPK.HvacAcPanel:
                         var ac = new AC();
 
                         byte onoff = 0;
@@ -683,7 +735,7 @@
                         0,0,0,0,0,0,0,onoff,mode,fan,temp,sanfan});
 
                         break;
-                    case SPK.HvacFloorHeat:case SPK.FloorHeatStandard:
+                    case SPK.HvacFloorHeat:case SPK.FloorHeatStandard:case SPK.HvacFloorHeatPanel:
                         var fhTemp = new FloorHeating();
                         if (function.Fh_Mode_Temp.Count == 4)
                         {
@@ -905,10 +957,10 @@
                         ControlBytesSend(Command.ReadCurtainStatus, subnetId, deviceId, new byte[] { function.bus.LoopId });
                         break;
                     case SPK.AcStandard:
-                    case SPK.HvacAC:
+                    case SPK.HvacAC:case SPK.HvacAcPanel:
                         ControlBytesSend(Command.ReadACMode, subnetId, deviceId, new byte[] { function.bus.LoopId });
                         break;
-                    case SPK.HvacFloorHeat:case SPK.FloorHeatStandard:
+                    case SPK.HvacFloorHeat:case SPK.FloorHeatStandard:case SPK.HvacFloorHeatPanel:
                         ControlBytesSend(Command.ReadFloorHeat, subnetId, deviceId, new byte[] { function.bus.LoopId });
                         break;
                     case SPK.HvacFan:
@@ -1166,6 +1218,7 @@
         /// </summary>
         public void SearchLocalGateway(bool broadcast = false)
         {
+            //MainPage.Log("SearchLocalGateway");
             try
             {
                 var sendJob = new JObject { { "id", Control.Ins.msg_id.ToString() }, { "time_stamp", Utlis.GetTimestamp ()} };

--
Gitblit v1.8.0