From 66a9965c44ecc32a6696abca876ab9d1cd091584 Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期五, 28 二月 2020 15:25:13 +0800
Subject: [PATCH] 2020.2.28

---
 ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs |   33 +++++++++++++++++++++++++--------
 1 files changed, 25 insertions(+), 8 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs b/ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs
index f4c69b6..fd5ef37 100755
--- a/ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs
@@ -22,6 +22,10 @@
         /// 鏂板彂鐜扮殑缃戝叧閫氱煡
         /// </summary>
         public static Action<ZigBee.Device.ZbGateway> NewGateWayAction;
+        /// <summary>
+        /// 涓婁竴娆$殑浣忓畢ID
+        /// </summary>
+        private static string oldHomeID = string.Empty;
 
         public static void Init()
         {
@@ -35,7 +39,6 @@
             {
                 var gateWayList = new List<ZbGateway> { };
                 var searchCount = 6;
-                var oldHomeID = string.Empty;
                 var broadBytes = new byte[44];// byteHomeId[0] ,//H
                 broadBytes[0] = 0xfe;
                 broadBytes[1] = 0x29;
@@ -50,7 +53,9 @@
                     try
                     {
                         if (string.IsNullOrEmpty(Shared.Common.Config.Instance.HomeId))
-                        {
+                        {
+                            //浣忓畢ID涓虹┖鍙湁涓�绉嶅彲鑳藉氨鏄��鍑轰簡鐧诲綍锛岃繖閲岀殑涓婁竴娆′綇瀹匢D瑕佹竻绌�
+                            oldHomeID = "?";
                             System.Threading.Thread.Sleep(1000);
                             continue;
                         }
@@ -65,7 +70,7 @@
                             //鏈�鍚庡啀鏂紑mqtt杩炴帴
                             for (int i = 0; i < list.Count; i++)
                             {
-                                list[i].DisConnect("1");
+                                list[i].DisConnectLocalMqttClient("1");
                             }
                             list.Clear();
                             oldHomeID = Shared.Common.Config.Instance.HomeId;
@@ -111,6 +116,10 @@
                         else
                         {
                             ZbGateway.IsRemote = true;
+                            for (int i = 0; i < ZbGateway.GateWayList.Count; i++)
+                            {
+                                ZbGateway.GateWayList[i].DisConnectLocalMqttClient("1");
+                            }
                         }
 
                         searchCount--;
@@ -208,8 +217,8 @@
                                     var gateWay = ZbGateway.GateWayList.Find(obj => obj.getGatewayBaseInfo != null && obj.getGatewayBaseInfo.gwID == zbGateWay.getGatewayBaseInfo.gwID);
                                     if (gateWay == null)
                                     {
-                                        await zbGateWay.StartLocalMqtt(ipAddress);
                                         ZbGateway.GateWayList.Add(zbGateWay);
+                                        await zbGateWay.StartLocalMqtt(ipAddress);
                                         NewGateWayAction?.Invoke(zbGateWay);
                                     }
                                     else
@@ -219,11 +228,11 @@
                                         gateWay.GatewayOnlineFlage = true;
                                         if (gateWay.getGatewayBaseInfo.IpAddress != ipAddress)
                                         {
-                                            gateWay.DisConnect("2");
+                                            await gateWay.DisConnectLocalMqttClient("2");
                                             ZbGateway.GateWayList.Remove(gateWay);
                                             gateWay = zbGateWay;
-                                            await zbGateWay.StartLocalMqtt(ipAddress);
                                             ZbGateway.GateWayList.Add(gateWay);
+                                            await zbGateWay.StartLocalMqtt(ipAddress);
                                         }
                                         else
                                         {
@@ -270,13 +279,13 @@
                     try
                     {
                         //瀹氭椂妫�娴嬭繙绋嬭繛鎺ユ儏鍐�
-                        await ZbGateway.StartCloudMqtt(); 
+                        await ZbGateway.StartRemoteMqtt();
                         if (!ZbGateway.IsRemote)
                         {
                             System.Threading.Thread.Sleep(500);
                             continue;
                         }
-                        var gateWayList =ZbGateway.GateWayList.FindAll(obj => obj.getGatewayBaseInfo.HomeId == Shared.Common.Config.Instance.HomeId);
+                        var gateWayList = ZbGateway.GateWayList.FindAll(obj => obj.getGatewayBaseInfo.HomeId == Shared.Common.Config.Instance.HomeId);
 
                         if (gateWayList.Count == 1)
                         {
@@ -320,6 +329,14 @@
             { IsBackground = true }.Start();
         }
 
+        /// <summary>
+        /// 閲嶆柊鎼滅储,娉ㄦ剰锛氳皟鐢ㄨ鏂规硶,鍒欎績浣垮叏閮ㄧ綉鍏崇殑mqtt鍏ㄩ儴鏂紑,鐒跺悗閲嶆柊鎼滅储(鍙兘浼氭湁1绉掑欢杩�)
+        /// </summary>
+        public static void ReSearch()
+        {
+            //涓轰簡閭d箞澶氬皯涓囧垎涔嬩竴鐨勫嚑鐜�,杩欓噷璁剧疆鎴愬埆鐨勫彟涓�绫荤殑鍊�
+            oldHomeID = "**";
+        }
 
         /// <summary>
         /// 鎺ユ敹澶勭悊UDP鏁版嵁鍖�

--
Gitblit v1.8.0