From f3e65daca7978b21b5888f49b1bf35e1a6e5d4fd Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期一, 13 七月 2020 12:33:31 +0800 Subject: [PATCH] 新版本 --- ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/MiniGatewaySearchForm.cs | 70 ++++++++++++++++++++++------------- 1 files changed, 44 insertions(+), 26 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/MiniGatewaySearchForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/MiniGatewaySearchForm.cs index 0afbf47..a2268ae 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/MiniGatewaySearchForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/MiniGatewaySearchForm.cs @@ -26,9 +26,9 @@ /// </summary> private bool newGatewayGetting = false; /// <summary> - /// 缃戝叧妫�娴嬩腑 + /// 缃戝叧鎼滅储涓� /// </summary> - private string isGatewayChecking = "0"; + private bool isGatewaySearching = true; #endregion @@ -70,6 +70,8 @@ //鍒濆鍖栬繛鎺ョ殑鍋囨兂鍔ㄧ敾鏁堟灉 this.InitConcetionAnimete(); + //寮�鍚綉鍏虫娴嬬殑绾跨▼ + this.StartCheckGatewayThread(); } /// <summary> @@ -160,7 +162,7 @@ btnReDo.Gravity = Gravity.CenterHorizontal; btnReDo.TextAlignment = TextAlignment.Center; btnReDo.TextID = R.MyInternationalizationString.uReDoAgain; - frameback.AddChidren(btnReDo, ChidrenBindMode.BindEventOnly); + frameback.AddChidren(btnReDo, ChidrenBindMode.BindEvent); frameback.ButtonClickEvent += (sender, e) => { //鍒濆鍖栧垵濮嬩腑閮ㄦ帶浠� @@ -254,25 +256,6 @@ HdlGatewayLogic.Current.ClearAllRealGateway(); ZigBee.Common.Application.IsSearchingGateway = true; } - if (timeCount % 4 == 0 && timeCount >= 10) - { - lock (isGatewayChecking) - { - if (isGatewayChecking != "1") - { - isGatewayChecking = "1"; - HdlThreadLogic.Current.RunThread(async () => - { - //姣�2绉掓娴嬫悳绱㈠埌鐨勭綉鍏� - await this.CheckZbGatewayAndSetRow(); - lock (isGatewayChecking) - { - isGatewayChecking = "0"; - } - }); - } - } - } if (timeCount % 2 == 0) { timeOut--; @@ -297,6 +280,9 @@ System.Threading.Thread.Sleep(500); } + //鎼滅储缁撴潫 + this.isGatewaySearching = false; + if (timeOut <= 0) { HdlThreadLogic.Current.RunMain(() => @@ -324,6 +310,38 @@ #region 鈻� 缃戝叧妫�娴媉__________________________ /// <summary> + /// 寮�鍚綉鍏虫娴嬬殑绾跨▼ + /// </summary> + private void StartCheckGatewayThread() + { + this.isGatewaySearching = true; + HdlThreadLogic.Current.RunThread(async () => + { + int count = 0; + while (this.Parent != null && this.isGatewaySearching == true) + { + //姣�2绉掓娴嬫悳绱㈠埌鐨勭綉鍏� + System.Threading.Thread.Sleep(500); + count++; + if (count < 4) + { + //涓昏涓轰簡蹇竴鐐硅兘澶熶腑鏂繖涓嚎绋� + continue; + } + count = 0; + + await this.CheckZbGatewayAndSetRow(); + + if (this.newGatewayGetting == true) + { + //鑾峰彇寰楀埌鏂扮綉鍏�,鍒欎腑鏂嚎绋� + break; + } + } + }); + } + + /// <summary> /// 妫�娴嬫悳绱㈠埌鐨勭綉鍏� /// </summary> private async Task<bool> CheckZbGatewayAndSetRow() @@ -331,7 +349,7 @@ for (int i = 0; i < ZbGateway.GateWayList.Count; i++) { var way = ZbGateway.GateWayList[i]; - var wayId = HdlGatewayLogic.Current.GetGatewayId(way); + var wayId = way.GwId; if (dicZbGatewayDiv.ContainsKey(wayId) == true) { //宸茬粡澶勭悊浜� @@ -342,9 +360,9 @@ GatewayBindMode mode = GatewayBindMode.BindAgain; //濡傛灉鏄涓�娆$粦瀹�,鎴栬�呮槸浠ュ墠宸茬粡缁戝畾杩囦簡鐨� if (HdlGatewayLogic.Current.HomeIdIsEmpty(way) == true - || way.getGatewayBaseInfo.HomeId == Common.Config.Instance.HomeId) + || way.HomeId == Common.Config.Instance.HomeId) { - if (way.getGatewayBaseInfo.HomeId != Common.Config.Instance.HomeId) + if (way.HomeId != Common.Config.Instance.HomeId) { //绗竴娆$粦瀹�,涔熷氨鏄綉鍏充綇瀹匢D涓虹┖ mode = GatewayBindMode.First; @@ -385,7 +403,7 @@ this.newGatewayGetting = true; } - if (mode == GatewayBindMode.First) + if (mode == GatewayBindMode.First|| mode == GatewayBindMode.Binded) { //鎴戣寰楄繖閲岄渶瑕佽幏鍙栦竴涓嬫柊缃戝叧鐨勮澶囧垪琛� Common.LocalDevice.Current.SetDeviceToMemmoryByGateway(way); -- Gitblit v1.8.0