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 | 88 ++++++++++++++++++++++++------------------- 1 files changed, 49 insertions(+), 39 deletions(-) diff --git a/HDL_ON/DAL/DriverLayer/Control_Udp.cs b/HDL_ON/DAL/DriverLayer/Control_Udp.cs index 75dc09e..3fcae40 100644 --- a/HDL_ON/DAL/DriverLayer/Control_Udp.cs +++ b/HDL_ON/DAL/DriverLayer/Control_Udp.cs @@ -1,26 +1,24 @@ 锘縰sing System; using System.Collections.Generic; using System.Text; -using HDL_ON.Common; using HDL_ON.DriverLayer; using HDL_ON.Entity; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Shared.Net; -namespace HDL_ON +namespace HDL_ON.DriverLayer { public class Control_Udp { - - public Control_Udp() - { - MainPage.Log($"control bus udp 琚垱寤猴紝鏃堕棿锛歿DateTime.Now}"); - } + //public Control_Udp() + //{ + // MainPage.Log($"control bus udp 琚垱寤猴紝鏃堕棿锛歿DateTime.Now}"); + //} /// <summary> - /// 閫氳ID + /// 閫氳绔彛 /// </summary> - public const int msg_id = 1; + public int port = 0; /// <summary> /// 鎺у埗澶辫触娆℃暟 @@ -162,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; } @@ -178,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; @@ -200,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, @@ -226,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); @@ -239,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; } } @@ -267,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; } @@ -285,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; } @@ -300,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; } @@ -311,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; } @@ -329,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 }); } @@ -362,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 }); @@ -397,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}"); @@ -410,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); @@ -420,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; @@ -446,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 }); } @@ -461,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; @@ -653,7 +651,7 @@ new System.Threading.Thread(() => { System.Threading.Thread.Sleep(1000); - UdpSocket._BusSocket.Start(); + UdpSocket._BusSocket.Start(6000); controlLostCount = 0; }) { IsBackground = true }.Start(); @@ -770,24 +768,36 @@ { try { - var sendJob = new JObject { { "id", msg_id.ToString() }, { "time_stamp", (DateTime.Now.Ticks / 10000).ToString() } }; + var sendJob = new JObject { { "id", Control.Ins.msg_id.ToString() }, { "time_stamp", (DateTime.Now.Ticks / 100000).ToString() } }; var bodyString = JsonConvert.SerializeObject(sendJob); - var bodyBytes = Encoding.ASCII.GetBytes(bodyString); - var sendBytes = A_Protocal_Common.apc.ConvertSendBodyData(CommunicationTopic.SearchLoaclGateway, bodyString); + + var sendBytes = Control.Ins.ConvertSendBodyData(CommunicationTopic.SearchLoaclGateway, bodyString); //缁勬挱鍙戦�� Packet = new Packet(sendBytes, new System.Net.IPEndPoint(System.Net.IPAddress.Parse("239.0.168.188"), 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(); + //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