From 6d3ba9484472d090532434e53667c096652149ce Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期五, 25 九月 2020 09:56:14 +0800
Subject: [PATCH] 202009251

---
 HDL_ON/DriverLayer/Control_Bus.cs |   56 ++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 48 insertions(+), 8 deletions(-)

diff --git a/HDL_ON/DriverLayer/Control_Bus.cs b/HDL_ON/DriverLayer/Control_Bus.cs
index b73abd8..1705908 100644
--- a/HDL_ON/DriverLayer/Control_Bus.cs
+++ b/HDL_ON/DriverLayer/Control_Bus.cs
@@ -45,7 +45,47 @@
             return control.UsefulBytes;
         }
 
-        static DAL.Net.TcpListener tcpListener;
+        static bool searchLocalGateway = false;
+        /// <summary>
+        /// 璇诲彇灞�鍩熺綉缃戝叧鍒楄〃
+        /// </summary>
+        public static void SearchLocalGateway()
+        {
+            searchLocalGateway = true;
+            var control = new Control();
+            control.Send(new Target()
+            {
+                IPEndPoint = new System.Net.IPEndPoint(System.Net.IPAddress.Parse(new Shared.Net.NetWiFi().BroadcastIpAddress.ToString()), 6000),
+                Command = Command.ReadGateway,
+                SubnetID = 255,
+                DeviceID = 255,
+                AddData = new byte[] { (byte)new Random().Next(255), (byte)new Random().Next(255) },
+            }, 3, true);
+        }
+        /// <summary>
+        /// 楠岃瘉缃戝叧鍥炲淇℃伅
+        /// </summary>
+        public static void VerGateway(byte[] result)
+        {
+            if(searchLocalGateway)
+            {
+                if (result != null)
+                {
+                    var mac0 = CommonPage.byteToHex16(result[5]) + "." + CommonPage.byteToHex16(result[6]) + "." + CommonPage.byteToHex16(result[7]) + "." + CommonPage.byteToHex16(result[8]) + "." + CommonPage.byteToHex16(result[9]) + "." + CommonPage.byteToHex16(result[10]) + "." + CommonPage.byteToHex16(result[11]) + "." + CommonPage.byteToHex16(result[12]);
+                    // 
+                    if (DB_ResidenceData.residenceData.residenceGatewayMAC.Replace(".", "").Replace(":", "").ToUpper() == mac0.Replace(".", "").Replace(":", "").ToUpper())
+                    {
+                        searchLocalGateway = false;
+                    }
+                    else
+                    {
+                        Mqtt_Cloud.StartCloudMqtt();
+                    }
+                }
+            }
+        }
+
+        static TcpListener tcpListener;
 
         /// <summary>
         /// 000E 鎼滅储鍥炲
@@ -63,7 +103,7 @@
 
                 if (tcpListener == null)
                 {
-                    tcpListener = new DAL.Net.TcpListener();
+                    tcpListener = new TcpListener();
                     tcpListener.OpenServer(8586);
                 }
 
@@ -249,10 +289,10 @@
                     //    receiveFlag += string.Format("{0}", usefulBytes[0]);
                     //    break;
                     //case Command.ReadDeviceModulACK:
-                    //case Command.ReadGatewayACK:
                     //case Command.ReadSecurityStatusACK:
-                    //    receiveFlag = string.Format("{0},{1}", usefulBytes[0], usefulBytes[1]);
-                    //    break;
+                    case Command.ReadGatewayACK:
+                        receiveFlag = string.Format("{0},{1}", usefulBytes[0], usefulBytes[1]);
+                        break;
                     //case Command.UpdataLightDimmingTheLargestLevelACK:
                     //case Command.UpdataLightDimmingMaximumOrMinimumACK:
                     //case Command.WriteManageWirelessNetACK:
@@ -632,11 +672,11 @@
                 //    this.SendFlag += string.Format("{0}", target.AddData[0]);
                 //    break;
                 //case Command.ReadDeviceModul:
-                //case Command.ReadGateway:
                 //case Command.ReadSecurityStatus:
                 //case Command.ReadHornTargetState:
-                //    this.SendFlag = string.Format("{0},{1}", target.AddData[0], target.AddData[1]);
-                //    break;
+                case Command.ReadGateway:
+                    this.SendFlag = string.Format("{0},{1}", target.AddData[0], target.AddData[1]);
+                    break;
                 //case Command.SetScene:
                 //case Command.SetSeries:
                 //case Command.SetHotelCurtain:

--
Gitblit v1.8.0