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 | 205 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 203 insertions(+), 2 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlWifiLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlWifiLogic.cs
index 8c68ded..c7bc442 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlWifiLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlWifiLogic.cs
@@ -57,7 +57,7 @@
{
string myId = this.SSID;
- if (myId != null && myId.StartsWith("Widora-") == true)
+ if (myId != null && myId.StartsWith("hdlZigbeeGW-") == true)
{
return true;
}
@@ -114,7 +114,6 @@
/// </summary>
private Com.Mediatek.Elian.ElianNative hdlWiFi = null;
#endif
-
/// <summary>
/// TCP鍗忚
/// </summary>
@@ -127,6 +126,48 @@
/// Ap妯″紡缃戝叧杩斿洖鐨勭閽�
/// </summary>
private string randDesKey = null;
+ /// <summary>
+ /// 鏄惁宸茬粡娣诲姞缃戠粶鍙樺寲鐩戝惉
+ /// </summary>
+ private bool hadAddListenNetWork = false;
+
+ /// <summary>
+ /// 鑳藉惁璁块棶http
+ /// </summary>
+ private bool m_CanAccessHttp = true;
+ /// <summary>
+ /// 涓婁竴娆¤闂甴ttp鐨勬椂闂�
+ /// </summary>
+ private DateTime oldAccessHttpTime = DateTime.Now;
+ /// <summary>
+ /// 鑳藉惁璁块棶http
+ /// </summary>
+ public bool CanAccessHttp
+ {
+ set
+ {
+ m_CanAccessHttp = value;
+ oldAccessHttpTime = DateTime.Now;
+ }
+ get
+ {
+ //8绉掑悗鍏佽鍐嶆璁块棶
+ if (m_CanAccessHttp == true || (DateTime.Now - oldAccessHttpTime).TotalMilliseconds > 8 * 1000)
+ {
+ oldAccessHttpTime = DateTime.Now;
+ return true;
+ }
+ return false;
+ }
+ }
+ /// <summary>
+ /// 鍙樻洿缃戠粶鏃剁殑浜嬩欢
+ /// </summary>
+ private string changedNetworkTime = string.Empty;
+ /// <summary>
+ /// 褰撳墠 wifi 鐨�
+ /// </summary>
+ private string oldSsid = string.Empty;
#endregion
@@ -144,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.";
@@ -286,6 +328,165 @@
#endregion
+ #region 鈻� 鐩戝惉缃戠粶鍙樺寲_______________________
+
+ /// <summary>
+ /// 寮�鍚洃鍚綉缁�
+ /// </summary>
+ public void StartListenNetWork()
+ {
+ if (hadAddListenNetWork == true)
+ {
+ return;
+ }
+ hadAddListenNetWork = true;
+
+#if Android
+ //寮�鍚洃鍚畨鍗撶綉缁滃彉鍖�
+ BaseActivity.NetworkStateChanged += (value) =>
+ {
+ //缃戠粶鍙樺寲
+ this.NetworkStateChanged(value);
+ };
+#endif
+
+#if iOS
+ //寮�鍚洃鍚琁OS缃戠粶鍙樺寲
+ GateWay.Ios.Reachability.ReachabilityChanged += (sender, e) =>
+ {
+ var internetStatus = GateWay.Ios.Reachability.InternetConnectionStatus();
+ if (internetStatus == GateWay.Ios.NetworkStatus.NotReachable)//娌℃湁缃戠粶杩炴帴 0
+ {
+ //缃戠粶鍙樺寲
+ this.NetworkStateChanged(0);
+ }
+ else if (internetStatus == GateWay.Ios.NetworkStatus.ReachableViaCarrierDataNetwork)//3,4G鐨勭綉缁滆繛鎺� 1
+ {
+ //缃戠粶鍙樺寲
+ this.NetworkStateChanged(1);
+ }
+ else if (internetStatus == GateWay.Ios.NetworkStatus.ReachableViaWiFiNetwork) //wifi鐨勭綉缁滆繛鎺� 2
+ {
+ //缃戠粶鍙樺寲
+ this.NetworkStateChanged(2);
+ }
+ };
+#endif
+ }
+
+ /// <summary>
+ /// 鐩戝惉瀹夊崜缃戠粶鍙樺寲
+ /// </summary>
+ /// <param name="value">0:娌℃湁缃戠粶 1:4G 2:wifi</param>
+ 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)
+ {
+ this.CanAccessHttp = false;
+ //鍏抽棴Socket
+ ZigBee.Common.Application.FindGateWaySocket.Stop();
+ }
+ //WIFI鎴栬��4G鏃�
+ if (value == 1 || value == 2)
+ {
+ //鍏佽鑱旂綉
+ this.CanAccessHttp = true;
+ this.changedNetworkTime = DateTime.Now.ToString("yyyyMMdd HH.mm.ss");
+ //褰撳墠鎵ц姝ょ嚎绋嬬殑鏃堕棿
+ string thisThreadTime = this.changedNetworkTime;
+
+ HdlThreadLogic.Current.RunThread(() =>
+ {
+ //涓嶇濡備綍,閮借鏄剧ず杞湀
+ ProgressBar.Show();
+
+ //妫�娴嬫槸鍚﹀凡缁忓畬鎴愯处鍙蜂俊鎭垵濮嬪寲
+ if (UserCenterResourse.UserInfo.InitUserInfoSuccess == false
+ && Common.Config.Instance.HomeId != string.Empty)
+ {
+ //閲嶆柊鍒濆鍖栬处鍙蜂俊鎭�
+ UserCenterLogic.ReInitUserAccoutInfo();
+ //鍥犱负涓婇潰杩欎釜涓滆タ鑰楁椂铔箙鐨�,鎵�浠ュ鐞嗗畬涔嬪悗杩涜鍒ゆ柇
+ if (thisThreadTime != this.changedNetworkTime)
+ {
+ //鍦ㄥ鐞嗙殑杩囩▼涓�,鍒囨崲浜嗙綉缁�,鎶婁笅闈㈢殑澶勭悊浜ょ粰鍙﹀鐨勭嚎绋�
+ return;
+ }
+ }
+ //閲嶆柊鍒濆鍖朣ocket
+ ZigBee.Common.Application.FindGateWaySocket.Stop();
+ System.Threading.Thread.Sleep(100);
+
+ //鏂帀鏈湴杩炴帴
+ 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);
+ }
+ }
+
+ #endregion
+
#region 鈻� 涓�鑸柟娉昣__________________________
#if Android
--
Gitblit v1.8.0