From c44b10e4447e84dbdfa9105edf460ef364a8f2b3 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期一, 30 十一月 2020 19:53:35 +0800
Subject: [PATCH] Merge branch 'master' into WJC

---
 HDL_ON/DAL/DriverLayer/Control_Udp.cs |   79 +++++++++++++++++++++------------------
 1 files changed, 43 insertions(+), 36 deletions(-)

diff --git a/HDL_ON/DAL/DriverLayer/Control_Udp.cs b/HDL_ON/DAL/DriverLayer/Control_Udp.cs
index 2d75cde..3fcae40 100644
--- a/HDL_ON/DAL/DriverLayer/Control_Udp.cs
+++ b/HDL_ON/DAL/DriverLayer/Control_Udp.cs
@@ -11,15 +11,10 @@
 {
     public class Control_Udp
     {
-
-        public Control_Udp()
-        {
-            MainPage.Log($"control bus udp 琚垱寤猴紝鏃堕棿锛歿DateTime.Now}");
-        }
-        /// <summary>
-        /// 閫氳ID
-        /// </summary>
-        public const int msg_id = 1;
+        //public Control_Udp()
+        //{
+        //    MainPage.Log($"control bus udp 琚垱寤猴紝鏃堕棿锛歿DateTime.Now}");
+        //}
         /// <summary>
         /// 閫氳绔彛
         /// </summary>
@@ -165,11 +160,11 @@
                 {
                     case FunctionType.Curtain:
                         byte curtainState = 0;
-                        if (function.trait_on_off.value.ToString() == "on")
+                        if (function.trait_on_off.curValue.ToString() == "on")
                         {
                             curtainState = 1;
                         }
-                        else if (function.trait_on_off.value.ToString() == "off")
+                        else if (function.trait_on_off.curValue.ToString() == "off")
                         {
                             curtainState = 2;
                         }
@@ -181,7 +176,7 @@
                         break;
                     case FunctionType.AC:
                         var aC = Newtonsoft.Json.JsonConvert.DeserializeObject<AC>(Newtonsoft.Json.JsonConvert.SerializeObject(function));//as AC;
-                        ControlBytesSend(Command.InstructionPanelKey, aC.bus_Data.SubnetID, aC.bus_Data.DeviceID, new byte[] { 3, aC.trait_on_off.value.ToString() == "on" ? (byte)1 : (byte)0, aC.bus_Data.LoopID });
+                        ControlBytesSend(Command.InstructionPanelKey, aC.bus_Data.SubnetID, aC.bus_Data.DeviceID, new byte[] { 3, aC.trait_on_off.curValue.ToString() == "on" ? (byte)1 : (byte)0, aC.bus_Data.LoopID });
                         ControlBytesSend(Command.InstructionPanelKey, aC.bus_Data.SubnetID, aC.bus_Data.DeviceID, new byte[] { 6, aC.curModeIndex, aC.bus_Data.LoopID });
                         ControlBytesSend(Command.InstructionPanelKey, aC.bus_Data.SubnetID, aC.bus_Data.DeviceID, new byte[] { 5, aC.curFanIndex, aC.bus_Data.LoopID });
                         byte modeKey = 4;
@@ -203,18 +198,18 @@
                                 modeKey = 2;
                                 break;
                         }
-                        ControlBytesSend(Command.InstructionPanelKey, aC.bus_Data.SubnetID, aC.bus_Data.DeviceID, new byte[] { modeKey, Convert.ToByte(aC.trait_temp.value), aC.bus_Data.LoopID });
+                        ControlBytesSend(Command.InstructionPanelKey, aC.bus_Data.SubnetID, aC.bus_Data.DeviceID, new byte[] { modeKey, Convert.ToByte(aC.trait_temp.curValue), aC.bus_Data.LoopID });
 
                         break;
                     case FunctionType.Relay:
                     case FunctionType.Dimmer:
                         byte brightness = 0;
-                        if (function.trait_on_off.value.ToString() == "on")
+                        if (function.trait_on_off.curValue.ToString() == "on")
                         {
-                            var brightnessTrait = function.function.Find((obj) => obj.name == "brightness");
+                            var brightnessTrait = function.function.Find((obj) => obj.key == "brightness");
                             if (brightnessTrait != null)
                             {
-                                brightness = Convert.ToByte(brightnessTrait.value);
+                                brightness = Convert.ToByte(brightnessTrait.curValue);
                             }
                         }
                         ControlBytesSend(Command.SetSingleLight, function.bus_Data.SubnetID, function.bus_Data.DeviceID,
@@ -229,10 +224,10 @@
                         break;
                     case FunctionType.FloorHeating:
                         var fh = Newtonsoft.Json.JsonConvert.DeserializeObject<FloorHeating>(Newtonsoft.Json.JsonConvert.SerializeObject(function));//as AC;
-                        var fhModeTempTrait = function.function.Find((obj) => obj.name == "mode");
-                        if (fhModeTempTrait.value_key.Count == 4)
+                        var fhModeTempTrait = function.function.Find((obj) => obj.key == "mode");
+                        if (fhModeTempTrait.value.Count == 4)
                         {
-                            byte b1 = function.trait_on_off.value.ToString() == "on" ? (byte)1 : (byte)0;
+                            byte b1 = function.trait_on_off.curValue.ToString() == "on" ? (byte)1 : (byte)0;
                             if (fh.workMode > 0)
                             {
                                 b1 += (byte)(16 + fh.workMode);
@@ -242,7 +237,7 @@
                         break;
                     case FunctionType.Socket:
                         //var s = function as SwitchSocket;
-                        ControlBytesSend(Command.SetSingleLight, function.bus_Data.SubnetID, function.bus_Data.DeviceID, new byte[] { function.bus_Data.LoopID, function.trait_on_off.value.ToString() == "on" ? (byte)100 : (byte)0 });
+                        ControlBytesSend(Command.SetSingleLight, function.bus_Data.SubnetID, function.bus_Data.DeviceID, new byte[] { function.bus_Data.LoopID, function.trait_on_off.curValue.ToString() == "on" ? (byte)100 : (byte)0 });
                         break;
                 }
             }
@@ -270,7 +265,7 @@
                             case FunctionType.RGB:
                                 MainPage.Log($"rgb level : {light.brightness}");
                                 byte b = 100;//寮�鍏虫搷浣滀緷鎹畂n_off瀛楁锛屽疄闄呭紑鍏冲�间緷鎹産rightness锛屽綋on_off涓烘墦寮�锛宐rightness涓嶈兘涓�0
-                                if (light.trait_on_off.value.ToString() == "off")
+                                if (light.trait_on_off.curValue.ToString() == "off")
                                 {
                                     b = 0;
                                 }
@@ -288,7 +283,7 @@
                                 break;
                             case FunctionType.Dimmer:
                                 byte b1 = 100;
-                                if (light.trait_on_off.value.ToString() == "off")
+                                if (light.trait_on_off.curValue.ToString() == "off")
                                 {
                                     b1 = 0;
                                 }
@@ -303,7 +298,7 @@
                                 //DimmerPage.UpdataStates(light);
                                 break;
                             case FunctionType.Relay:
-                                ControlBytesSend(Command.SetSingleLight, subnetId, deviceId, new byte[] { function.bus_Data.LoopID, light.trait_on_off.value.ToString() == "on" ? (byte)100 : (byte)0, 0, 0 });
+                                ControlBytesSend(Command.SetSingleLight, subnetId, deviceId, new byte[] { function.bus_Data.LoopID, light.trait_on_off.curValue.ToString() == "on" ? (byte)100 : (byte)0, 0, 0 });
                                 //RelayPage.UpdataState(light);
                                 break;
                         }
@@ -314,11 +309,11 @@
                         {
                             case FunctionType.Curtain:
                                 byte b1 = 0;
-                                if (curtain.trait_on_off.value.ToString() == "stop")
+                                if (curtain.trait_on_off.curValue.ToString() == "stop")
                                 {
                                     b1 = 0;
                                 }
-                                else if (curtain.trait_on_off.value.ToString() == "on")
+                                else if (curtain.trait_on_off.curValue.ToString() == "on")
                                 {
                                     b1 = 1;
                                 }
@@ -332,7 +327,7 @@
                             case FunctionType.RollingShutter:
                                 //if (commandDictionary.Count > 0)
                                 //{
-                                if (curtain.trait_on_off.value.ToString() == "stop")
+                                if (curtain.trait_on_off.curValue.ToString() == "stop")
                                 {
                                     ControlBytesSend(Command.SetCurtainModelStutas, subnetId, deviceId, new byte[] { curtain.bus_Data.LoopID, 0 });
                                 }
@@ -365,14 +360,14 @@
                         {
                             case FunctionType.AC:
                                 var aC = function as AC;
-                                ControlBytesSend(Command.SetACMode, subnetId, deviceId, new byte[] { aC.bus_Data.LoopID, (byte)aC.curTempType, 32, 32, 32, 32, 32, 0, aC.trait_on_off.value.ToString() == "on" ? (byte)1 : (byte)0, aC.curModeIndex, aC.curFanIndex, Convert.ToByte(aC.trait_temp.value), 0 });
+                                ControlBytesSend(Command.SetACMode, subnetId, deviceId, new byte[] { aC.bus_Data.LoopID, (byte)aC.curTempType, 32, 32, 32, 32, 32, 0, aC.trait_on_off.curValue.ToString() == "on" ? (byte)1 : (byte)0, aC.curModeIndex, aC.curFanIndex, Convert.ToByte(aC.trait_temp.curValue), 0 });
                                 //ControlBytesSend(Command.InstructionPanelKey, aC.bus_Data.SubnetID, aC.bus_Data.DeviceID, new byte[] { 3, aC.on_off == "on" ? (byte)1 : (byte)0, aC.bus_Data.LoopID });
                                 foreach (var dic in commandDictionary)
                                 {
                                     switch (dic.Key)
                                     {
                                         case "on_off":
-                                            ControlBytesSend(Command.InstructionPanelKey, aC.bus_Data.SubnetID, aC.bus_Data.DeviceID, new byte[] { 3, aC.trait_on_off.value.ToString() == "on" ? (byte)1 : (byte)0, aC.bus_Data.LoopID });
+                                            ControlBytesSend(Command.InstructionPanelKey, aC.bus_Data.SubnetID, aC.bus_Data.DeviceID, new byte[] { 3, aC.trait_on_off.curValue.ToString() == "on" ? (byte)1 : (byte)0, aC.bus_Data.LoopID });
                                             break;
                                         case "mode":
                                             ControlBytesSend(Command.InstructionPanelKey, aC.bus_Data.SubnetID, aC.bus_Data.DeviceID, new byte[] { 6, aC.curModeIndex, aC.bus_Data.LoopID });
@@ -400,7 +395,7 @@
                                                     modeKey = 2;
                                                     break;
                                             }
-                                            ControlBytesSend(Command.InstructionPanelKey, aC.bus_Data.SubnetID, aC.bus_Data.DeviceID, new byte[] { modeKey, Convert.ToByte(aC.trait_temp.value), aC.bus_Data.LoopID });
+                                            ControlBytesSend(Command.InstructionPanelKey, aC.bus_Data.SubnetID, aC.bus_Data.DeviceID, new byte[] { modeKey, Convert.ToByte(aC.trait_temp.curValue), aC.bus_Data.LoopID });
                                             break;
                                         default:
                                             MainPage.Log($"鍔熻兘鏈敮鎸� : {dic.Key}");
@@ -413,7 +408,7 @@
                                 var fh = function as FloorHeating;
                                 if (fh.modeTemp.Count == 4)
                                 {
-                                    byte b1 = fh.trait_on_off.value.ToString() == "on" ? (byte)1 : (byte)0;
+                                    byte b1 = fh.trait_on_off.curValue.ToString() == "on" ? (byte)1 : (byte)0;
                                     if (fh.workMode > 0)
                                     {
                                         b1 += (byte)(16 + fh.workMode);
@@ -423,7 +418,7 @@
                                         var dicTempString = "";
                                         commandDictionary.TryGetValue("temp", out dicTempString);
                                         var dicTemp = Convert.ToByte(dicTempString);
-                                        switch (fh.trait_mode.value)
+                                        switch (fh.trait_mode.curValue)
                                         {
                                             case "day":
                                                 fh.modeTemp["day"] = dicTemp;
@@ -449,7 +444,7 @@
                         {
                             case FunctionType.Fan:
                                 var fan = function as Fan;
-                                if (fan.trait_on_off.value.ToString() == "on")
+                                if (fan.trait_on_off.curValue.ToString() == "on")
                                 {
                                     ControlBytesSend(Command.SetSingleLight, subnetId, deviceId, new byte[] { fan.bus_Data.LoopID, (byte)fan.openLevel });
                                 }
@@ -464,7 +459,7 @@
                         {
                             case FunctionType.Socket:
                                 var s = function as SwitchSocket;
-                                ControlBytesSend(Command.SetSingleLight, subnetId, deviceId, new byte[] { s.bus_Data.LoopID, s.trait_on_off.value.ToString() == "on" ? (byte)100 : (byte)0 });
+                                ControlBytesSend(Command.SetSingleLight, subnetId, deviceId, new byte[] { s.bus_Data.LoopID, s.trait_on_off.curValue.ToString() == "on" ? (byte)100 : (byte)0 });
                                 break;
                         }
                         break;
@@ -773,7 +768,7 @@
         {
             try
             {
-                var sendJob = new JObject { { "id", msg_id.ToString() }, { "time_stamp", (DateTime.Now.Ticks / 100000).ToString() } };
+                var sendJob = new JObject { { "id", Control.Ins.msg_id.ToString() }, { "time_stamp", (DateTime.Now.Ticks / 100000).ToString() } };
                 var bodyString = JsonConvert.SerializeObject(sendJob);
                 
                 var sendBytes = Control.Ins.ConvertSendBodyData(CommunicationTopic.SearchLoaclGateway, bodyString);
@@ -783,14 +778,26 @@
                 System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ParameterizedThreadStart(managerSendCount));
                 thread.IsBackground = true;
                 thread.Start(Packet);
-
-                wait();
+                //wait();涓嶉渶瑕佺瓑寰�
             }
             catch (Exception ex)
             {
                 MainPage.Log($"Send bus data error {ex.Message}");
             }
         }
+        /// <summary>
+        /// 鏈湴udp鎺у埗A鍗忚缃戝叧
+        /// </summary>
+        public void SendLocalHdlLinkData(byte[] sendBytes)
+        {
+            Packet = new Packet(sendBytes, new System.Net.IPEndPoint(System.Net.IPAddress.Parse(Control.Ins.reportIp), 8585));
+            Packet.HaveSendCount = 4;//ps锛氭病鏈夐噸鍙戯紝鍚庢湡鏈夋椂闂村彲浠ュ鍔犻噸鍙戝垽鏂�
+            System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ParameterizedThreadStart(managerSendCount));
+            thread.IsBackground = true;
+            thread.Start(Packet);
+            //wait();涓嶉渶瑕佺瓑寰�
+            MainPage.Log($"鍙戦�丠dl-Link鏁版嵁锛孖P:{Control.Ins.reportIp}:8585");
+        }
 
 
     }

--
Gitblit v1.8.0