From 2029e64ec0491f7e511dc15bffaf821bfbabe2de Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期一, 20 七月 2020 14:10:22 +0800
Subject: [PATCH] 上传一个很特别的新版本

---
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlWifiLogic.cs |   86 +++++++++++++++++++++++++++++++++++--------
 1 files changed, 70 insertions(+), 16 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlWifiLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlWifiLogic.cs
index ce24a39..37fe00a 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlWifiLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlWifiLogic.cs
@@ -160,6 +160,10 @@
                 return false;
             }
         }
+        /// <summary>
+        /// 鍙樻洿缃戠粶鏃剁殑浜嬩欢
+        /// </summary>
+        private string changedNetworkTime = string.Empty;
 
         #endregion
 
@@ -383,28 +387,78 @@
             {
                 //鍏佽鑱旂綉
                 this.CanAccessHttp = true;
+                this.changedNetworkTime = DateTime.Now.ToString("yyyyMMdd HH.mm.ss");
+                //褰撳墠鎵ц姝ょ嚎绋嬬殑鏃堕棿
+                string thisThreadTime = this.changedNetworkTime;
 
-                //妫�娴嬫槸鍚﹀凡缁忓畬鎴愯处鍙蜂俊鎭垵濮嬪寲
-                if (UserCenterResourse.UserInfo.InitUserInfoSuccess == false
-                   && Common.Config.Instance.HomeId != string.Empty)
+                HdlThreadLogic.Current.RunThread(() =>
                 {
-                    HdlThreadLogic.Current.RunThread(() =>
+                    //涓嶇濡備綍,閮借鏄剧ず杞湀
+                    ProgressBar.Show();
+
+                    //妫�娴嬫槸鍚﹀凡缁忓畬鎴愯处鍙蜂俊鎭垵濮嬪寲
+                    if (UserCenterResourse.UserInfo.InitUserInfoSuccess == false
+                       && Common.Config.Instance.HomeId != string.Empty)
                     {
-                        ProgressBar.Show();
                         //閲嶆柊鍒濆鍖栬处鍙蜂俊鎭�
                         UserCenterLogic.ReInitUserAccoutInfo();
-                        ProgressBar.Close();
+                        //鍥犱负涓婇潰杩欎釜涓滆タ鑰楁椂铔箙鐨�,鎵�浠ュ鐞嗗畬涔嬪悗杩涜鍒ゆ柇
+                        if (thisThreadTime != this.changedNetworkTime)
+                        {
+                            //鍦ㄥ鐞嗙殑杩囩▼涓�,鍒囨崲浜嗙綉缁�,鎶婁笅闈㈢殑澶勭悊浜ょ粰鍙﹀鐨勭嚎绋�
+                            return;
+                        }
+                    }
+                    //閲嶆柊鍒濆鍖朣ocket
+                    ZigBee.Common.Application.FindGateWaySocket.Stop();
+                    //鏂帀鏈湴杩炴帴
+                    HdlGatewayLogic.Current.ClearAllRealGateway();
+                    //鏂帀杩滅▼
+                    ZigBee.Device.ZbGateway.DisConnectRemoteMqttClient();
 
-                    }, ShowErrorMode.NO);
-                }
-                //閲嶆柊鍒濆鍖朣ocket
-                ZigBee.Common.Application.FindGateWaySocket.Stop();
-                if (value == 2)
-                {
-                    ZigBee.Common.Application.FindGateWaySocket.Start();
-                }
-                //鏂帀鏈湴杩炴帴
-                HdlGatewayLogic.Current.ClearAllRealGateway();
+                    if (value == 2)
+                    {
+                        ZigBee.Common.Application.FindGateWaySocket.Start();
+                        //鍊熺敤涓�涓嬭繖涓彉閲�(妫�娴嬭兘鍚﹀箍鎾埌缃戝叧)
+                        UserCenterResourse.DicReceiveGatewayTest = new Dictionary<string, ZigBee.Device.ZbGateway>();
+                        UserCenterResourse.HideOption.CheckCanReceiveGateway = 1;
+                        //鍥哄畾绛変釜3绉掑惂
+                        System.Threading.Thread.Sleep(2500);
+                        if (thisThreadTime != this.changedNetworkTime)
+                        {
+                            //鍙樻洿浜嗙綉缁�,浜ょ敱鍏朵粬绾跨▼澶勭悊
+                            return;
+                        }
+                        UserCenterResourse.HideOption.CheckCanReceiveGateway = 0;
+                        System.Threading.Thread.Sleep(500);
+
+                        bool canReceiveGw = false;
+                        foreach (var gateway in UserCenterResourse.DicReceiveGatewayTest.Values)
+                        {
+                            if (gateway.HomeId == Common.Config.Instance.Home.Id)
+                            {
+                                //鑳藉鎼滅储寰楀埌缃戝叧
+                                canReceiveGw = true;
+                                break;
+                            }
+                        }
+                        UserCenterResourse.DicReceiveGatewayTest = null;
+                        //璁剧疆杩滅▼杩炴帴鐨勫垵濮嬪��
+                        ZigBee.Device.ZbGateway.IsRemote = canReceiveGw == false;
+                        if (canReceiveGw == false)
+                        {
+                            //濡傛灉鏄繙绋嬬殑璇�,杩藉姞绛夊緟鏃堕棿(鎬诲叡5绉�)
+                            System.Threading.Thread.Sleep(2000);
+                        }
+                    }
+                    else if (value == 1)
+                    {
+                        //濡傛灉鏄�4G鐨勮瘽,鐩存帴绛夊緟
+                        System.Threading.Thread.Sleep(4500);
+                    }
+                    ProgressBar.Close();
+
+                }, ShowErrorMode.NO);
             }
         }
 

--
Gitblit v1.8.0