From 304dca51c28183a9dfc192c6b93ea1c00bdd5d97 Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期三, 01 七月 2020 15:00:40 +0800 Subject: [PATCH] 添加了写入功能类型 --- ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WiredGatewaySearchForm.cs | 78 +++++++++++++++++++++++---------------- 1 files changed, 46 insertions(+), 32 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WiredGatewaySearchForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WiredGatewaySearchForm.cs index 74d9ccb..448ff57 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WiredGatewaySearchForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WiredGatewaySearchForm.cs @@ -30,9 +30,9 @@ /// </summary> private bool newGatewayGetting = false; /// <summary> - /// 缃戝叧妫�娴嬩腑 + /// 缃戝叧鎼滅储涓� /// </summary> - private string isGatewayChecking = "0"; + private bool isGatewaySearching = true; #endregion @@ -77,6 +77,8 @@ //鍒濆鍖栬繛鎺ョ殑鍋囨兂鍔ㄧ敾鏁堟灉 this.InitConcetionAnimete(picGwImage, btnMsg); + //寮�鍚綉鍏虫娴嬬殑绾跨▼ + this.StartCheckGatewayThread(); } /// <summary> @@ -226,10 +228,6 @@ string strMsg = btnMsg.Text; HdlThreadLogic.Current.RunThread(() => { - //娓呯┖鍏ㄩ儴鍒楄〃 - HdlGatewayLogic.Current.ClearAllRealGateway(); - ZigBee.Common.Application.IsSearchingGateway = true; - int index = 1; int maxCount = 120 * 2; int timeCount = 120; @@ -237,36 +235,13 @@ { System.Threading.Thread.Sleep(500); maxCount--; - if (maxCount % 4 == 0) - { - lock(isGatewayChecking) - { - if (isGatewayChecking != "1") - { - isGatewayChecking = "1"; - HdlThreadLogic.Current.RunThread(async () => - { - //姣�2绉掓娴嬫悳绱㈠埌鐨勭綉鍏� - await this.CheckZbGatewayAndSetRow(); - lock (isGatewayChecking) - { - isGatewayChecking = "0"; - } - }); - } - } - } - if (this.newGatewayGetting == true) - { - //鑾峰彇寰楀埌鏂扮綉鍏�,鍒欎腑鏂嚎绋� - break; - } if (maxCount % 2 == 0) { timeCount--; } - if (maxCount <= 0) + if (maxCount <= 0 || this.newGatewayGetting == true) { + //鑾峰彇寰楀埌鏂扮綉鍏�,鍒欎腑鏂嚎绋� break; } Application.RunOnMainThread(() => @@ -281,6 +256,9 @@ btnMsg.Text = strMsg + timeCount + "s"; }); } + //鎼滅储缁撴潫 + this.isGatewaySearching = false; + if (maxCount <= 0) { HdlThreadLogic.Current.RunMain(() => @@ -306,6 +284,42 @@ #endregion #region 鈻� 缃戝叧妫�娴媉__________________________ + + /// <summary> + /// 寮�鍚綉鍏虫娴嬬殑绾跨▼ + /// </summary> + private void StartCheckGatewayThread() + { + this.isGatewaySearching = true; + HdlThreadLogic.Current.RunThread(async () => + { + //娓呯┖鍏ㄩ儴鍒楄〃 + HdlGatewayLogic.Current.ClearAllRealGateway(); + ZigBee.Common.Application.IsSearchingGateway = true; + + 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> /// 妫�娴嬫悳绱㈠埌鐨勭綉鍏筹紝鐒跺悗娣诲姞鍒扮敾闈㈢殑琛岄噷闈� @@ -399,7 +413,7 @@ this.newGatewayGetting = true; } - if (mode == GatewayBindMode.First) + if (mode == GatewayBindMode.First || mode == GatewayBindMode.Binded) { //鎴戣寰楄繖閲岄渶瑕佽幏鍙栦竴涓嬫柊缃戝叧鐨勮澶囧垪琛� Common.LocalDevice.Current.SetDeviceToMemmoryByGateway(way); -- Gitblit v1.8.0