From 4f0ab0ad21ce450b7856d50f98322a7899361386 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期二, 22 九月 2020 10:30:01 +0800
Subject: [PATCH] 不要下载这个备份
---
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlWifiLogic.cs | 111 +++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 94 insertions(+), 17 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlWifiLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlWifiLogic.cs
index ce24a39..c7bc442 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlWifiLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlWifiLogic.cs
@@ -160,6 +160,14 @@
return false;
}
}
+ /// <summary>
+ /// 鍙樻洿缃戠粶鏃剁殑浜嬩欢
+ /// </summary>
+ private string changedNetworkTime = string.Empty;
+ /// <summary>
+ /// 褰撳墠 wifi 鐨�
+ /// </summary>
+ private string oldSsid = string.Empty;
#endregion
@@ -177,6 +185,7 @@
tcpClient = new System.Net.Sockets.TcpClient();
tcpClient.Connect("192.168.8.1", 5000);
networkStream = tcpClient.GetStream();
+ networkStream.ReadTimeout = 1000;
//鍔犲瘑鏁版嵁
string sendDataMsg = "hdl1985.";
string DefaultdesKey = "hdl1985.";
@@ -369,8 +378,23 @@
/// 鐩戝惉瀹夊崜缃戠粶鍙樺寲
/// </summary>
/// <param name="value">0:娌℃湁缃戠粶 1:4G 2:wifi</param>
- private void NetworkStateChanged(int value)
+ public void NetworkStateChanged(int value)
{
+ if (Common.Config.Instance.HomeId == string.Empty)
+ {
+ //鍦ㄧ櫥褰曠晫闈笉澶勭悊
+ return;
+ }
+#if iOS
+ var nowSsid = this.SSID;
+ if (this.oldSsid == nowSsid)
+ {
+ //濡傛灉褰撳墠 wifi 鐨勫悕瀛椾竴鏍凤紝鍒欎笉澶勭悊
+ ZigBee.Common.Application.FindGateWaySocket.Start();
+ return;
+ }
+ this.oldSsid = nowSsid;
+#endif
//娌℃湁缃戠粶
if (value == 0)
{
@@ -383,28 +407,81 @@
{
//鍏佽鑱旂綉
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();
+ System.Threading.Thread.Sleep(100);
- }, ShowErrorMode.NO);
- }
- //閲嶆柊鍒濆鍖朣ocket
- ZigBee.Common.Application.FindGateWaySocket.Stop();
- if (value == 2)
- {
- ZigBee.Common.Application.FindGateWaySocket.Start();
- }
- //鏂帀鏈湴杩炴帴
- HdlGatewayLogic.Current.ClearAllRealGateway();
+ //鏂帀鏈湴杩炴帴
+ HdlGatewayLogic.Current.ClearAllRealGatewayConection(true);
+ //鏂帀杩滅▼
+ ZigBee.Device.ZbGateway.DisConnectRemoteMqttClient();
+
+ //濡傛灉鏄痺ifi
+ 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