From 224ea4055d5359d0bae0e7087ccc11724a2e49e5 Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期二, 14 七月 2020 16:09:19 +0800
Subject: [PATCH] 备份新改的代码
---
ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WiredGatewaySearchForm.cs | 258 ++++++++++++++++++++++-----------------------------
1 files changed, 112 insertions(+), 146 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WiredGatewaySearchForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WiredGatewaySearchForm.cs
index c8e953e..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
@@ -60,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);
@@ -77,6 +77,8 @@
//鍒濆鍖栬繛鎺ョ殑鍋囨兂鍔ㄧ敾鏁堟灉
this.InitConcetionAnimete(picGwImage, btnMsg);
+ //寮�鍚綉鍏虫娴嬬殑绾跨▼
+ this.StartCheckGatewayThread();
}
/// <summary>
@@ -89,8 +91,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";
@@ -98,12 +100,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;
@@ -115,7 +117,7 @@
btnMsg1.Y = picGwImage.Bottom + Application.GetRealHeight(112);
btnMsg1.TextID = R.MyInternationalizationString.uSearchGatewayFailMsg1;
bodyFrameLayout.AddChidren(btnMsg1);
- //1.闀挎寜ZB/RST閿�20绉掞紝缃戝叧鎭㈠鍑哄巶璁剧疆锛屾寚绀虹伅鍏ㄩ儴鐔勭伃鍚庯紝閲嶆柊鍏ョ綉銆�
+ //1.鐭寜HID/WCFG鎸夐敭锛岀郴缁熸寚绀虹伅蹇棯3绉掞紝缃戝叧杩涘叆鎹㈢粦妯″紡锛屽己鍒剁綉鍏崇粦瀹氬埌褰撳墠APP
var btnMsg2 = new NormalViewControl(930, 100, true);
btnMsg2.X = Application.GetRealWidth(75);
btnMsg2.Y = btnMsg1.Bottom + Application.GetRealHeight(35);
@@ -124,7 +126,7 @@
btnMsg2.TextColor = UserCenterColor.Current.TextGrayColor1;
btnMsg2.IsMoreLines = true;
bodyFrameLayout.AddChidren(btnMsg2);
- //2.鐐规寜HID/WCFG閿紝杩涘叆缃戝叧鎹㈢粦妯″紡锛岀郴缁熸寚绀虹伅蹇棯5绉掋��
+ //2.闀挎寜缃戝叧ZB/RST鎸夐敭20绉掍互涓婏紝鐩村埌鎵�鏈夋寚绀虹伅鍚屾椂鐏紝鍗虫仮澶嶅嚭鍘傝缃苟閲嶅惎
var btnMsg3 = new NormalViewControl(930, 100, true);
btnMsg3.X = Application.GetRealWidth(75);
btnMsg3.Y = btnMsg2.Bottom + Application.GetRealHeight(12);
@@ -151,7 +153,7 @@
bodyFrameLayout.AddChidren(btnMsg5);
//閲嶈瘯
- var frameback = new FrameLayoutControl();
+ var frameback = new FrameLayoutStatuControl();
frameback.UseClickStatu = false;
frameback.Y = Application.GetRealHeight(1259);
frameback.Gravity = Gravity.CenterHorizontal;
@@ -160,13 +162,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) =>
{
//鍒濆鍖栧垵濮嬩腑閮ㄦ帶浠�
@@ -177,6 +180,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) =>
{
@@ -196,11 +204,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>();
@@ -213,17 +221,13 @@
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(() =>
{
- //娓呯┖鍏ㄩ儴鍒楄〃
- HdlGatewayLogic.Current.ClearAllRealGateway();
- ZigBee.Common.Application.IsSearchingGateway = true;
-
int index = 1;
int maxCount = 120 * 2;
int timeCount = 120;
@@ -231,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(() =>
@@ -275,6 +256,9 @@
btnMsg.Text = strMsg + timeCount + "s";
});
}
+ //鎼滅储缁撴潫
+ this.isGatewaySearching = false;
+
if (maxCount <= 0)
{
HdlThreadLogic.Current.RunMain(() =>
@@ -289,7 +273,7 @@
{
if (this.Parent != null)
{
- var form = new WiredGatewayListForm();
+ var form = new GatewayManage.GatewaySearchListForm();
this.AddFromAndRemoveNowForm(form, listZbGateway, dicZbGatewayDiv);
}
});
@@ -302,6 +286,42 @@
#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>
/// 妫�娴嬫悳绱㈠埌鐨勭綉鍏筹紝鐒跺悗娣诲姞鍒扮敾闈㈢殑琛岄噷闈�
/// </summary>
private async Task<bool> CheckZbGatewayAndSetRow()
@@ -309,13 +329,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)
{
@@ -337,99 +356,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 || mode == GatewayBindMode.Binded)
{
//鎴戣寰楄繖閲岄渶瑕佽幏鍙栦竴涓嬫柊缃戝叧鐨勮澶囧垪琛�
- 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;
}
@@ -441,33 +429,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