From 307e554fb2ef6491d08afc58a6c0a852f44b4f46 Mon Sep 17 00:00:00 2001 From: 陈嘉乐 <cjl@hdlchina.com.cn> Date: 星期二, 01 十二月 2020 17:04:50 +0800 Subject: [PATCH] 2020-12-01-1 --- HDL_ON/DAL/DriverLayer/Control_Udp.cs | 85 ++++++++++++++++++++++++------------------ 1 files changed, 48 insertions(+), 37 deletions(-) diff --git a/HDL_ON/DAL/DriverLayer/Control_Udp.cs b/HDL_ON/DAL/DriverLayer/Control_Udp.cs index c04cb5c..3fcae40 100644 --- a/HDL_ON/DAL/DriverLayer/Control_Udp.cs +++ b/HDL_ON/DAL/DriverLayer/Control_Udp.cs @@ -11,15 +11,14 @@ { 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> /// 鎺у埗澶辫触娆℃暟 @@ -161,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; } @@ -177,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; @@ -199,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, @@ -225,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); @@ -238,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; } } @@ -266,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; } @@ -284,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; } @@ -299,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; } @@ -310,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; } @@ -328,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 }); } @@ -361,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 }); @@ -396,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}"); @@ -409,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); @@ -419,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; @@ -445,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 }); } @@ -460,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; @@ -652,7 +651,7 @@ new System.Threading.Thread(() => { System.Threading.Thread.Sleep(1000); - UdpSocket._BusSocket.Start(); + UdpSocket._BusSocket.Start(6000); controlLostCount = 0; }) { IsBackground = true }.Start(); @@ -769,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