From c8c33200e43f05136eca9fc8ff4942f8def31cc6 Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期三, 18 八月 2021 10:45:40 +0800 Subject: [PATCH] 2021-08-18 1.完善Android对接LinphoneSDK 2.完善SIP相关接口对接 --- HDL_ON/DAL/DriverLayer/Control_Udp.cs | 100 +++++++++++++++++++++++++++++++++---------------- 1 files changed, 67 insertions(+), 33 deletions(-) diff --git a/HDL_ON/DAL/DriverLayer/Control_Udp.cs b/HDL_ON/DAL/DriverLayer/Control_Udp.cs index a87374e..160eee7 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() { @@ -428,14 +437,21 @@ switch (function.spk) { case SPK.LightCCT: - byte b0 = 100;//寮�鍏虫搷浣滀緷鎹畂n_off瀛楁锛屽疄闄呭紑鍏冲�间緷鎹産rightness锛屽綋on_off涓烘墦寮�锛宐rightness涓嶈兘涓�0 - if (function.trait_on_off.curValue.ToString() == "off") + byte b0 = 100; + if (commandDictionary.ContainsKey(FunctionAttributeKey.OnOff)) { - b0 = 0; + if (function.trait_on_off.curValue.ToString() == "off") + { + b0 = 0; + } + else + { + b0 = function.lastBrightness == 0 ? (byte)100 : Convert.ToByte(function.lastBrightness); + } } else { - b0 = Convert.ToByte( function.GetAttrState(FunctionAttributeKey.Brightness)) == 0 ? (byte)100 : Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness)); + b0 = Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness)); } var bytes0 = new byte[] { function.bus.LoopId, b0, @@ -447,22 +463,21 @@ ControlBytesSend(Command.SetLogicLoopColor, subnetId, deviceId, bytes0, 1); break; case SPK.LightRGB: - byte b = 100;//寮�鍏虫搷浣滀緷鎹畂n_off瀛楁锛屽疄闄呭紑鍏冲�间緷鎹産rightness锛屽綋on_off涓烘墦寮�锛宐rightness涓嶈兘涓�0 - if (function.trait_on_off.curValue.ToString() == "off") + byte b = 100; + if (commandDictionary.ContainsKey(FunctionAttributeKey.OnOff)) { - b = 0; - } - else - { - byte lightBri1 = Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness)); - if (lightBri1 == 0) + if (function.trait_on_off.curValue.ToString() == "off") { - b = 100; + b = 0; } else { - b = lightBri1; + b = function.lastBrightness == 0 ? (byte)100 : Convert.ToByte(function.lastBrightness); } + } + else + { + b = Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness)); } var tempLight = new Light(); var bytes = new byte[] { function.bus.LoopId, @@ -476,21 +491,20 @@ break; case SPK.LightDimming: byte b1 = 100; - if (function.trait_on_off.curValue.ToString() == "off") + if (commandDictionary.ContainsKey(FunctionAttributeKey.OnOff)) { - b1 = 0; - } - else - { - byte lightBri = Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness)); - if (lightBri == 0) + if (function.trait_on_off.curValue.ToString() == "off") { - b1 = 100; + b1 = 0; } else { - b1 = lightBri; + b1 = function.lastBrightness == 0 ? (byte)100 : Convert.ToByte(function.lastBrightness); } + } + else + { + b1 = Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness)); } ControlBytesSend(Command.SetSingleLight, subnetId, deviceId, new byte[] { function.bus.LoopId, @@ -646,10 +660,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) @@ -711,7 +725,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 +756,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 +1007,7 @@ try { - //MainPage.Log("鍙戦�佹暟鎹�:" + SendFlag); + MainPage.Log("鍙戦�佹暟鎹�:" + SendFlag); UdpSocket._BusSocket.AsyncBeginSend(packet); packet.HaveSendCount--; @@ -1107,11 +1130,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