From e71c57108e6dd407c2c6f0361f68150f2ff9aed5 Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期三, 15 十二月 2021 13:41:16 +0800
Subject: [PATCH] 版本备份

---
 HDL_ON/DAL/DriverLayer/Control_Udp.cs |   57 ++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 38 insertions(+), 19 deletions(-)

diff --git a/HDL_ON/DAL/DriverLayer/Control_Udp.cs b/HDL_ON/DAL/DriverLayer/Control_Udp.cs
index e5fb38e..6991ad8 100644
--- a/HDL_ON/DAL/DriverLayer/Control_Udp.cs
+++ b/HDL_ON/DAL/DriverLayer/Control_Udp.cs
@@ -978,7 +978,7 @@
                         UdpSocket._BusSocket.AsyncBeginSend(packet);
                         controlLostCount++;
                     }
-                    System.Threading.Thread.Sleep(300);
+                    System.Threading.Thread.Sleep(1000);
                 }
             }
             catch (Exception ex)
@@ -1078,7 +1078,7 @@
         /// <summary>
         /// 璇诲彇缃戝叧IP
         /// </summary>
-        public void SearchLocalGateway()
+        public void SearchLocalGateway(bool broadcast = false)
         {
             try
             {
@@ -1086,23 +1086,21 @@
                 var bodyString = JsonConvert.SerializeObject(sendJob);
                 
                 var sendBytes = Control.Ins.ConvertSendBodyData(CommunicationTopic.SearchLoaclGateway, bodyString, false);
-                //缁勬挱鍙戦��
-                packet = new Packet(sendBytes, new System.Net.IPEndPoint(System.Net.IPAddress.Parse("239.0.168.188"), 8585));
+                if (broadcast)
+                {
+                    //骞挎挱
+                    packet = new Packet(sendBytes, new System.Net.IPEndPoint(System.Net.IPAddress.Parse("255.255.255.255"), 8585));
+                }
+                else
+                {
+                    //缁勬挱鍙戦��
+                    packet = new Packet(sendBytes, new System.Net.IPEndPoint(System.Net.IPAddress.Parse("239.0.168.188"), 8585));
+                }
                 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)
@@ -1111,21 +1109,42 @@
             }
         }
 
+        /// <summary>
+        /// 璇诲彇缃戝叧IP
+        /// </summary>
+        public void SendLinkCommand(string topic,string bodyString)
+        {
+            try
+            {
+                var sendBytes = Control.Ins.ConvertSendBodyData(topic, bodyString, false);
+                //缁勬挱鍙戦��
+                packet = new Packet(sendBytes, new System.Net.IPEndPoint(System.Net.IPAddress.Parse("239.0.168.188"), 8585));
+                packet.HaveSendCount = 4;
+                System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ParameterizedThreadStart(managerSendCount));
+                thread.IsBackground = true;
+                thread.Start(packet);
+            }
+            catch (Exception ex)
+            {
+                MainPage.Log($"Send bus data error {ex.Message}");
+            }
+        }
 
         /// <summary>
         /// 鍙戦�乽dp A鍗忚鏁版嵁
         /// </summary>
-        public void SendLocalHdlLinkData(byte[] sendBytes,string id, bool isWait=false)
+        public void SendLocalHdlLinkData(byte[] sendBytes,string id, int resend = 3)
         {
             packet = new Packet(sendBytes, new System.Net.IPEndPoint(System.Net.IPAddress.Parse(Control.Ins.reportIp), 8585));
+            packet.HaveSendCount = 3 - resend;//閲嶅彂娆℃暟
             sendFlag = id;
             System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ParameterizedThreadStart(managerSendCount));
             thread.IsBackground = true;
             thread.Start(packet);
-            if (isWait)
-            {
-                wait(); 
-            }
+            //if (isWait)
+            //{
+            //    wait(); 
+            //}
             MainPage.Log($"鍙戦�丠dl-Link鏁版嵁锛孖P:{Control.Ins.reportIp}:8585");
         }
     }

--
Gitblit v1.8.0