From a4924de3136289d10cabbf2f61a228387d44ded7 Mon Sep 17 00:00:00 2001 From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local> Date: 星期四, 07 十一月 2019 13:48:36 +0800 Subject: [PATCH] Merge branch 'dev-tzy' into DEV_GXC --- ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WiredGatewaySearchForm.cs | 100 +++++++++++++++++++++++++++++++------------------ 1 files changed, 63 insertions(+), 37 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WiredGatewaySearchForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WiredGatewaySearchForm.cs index dd788ba..d7d27e5 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WiredGatewaySearchForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WiredGatewaySearchForm.cs @@ -29,6 +29,10 @@ /// 鑾峰彇寰楀埌浜嗘柊缃戝叧 /// </summary> private bool newGatewayGetting = false; + /// <summary> + /// 缃戝叧妫�娴嬩腑 + /// </summary> + private string isGatewayChecking = "0"; #endregion @@ -111,7 +115,7 @@ btnMsg1.Y = picGwImage.Bottom + Application.GetRealHeight(112); btnMsg1.TextID = R.MyInternationalizationString.uSearchGatewayFailMsg1; bodyFrameLayout.AddChidren(btnMsg1); - //1.闀挎寜ZB/RST閿�20绉掞紝缃戝叧鎭㈠鍑哄巶璁剧疆锛屾寚绀虹伅鍏ㄩ儴鐔剓0}鐏悗锛岄噸鏂板叆缃戙�� + //1.闀挎寜ZB/RST閿�20绉掞紝缃戝叧鎭㈠鍑哄巶璁剧疆锛屾寚绀虹伅鍏ㄩ儴鐔勭伃鍚庯紝閲嶆柊鍏ョ綉銆� var btnMsg2 = new NormalViewControl(930, 100, true); btnMsg2.X = Application.GetRealWidth(75); btnMsg2.Y = btnMsg1.Bottom + Application.GetRealHeight(35); @@ -120,7 +124,7 @@ btnMsg2.TextColor = UserCenterColor.Current.TextGrayColor1; btnMsg2.IsMoreLines = true; bodyFrameLayout.AddChidren(btnMsg2); - //2.鐐规寜HID/WCFG閿紝杩涘叆缃戝叧鎹㈢粦妯″紡锛岀郴缁熸寚绀虹伅蹇棯{0}5绉掋�� + //2.鐐规寜HID/WCFG閿紝杩涘叆缃戝叧鎹㈢粦妯″紡锛岀郴缁熸寚绀虹伅蹇棯5绉掋�� var btnMsg3 = new NormalViewControl(930, 100, true); btnMsg3.X = Application.GetRealWidth(75); btnMsg3.Y = btnMsg2.Bottom + Application.GetRealHeight(12); @@ -214,7 +218,7 @@ picGwImage.AddChidren(btnRound); string strMsg = btnMsg.Text; - HdlThreadLogic.Current.RunThread(async () => + HdlThreadLogic.Current.RunThread(() => { //娓呯┖鍏ㄩ儴鍒楄〃 HdlGatewayLogic.Current.ClearAllRealGateway(); @@ -229,8 +233,22 @@ maxCount--; if (maxCount % 4 == 0) { - //姣�2绉掓娴嬫悳绱㈠埌鐨勭綉鍏� - await this.CheckZbGatewayAndSetRow(); + lock(isGatewayChecking) + { + if (isGatewayChecking != "1") + { + isGatewayChecking = "1"; + HdlThreadLogic.Current.RunThread(async () => + { + //姣�2绉掓娴嬫悳绱㈠埌鐨勭綉鍏� + await this.CheckZbGatewayAndSetRow(); + lock (isGatewayChecking) + { + isGatewayChecking = "0"; + } + }); + } + } } if (this.newGatewayGetting == true) { @@ -265,12 +283,15 @@ this.InitFailMiddleFrame(); }); } - else + else if (newGatewayGetting == true) { HdlThreadLogic.Current.RunMain(() => { - var form = new WiredGatewayListForm(); - this.AddFromAndRemoveNowForm(form, listZbGateway, dicZbGatewayDiv); + if (this.Parent != null) + { + var form = new WiredGatewayListForm(); + this.AddFromAndRemoveNowForm(form, listZbGateway, dicZbGatewayDiv); + } }); } }); @@ -326,31 +347,21 @@ //缃戝叧缁戝畾妯″紡 GatewayBindMode mode = GatewayBindMode.BindAgain; - if (HdlGatewayLogic.Current.HomeIdIsEmpty(way) == true) + //濡傛灉鏄涓�娆$粦瀹�,鎴栬�呮槸浠ュ墠宸茬粡缁戝畾杩囦簡鐨� + if (HdlGatewayLogic.Current.HomeIdIsEmpty(way) == true + || way.getGatewayBaseInfo.HomeId == Common.Config.Instance.HomeId) { - //绗竴娆$粦瀹�,涔熷氨鏄綉鍏充綇瀹匢D涓虹┖ - mode = GatewayBindMode.First; - this.dicZbGatewayDiv[listId[i]] = 0; - //鑾峰彇鍒颁簡鏂扮綉鍏� - this.newGatewayGetting = true; - } - else if (way.getGatewayBaseInfo.HomeId == Common.Config.Instance.HomeId) - { - //宸茬粡缁戝畾杩囦簡 - this.dicZbGatewayDiv[listId[i]] = 1; - mode = GatewayBindMode.Binded; - } - else - { - //闇�瑕佹崲缁� - this.dicZbGatewayDiv[listId[i]] = 2; - mode = GatewayBindMode.BindAgain; - } - //鏈湴鏄惁鏈夎繖涓綉鍏� - bool isExist = HdlGatewayLogic.Current.IsGatewayExist(way); - //濡傛灉 - if (mode != GatewayBindMode.BindAgain) - { + if (way.getGatewayBaseInfo.HomeId == Common.Config.Instance.HomeId) + { + //绗竴娆$粦瀹�,涔熷氨鏄綉鍏充綇瀹匢D涓虹┖ + mode = GatewayBindMode.First; + } + else + { + //宸茬粡缁戝畾杩囦簡 + mode = GatewayBindMode.Binded; + } + //娣诲姞鎼滅储鍒扮殑缃戝叧鍒扮紦瀛�(鎵ц缃戝叧淇濆瓨鎿嶄綔) ShowErrorMode showMode = this.dicIdCheckCount[listId[i]] == 0 ? ShowErrorMode.YES : ShowErrorMode.NO; var result = await this.DoSaveGateway(way, showMode); @@ -359,17 +370,32 @@ continue; } } + //濡傛灉瀹冨凡缁忓畬鍏ㄦ垚鍔熶簡鐨勮瘽锛屽垯灏嗗畠鐨勫墿浣欐鏁扮疆闆� this.dicIdCheckCount[listId[i]] = 0; - if (isExist == true) + //鍏ㄩ儴澶勭悊OK鍚庯紝鎵嶈兘璁剧疆flage + if (mode == GatewayBindMode.First) { - //宸茬粡缁戝畾杩囦簡鐨勶紝鍒欎笉鍐嶆樉绀� - continue; + //绗竴娆$粦瀹� + this.dicZbGatewayDiv[listId[i]] = 0; + //鑾峰彇鍒颁簡鏂扮綉鍏� + this.newGatewayGetting = true; } - if (mode != GatewayBindMode.BindAgain) + else if (mode == GatewayBindMode.Binded) + { + //宸茬粡缁戝畾杩� + this.dicZbGatewayDiv[listId[i]] = 1; + } + else + { + //闇�瑕侀噸鏂扮粦瀹� + this.dicZbGatewayDiv[listId[i]] = 2; + } + + if (mode == GatewayBindMode.First) { //鎴戣寰楄繖閲岄渶瑕佽幏鍙栦竴涓嬫柊缃戝叧鐨勮澶囧垪琛� - await Common.LocalDevice.Current.SetDeviceToMemmoryByGateway(way); + Common.LocalDevice.Current.SetDeviceToMemmoryByGateway(way); } } return true; -- Gitblit v1.8.0