From 6c8946b21635246355ec41f216426783685a14b2 Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期三, 14 十月 2020 09:14:09 +0800
Subject: [PATCH] 20201013

---
 HDL_ON/DriverLayer/Control_Bus.cs |   59 +++++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 49 insertions(+), 10 deletions(-)

diff --git a/HDL_ON/DriverLayer/Control_Bus.cs b/HDL_ON/DriverLayer/Control_Bus.cs
index b73abd8..cc437dc 100644
--- a/HDL_ON/DriverLayer/Control_Bus.cs
+++ b/HDL_ON/DriverLayer/Control_Bus.cs
@@ -37,7 +37,7 @@
                 AddData = gatewayBytes,
             }, sendCount, false);
         }
-
+        //鑾峰彇A鍗忚缃戝叧IP
         public static byte[] ReadGatewayIPAddress()
         {
             Control control = new Control();
@@ -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);
                 }
 
@@ -137,7 +177,6 @@
         {
             if (((System.Net.IPEndPoint)remoteEndPoint).Port == 6688)
             {
-        
                 for (int i = 0; i < controlList.Count; i++)
                 {
                     try
@@ -249,10 +288,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 +671,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