From 068c68295cad1967f7aafb4e5e951260ef03d4ce Mon Sep 17 00:00:00 2001 From: wei <kaede@kaededeMacBook-Air.local> Date: 星期五, 09 七月 2021 09:16:43 +0800 Subject: [PATCH] 状态属性更改,不要轻易合并 --- HDL_ON/DAL/DriverLayer/Control_Udp.cs | 80 ++++++++++++++++++++++++++++------------ 1 files changed, 56 insertions(+), 24 deletions(-) diff --git a/HDL_ON/DAL/DriverLayer/Control_Udp.cs b/HDL_ON/DAL/DriverLayer/Control_Udp.cs index a87374e..054b17c 100644 --- a/HDL_ON/DAL/DriverLayer/Control_Udp.cs +++ b/HDL_ON/DAL/DriverLayer/Control_Udp.cs @@ -52,6 +52,15 @@ /// </summary> public void ControlBytesSend(Command command, byte subnetID, byte deviceID, byte[] gatewayBytes, int sendCount = 3) { +#if DEBUG + string ddd = ""; + foreach (var bb in gatewayBytes) + { + ddd += bb + ","; + } + MainPage.Log($"鍙戦�乥us鍛戒护:" + ((int)command).ToString("X").PadLeft(4,'0') + " : 鏁版嵁:" + ddd); +#endif + var control = new Control_Udp(); control.Send(new Target() { @@ -429,13 +438,16 @@ { case SPK.LightCCT: byte b0 = 100;//寮�鍏虫搷浣滀緷鎹畂n_off瀛楁锛屽疄闄呭紑鍏冲�间緷鎹産rightness锛屽綋on_off涓烘墦寮�锛宐rightness涓嶈兘涓�0 - if (function.trait_on_off.curValue.ToString() == "off") + if(commandDictionary.ContainsKey(FunctionAttributeKey.OnOff)) { - b0 = 0; + if (function.trait_on_off.state.ToString() == "off") + { + b0 = 0; + } } else { - b0 = Convert.ToByte( function.GetAttrState(FunctionAttributeKey.Brightness)) == 0 ? (byte)100 : Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness)); + b0 = Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness));// == 0 ? (byte)100 : Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness)); } var bytes0 = new byte[] { function.bus.LoopId, b0, @@ -448,7 +460,7 @@ break; case SPK.LightRGB: byte b = 100;//寮�鍏虫搷浣滀緷鎹畂n_off瀛楁锛屽疄闄呭紑鍏冲�间緷鎹産rightness锛屽綋on_off涓烘墦寮�锛宐rightness涓嶈兘涓�0 - if (function.trait_on_off.curValue.ToString() == "off") + if (function.trait_on_off.state.ToString() == "off") { b = 0; } @@ -476,7 +488,7 @@ break; case SPK.LightDimming: byte b1 = 100; - if (function.trait_on_off.curValue.ToString() == "off") + if (function.trait_on_off.state.ToString() == "off") { b1 = 0; } @@ -498,7 +510,7 @@ 0, Convert.ToByte(function.GetAttrState(FunctionAttributeKey.FadeTime)) }); break; case SPK.LightSwitch: - ControlBytesSend(Command.SetSingleLight, subnetId, deviceId, new byte[] { function.bus.LoopId, function.trait_on_off.curValue.ToString() == "on" ? (byte)100 : (byte)0, 0, 0 }); + ControlBytesSend(Command.SetSingleLight, subnetId, deviceId, new byte[] { function.bus.LoopId, function.trait_on_off.state.ToString() == "on" ? (byte)100 : (byte)0, 0, 0 }); break; } break; @@ -507,11 +519,11 @@ { case SPK.CurtainSwitch: byte b1 = 0; - if (function.trait_on_off.curValue.ToString() == "stop") + if (function.trait_on_off.state.ToString() == "stop") { b1 = 0; } - else if (function.trait_on_off.curValue.ToString() == "on") + else if (function.trait_on_off.state.ToString() == "on") { b1 = 1; } @@ -523,7 +535,7 @@ break; case SPK.CurtainTrietex: case SPK.CurtainRoller: - if (function.trait_on_off.curValue.ToString() == "stop") + if (function.trait_on_off.state.ToString() == "stop") { ControlBytesSend(Command.SetCurtainModelStutas, subnetId, deviceId, new byte[] { function.bus.LoopId, 0 }); } @@ -548,7 +560,7 @@ switch (dic.Key) { case FunctionAttributeKey.OnOff: - ControlBytesSend(Command.InstructionPanelKey, function.bus.SubnetID, function.bus.DeviceID, new byte[] { 3, function.trait_on_off.curValue.ToString() == "on" ? (byte)1 : (byte)0, function.bus.LoopId }); + ControlBytesSend(Command.InstructionPanelKey, function.bus.SubnetID, function.bus.DeviceID, new byte[] { 3, function.trait_on_off.state.ToString() == "on" ? (byte)1 : (byte)0, function.bus.LoopId }); break; case "mode": ControlBytesSend(Command.InstructionPanelKey, function.bus.SubnetID, function.bus.DeviceID, new byte[] { 6, ac.GetModeIndex(function), function.bus.LoopId }); @@ -602,7 +614,7 @@ switch (dic.Key) { case FunctionAttributeKey.OnOff: - ControlBytesSend(Command.InstructionPanelKey, function.bus.SubnetID, function.bus.DeviceID, new byte[] { 20, function.trait_on_off.curValue.ToString() == "on" ? (byte)1 : (byte)0, function.bus.LoopId }); + ControlBytesSend(Command.InstructionPanelKey, function.bus.SubnetID, function.bus.DeviceID, new byte[] { 20, function.trait_on_off.state.ToString() == "on" ? (byte)1 : (byte)0, function.bus.LoopId }); break; case "mode": ControlBytesSend(Command.InstructionPanelKey, function.bus.SubnetID, function.bus.DeviceID, new byte[] { 21, fhTemp.GetModeIndex(function), function.bus.LoopId }); @@ -635,7 +647,7 @@ } else { - var onoffString = function.trait_on_off.curValue.ToString(); + var onoffString = function.trait_on_off.state.ToString(); byte b1 = 1; if (onoffString == "off") { @@ -646,10 +658,10 @@ { b1 += (byte)(16 + wm); } - if (commandDictionary.ContainsKey("temp")) + if (commandDictionary.ContainsKey("set_temp")) { var dicTempString = ""; - commandDictionary.TryGetValue("temp", out dicTempString); + commandDictionary.TryGetValue("set_temp", out dicTempString); var dicTemp = Convert.ToByte(dicTempString); var mode = function.GetAttrState(FunctionAttributeKey.Mode); switch (mode) @@ -680,7 +692,7 @@ switch (function.spk) { case SPK.ElectricFan: - if (function.trait_on_off.curValue.ToString() == "on") + if (function.trait_on_off.state.ToString() == "on") { ControlBytesSend(Command.SetSingleLight, subnetId, deviceId, new byte[] { function.bus.LoopId, Convert.ToByte(function.GetAttrState(FunctionAttributeKey.OpenLevel)) }); } @@ -689,7 +701,7 @@ } break; case SPK.ElectricSocket: - ControlBytesSend(Command.SetSingleLight, subnetId, deviceId, new byte[] { function.bus.LoopId, function.trait_on_off.curValue.ToString() == "on" ? (byte)100 : (byte)0 }); + ControlBytesSend(Command.SetSingleLight, subnetId, deviceId, new byte[] { function.bus.LoopId, function.trait_on_off.state.ToString() == "on" ? (byte)100 : (byte)0 }); break; } break; @@ -711,7 +723,7 @@ //4 杩愯妯″紡 1 - 閫氶锛�2 - 鍔犳箍 byte airFreshMode = 1; if (commandDictionary.ContainsKey(FunctionAttributeKey.Mode) == true - && commandDictionary[FunctionAttributeKey.Mode] == "fan") + && commandDictionary[FunctionAttributeKey.Mode] == "humidification") { airFreshMode = 2; } @@ -742,22 +754,31 @@ break; } } - //7 婀垮害璁惧畾 % //8 瀹ゅ唴娓╁害鍊� 鈩� + byte indoorTemp_airFrsh = 0; + if (commandDictionary.ContainsKey(FunctionAttributeKey.IndoorTemp) == true) + { + indoorTemp_airFrsh= Convert.ToByte(commandDictionary[FunctionAttributeKey.IndoorTemp]); + } + byte indoorHumidity_airFrsh = 0; + if (commandDictionary.ContainsKey(FunctionAttributeKey.IndoorHumidity) == true) + { + indoorHumidity_airFrsh = Convert.ToByte(commandDictionary[FunctionAttributeKey.IndoorHumidity]); + } //9 瀹ゅ唴婀垮害鍊� 鈩� //10 杩囨护缃戝墿浣� % - //11 杩囨护缃戜娇鐢ㄨ秴鏃� 1 瓒呮椂 0 鏃� + //11 杩囨护缃戜娇鐢ㄨ秴鏃� 1 瓒呮椂 0 鏃� ControlBytesSend(Command.FreshAirControl_JinMao, subnetId, deviceId, new byte[] { function.bus.LoopId,0, switchValue , airFreshMode,airFreshEnergy, airFreshFan, Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Humidity)), - 0,0,0,0 - //Convert.ToByte( function.GetAttrState(FunctionAttributeKey.IndoorTemp)), - //Convert.ToByte( function.GetAttrState(FunctionAttributeKey.IndoorHumidity)), + indoorTemp_airFrsh, + indoorHumidity_airFrsh, //Convert.ToByte( function.GetAttrState(FunctionAttributeKey.FilterRemain)), //function.GetAttrState(FunctionAttributeKey.FilterTimeout) =="true"?1:0, + 0,0 }); break; } @@ -984,7 +1005,7 @@ try { - //MainPage.Log("鍙戦�佹暟鎹�:" + SendFlag); + MainPage.Log("鍙戦�佹暟鎹�:" + SendFlag); UdpSocket._BusSocket.AsyncBeginSend(packet); packet.HaveSendCount--; @@ -1107,11 +1128,22 @@ 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锛氭病鏈夐噸鍙戯紝鍚庢湡鏈夋椂闂村彲浠ュ鍔犻噸鍙戝垽鏂� + packet.HaveSendCount = 4; System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ParameterizedThreadStart(managerSendCount)); thread.IsBackground = true; thread.Start(packet); //wait();涓嶉渶瑕佺瓑寰� + + + + + //hjSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); + //hjSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, true); + //EndPoint ipep = new IPEndPoint(IPAddress.Parse(CsConst.myLocalIP), HDLUDP.UDPPort); + //hjSocket.Bind(ipep); + + + } catch (Exception ex) { -- Gitblit v1.8.0