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