From 48ba446936b51fffafa7c3600c0dadc6ac0e8c20 Mon Sep 17 00:00:00 2001 From: 陈嘉乐 <cjl@hdlchina.com.cn> Date: 星期五, 10 七月 2020 10:52:13 +0800 Subject: [PATCH] 2020-07-10-01 --- ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WiredGatewaySearchForm.cs | 213 +++++++++++++++++++++++------------------------------ 1 files changed, 93 insertions(+), 120 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WiredGatewaySearchForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WiredGatewaySearchForm.cs index dd788ba..74d9ccb 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 @@ -56,9 +60,9 @@ //鍥炬爣 var picGwImage = new FrameLayout(); - picGwImage.Width = Application.GetMinRealAverage(861); - picGwImage.Height = Application.GetMinRealAverage(478); - picGwImage.Y = Application.GetRealWidth(251); + picGwImage.Width = this.GetPictrueRealSize(861); + picGwImage.Height = this.GetPictrueRealSize(478); + picGwImage.Y = Application.GetRealHeight(251); picGwImage.Gravity = Gravity.CenterHorizontal; picGwImage.BackgroundImagePath = "Gateway/WiredGatewaySearching.png"; bodyFrameLayout.AddChidren(picGwImage); @@ -85,8 +89,8 @@ //鍥炬爣 var picGwImage = new FrameLayout(); - picGwImage.Width = Application.GetMinRealAverage(861); - picGwImage.Height = Application.GetMinRealAverage(478); + picGwImage.Width = this.GetPictrueRealSize(861); + picGwImage.Height = this.GetPictrueRealSize(478); picGwImage.Y = Application.GetRealWidth(158); picGwImage.Gravity = Gravity.CenterHorizontal; picGwImage.BackgroundImagePath = "Gateway/WiredGatewaySearching.png"; @@ -94,12 +98,12 @@ var btnFailIcon = new PicViewControl(66, 66); btnFailIcon.UnSelectedImagePath = "Item/FailIcon.png"; btnFailIcon.Gravity = Gravity.CenterHorizontal; - btnFailIcon.Y = Application.GetMinRealAverage(181); + btnFailIcon.Y = this.GetPictrueRealSize(181); picGwImage.AddChidren(btnFailIcon); //鎼滅储澶辫触 var btnFailView = new NormalViewControl(300, 60, true); btnFailView.TextAlignment = TextAlignment.Center; - btnFailView.Y = Application.GetMinRealAverage(305); + btnFailView.Y = this.GetPictrueRealSize(305); btnFailView.Gravity = Gravity.CenterHorizontal; btnFailView.TextColor = UserCenterColor.Current.TextGrayColor3; btnFailView.TextID = R.MyInternationalizationString.uSearchFail; @@ -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.鐭寜HID/WCFG鎸夐敭锛岀郴缁熸寚绀虹伅蹇棯3绉掞紝缃戝叧杩涘叆鎹㈢粦妯″紡锛屽己鍒剁綉鍏崇粦瀹氬埌褰撳墠APP 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.闀挎寜缃戝叧ZB/RST鎸夐敭20绉掍互涓婏紝鐩村埌鎵�鏈夋寚绀虹伅鍚屾椂鐏紝鍗虫仮澶嶅嚭鍘傝缃苟閲嶅惎 var btnMsg3 = new NormalViewControl(930, 100, true); btnMsg3.X = Application.GetRealWidth(75); btnMsg3.Y = btnMsg2.Bottom + Application.GetRealHeight(12); @@ -147,7 +151,7 @@ bodyFrameLayout.AddChidren(btnMsg5); //閲嶈瘯 - var frameback = new FrameLayoutControl(); + var frameback = new FrameLayoutStatuControl(); frameback.UseClickStatu = false; frameback.Y = Application.GetRealHeight(1259); frameback.Gravity = Gravity.CenterHorizontal; @@ -156,13 +160,14 @@ frameback.BackgroundImagePath = "Item/BottomButtonGround.png"; bodyFrameLayout.AddChidren(frameback); var btnReDo = new NormalViewControl(300, 65, true); + btnReDo.IsBold = true; btnReDo.TextColor = UserCenterColor.Current.White; btnReDo.TextSize = 16; btnReDo.Y = Application.GetRealHeight(49); 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) => { //鍒濆鍖栧垵濮嬩腑閮ㄦ帶浠� @@ -173,6 +178,11 @@ var btnGoBack = new BottomClickButton(688); btnGoBack.Y = Application.GetRealHeight(1495); btnGoBack.TextID = R.MyInternationalizationString.uGobackGatewayManage; + if (UserCenterResourse.DicActionForm.ContainsKey("GatewayListForm") == false) + { + //杩斿洖涓婚〉 + btnGoBack.TextID = R.MyInternationalizationString.uGobackToHomePage; + } bodyFrameLayout.AddChidren(btnGoBack); btnGoBack.ButtonClickEvent += (sender, e) => { @@ -192,11 +202,11 @@ private void InitConcetionAnimete(FrameLayout picGwImage, NormalViewControl btnMsg) { //棣栨牸鐨刋杞� - int firstPoint = Application.GetMinRealAverage(288); + int firstPoint = this.GetPictrueRealSize(288); //涓�鏍肩殑瀹藉害 - int width = Application.GetMinRealAverage(22); + int width = this.GetPictrueRealSize(22); //闂磋窛澶у皬 - int space = Application.GetMinRealAverage(12); + int space = this.GetPictrueRealSize(12); //鐢熸垚鏍煎瓙鍧愭爣 var listPoint = new List<int>(); @@ -209,12 +219,12 @@ var btnRound = new PicViewControl(width, width, false); btnRound.Radius = (uint)width / 2; btnRound.BackgroundColor = UserCenterColor.Current.ConcetionRoundColor; - btnRound.Y = Application.GetMinRealAverage(202); + btnRound.Y = this.GetPictrueRealSize(202); btnRound.X = listPoint[0]; picGwImage.AddChidren(btnRound); string strMsg = btnMsg.Text; - HdlThreadLogic.Current.RunThread(async () => + HdlThreadLogic.Current.RunThread(() => { //娓呯┖鍏ㄩ儴鍒楄〃 HdlGatewayLogic.Current.ClearAllRealGateway(); @@ -229,8 +239,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 +289,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 GatewayManage.GatewaySearchListForm(); + this.AddFromAndRemoveNowForm(form, listZbGateway, dicZbGatewayDiv); + } }); } }); @@ -288,13 +315,12 @@ List<string> listId = new List<string>(); for (int i = 0; i < ZbGateway.GateWayList.Count; i++) { - string strip = HdlGatewayLogic.Current.GetGatewayBaseInfoAttribute(ZbGateway.GateWayList[i], "IpAddress").ToString(); - if (strip == string.Empty) + if (ZbGateway.GateWayList[i].GwIP == string.Empty) { //IP娌℃湁鐨勭綉鍏筹紝鎴戜篃涓嶇煡閬撳畠鏄共鍢涚殑 continue; } - string gwId = HdlGatewayLogic.Current.GetGatewayId(ZbGateway.GateWayList[i]); + string gwId = ZbGateway.GateWayList[i].GwId; //閲嶅娣诲姞妫�娴� if (this.dicIdCheckCount.ContainsKey(gwId) == false) { @@ -316,99 +342,68 @@ } for (int i = 0; i < listId.Count; i++) { - ZbGateway way = ZbGateway.GateWayList.Find((obj) => HdlGatewayLogic.Current.GetGatewayId(obj) == listId[i]); + ZbGateway way = ZbGateway.GateWayList.Find((obj) => obj.GwId == listId[i]); if (way == null) { continue; } - //鏀堕泦缃戝叧瀵硅薄 - this.listZbGateway.Add(way); //缃戝叧缁戝畾妯″紡 GatewayBindMode mode = GatewayBindMode.BindAgain; - if (HdlGatewayLogic.Current.HomeIdIsEmpty(way) == true) + //濡傛灉鏄涓�娆$粦瀹�,鎴栬�呮槸浠ュ墠宸茬粡缁戝畾杩囦簡鐨� + if (HdlGatewayLogic.Current.HomeIdIsEmpty(way) == true + || way.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.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); + var result = await HdlGatewayLogic.Current.AddNewGateway(way, ShowErrorMode.NO); if (result == false) { continue; } } + //鏀堕泦缃戝叧瀵硅薄 + this.listZbGateway.Add(way); + //濡傛灉瀹冨凡缁忓畬鍏ㄦ垚鍔熶簡鐨勮瘽锛屽垯灏嗗畠鐨勫墿浣欐鏁扮疆闆� 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; + //鑾峰彇鍒颁簡鏂扮綉鍏� + this.newGatewayGetting = true; + } + + if (mode == GatewayBindMode.First) { //鎴戣寰楄繖閲岄渶瑕佽幏鍙栦竴涓嬫柊缃戝叧鐨勮澶囧垪琛� - await Common.LocalDevice.Current.SetDeviceToMemmoryByGateway(way); + Common.LocalDevice.Current.SetDeviceToMemmoryByGateway(way); } - } - return true; - } - - #endregion - - #region 鈻� 鎵ц缃戝叧淇濆瓨_______________________ - - /// <summary> - /// 鎵ц缃戝叧淇濆瓨 - /// </summary> - /// <param name="zbGateway">缃戝叧瀵硅薄</param> - /// <param name="mode">鏄惁鏄剧ず閿欒</param> - /// <returns></returns> - private async Task<bool> DoSaveGateway(ZbGateway zbGateway, ShowErrorMode mode) - { - //娣诲姞鎼滅储鍒扮殑缃戝叧鍒扮紦瀛� - //1:姝e父 -1:寮傚父 0:褰撳墠鐨勭綉鍏崇粦瀹氬湪浜嗗綋鍓嶈处鍙蜂笅鐨勪笉鍚屼綇瀹呴噷闈� - int result = await HdlGatewayLogic.Current.AddNewGateway(zbGateway, mode); - if (result == -1) - { - return false; - } - - //鍓嶇殑缃戝叧缁戝畾鍦ㄤ簡褰撳墠璐﹀彿涓嬬殑涓嶅悓浣忓畢閲岄潰 - if (result == 0) - { - if (mode == ShowErrorMode.YES) - { - //缃戝叧缁戝畾鍦ㄥ綋鍓嶈处鍙蜂笅鐨勫叾浠栦綇瀹呴噷\r\n璇疯В闄ょ粦瀹氬悗鍐嶈瘯 - string msg = Language.StringByID(R.MyInternationalizationString.uTheGatewayInOtherResidenceMsg); - if (msg.Contains("{0}") == true) - { - msg = string.Format(msg, "\r\n"); - } - this.ShowMassage(ShowMsgType.Tip, msg); - } - return false; } return true; } @@ -420,33 +415,11 @@ /// <summary> /// 鐢婚潰鍏抽棴 /// </summary> - public override void CloseForm() + public override void CloseFormBefore() { ZigBee.Common.Application.IsSearchingGateway = false; - //鏂紑娌℃湁鎵ц缁戝畾鐨勭綉鍏崇殑mqtt - var list = new List<ZbGateway>(); - for (int i = 0; i < ZbGateway.GateWayList.Count; i++) - { - if (HdlGatewayLogic.Current.IsGatewayExist(ZbGateway.GateWayList[i]) == false) - { - list.Add(ZbGateway.GateWayList[i]); - } - } - if (list.Count > 0) - { - foreach (var way in list) - { - ZbGateway.GateWayList.RemoveAll((obj) => HdlGatewayLogic.Current.GetGatewayId(obj) == HdlGatewayLogic.Current.GetGatewayId(way)); - way.DisConnect("Search"); - } - } - if (UserCenterResourse.listActionFormId.Contains("GatewayManagementForm") == false) - { - //鍒锋柊涓婚〉 - UserView.UserPage.Instance.Fresh(); - } - - base.CloseForm(); + + base.CloseFormBefore(); } #endregion -- Gitblit v1.8.0