From 5a5a2b696866f947b6025d26c3302e8ffef46435 Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期一, 11 一月 2021 16:11:20 +0800 Subject: [PATCH] 2021-01-11 1.更新MQTT连接和本地搜索网关方法。2.子账号相关接口完善 --- Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddGateway.cs | 123 ++++++++++++++++++++++++++++++---------- 1 files changed, 92 insertions(+), 31 deletions(-) diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddGateway.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddGateway.cs index 4340598..49afd5a 100644 --- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddGateway.cs +++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddGateway.cs @@ -83,10 +83,11 @@ etRemark.EditorEnterAction += (obj) => { Application.HideSoftInput (); }; - if (MainPage.LoginUser.AccountType == 1) { - etRemark.Enable = false; - etRemark.BorderWidth = 0; - } + + //if (MainPage.LoginUser.AccountType == 1) { + // etRemark.Enable = false; + // etRemark.BorderWidth = 0; + //} var BottomView = new FrameLayout () { Y = Application.GetRealHeight (400 - 88), @@ -283,6 +284,8 @@ }; EventHandler<MouseEventArgs> eHandler = (sender, e) => { + //璺宠浆涔嬪墠鍏堢粦瀹欰PP + MainPage.Loading.Start ("Please wait..."); bool needHide = true; new System.Threading.Thread (() => { @@ -299,11 +302,17 @@ bool goNext = false; System.Threading.Tasks.Task.Run (() => { try { - + // goNext = CheckIfGoNext (common); + if (goNext) { + //鍏堥噸缃� + goNext = false; + //缃戝叧鐗堟湰绗﹀悎瑕佹眰锛岀户缁垽鏂槸鍚︾粦瀹氱綉鍏虫垚鍔�,缁戝畾鎴愬姛浜嗘墠鑳借繘琛屼笅涓�姝ヨ烦杞澶囨悳绱㈤〉闈� + goNext = CheckIfBindGatewaySuccess (common); + } } catch (Exception ex) { - Console.WriteLine (ex.Message); + Utlis.WriteLine (ex.Message); } finally { Application.RunOnMainThread (() => { MainPage.Loading.Hide (); @@ -312,17 +321,18 @@ CommonPage.FindGatewayChilrenIPAddress = common.IPAddress; inThisView = false; if (inView != null) { - Console.WriteLine ("inView != null"); + Utlis.WriteLine ("inView != null"); + //璺宠浆璁惧鎼滅储椤甸潰 var deviceListView = new GuideSettingGateway (common); (inView.Parent as PageLayout).AddChidren (deviceListView); deviceListView.ShowPage (); (inView.Parent as PageLayout).PageIndex = (inView.Parent as PageLayout).ChildrenCount - 1; } else { - Console.WriteLine ("inView == null"); + Utlis.WriteLine ("inView == null"); UserHomePage.FrameLayoutMain.AddChidren (UserMiddle.guidePageView); var guide = new GuideAddResidence (); UserMiddle.guidePageView.AddChidren (guide); - guide.ShowHomeList (); + guide.ShowHomeView (); UserMiddle.guidePageView.PageIndex = 0; //閲嶇疆涓哄姞瀵嗘ā寮� UserConfig.Instance.IsLocalEncrypt = true; @@ -341,18 +351,62 @@ } } + /// <summary> + /// 妫�娴嬫槸鍚︾粦瀹氱綉鍏虫垚鍔� + /// </summary> + /// <returns></returns> + static bool CheckIfBindGatewaySuccess (GatewayBase gatewayBase) + { + try { + if (UserConfig.Instance.CheckHomeGatewaysNotEmpty ()) { + //涔嬪墠缁戝畾杩囩綉鍏筹紝骞朵笖鍜屽綋鍓嶆悳绱㈠埌鍒扮綉鍏充竴鑷�,瀛愮綉鍙疯澶囧彿閮借涓�鑷� + if (UserConfig.Instance.HomeGateway.mac.ToUpper () == gatewayBase.MAC.Replace (".", "").ToUpper () + && UserConfig.Instance.HomeGateway.subnetId == gatewayBase.SubnetID + && UserConfig.Instance.HomeGateway.deviceId == gatewayBase.DeviceID + ) { + return true; + } + } + var gatewayMAC = gatewayBase.MAC.Replace (".", ""); + //閲嶆柊缁戝畾 + var bindGatewayObj = new BindGatewayObj () { + homeId = UserConfig.Instance.CurrentRegion.Id, + subnetId = gatewayBase.SubnetID, + deviceId = gatewayBase.DeviceID, + gatewayType = GatewayType.BUSUDPGATEWAY.ToString (), + mac = gatewayMAC + }; + var revertObj = HttpServerRequest.Current.BindGateway (bindGatewayObj); + if (revertObj.Code == StateCode.SUCCESS) { + var homeGatewayInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<HomeGatewayInfo> (revertObj.Data.ToString ()); + if (homeGatewayInfo != null && !string.IsNullOrEmpty (homeGatewayInfo.gatewayId)) { + //缁戝畾缃戝叧鎴愬姛锛屽苟涓旀垚鍔熻幏鍙栧埌鏂扮粦瀹氱殑gatewayId + UserConfig.Instance.HomeGateway = homeGatewayInfo; + UserConfig.Instance.SaveUserConfig (); + return true; + } + } else { + IMessageCommon.Current.ShowErrorInfoAlter (revertObj.Code); + } + } catch { + Utlis.WriteLine ("缁戝畾缃戝叧澶辫触"); + } + return false; + } static bool inThisView = false; - Alert checkInternetAlert = new Alert ("", "Your phone in not connected to WIFI network, please connet", "Close", "Search again"); - Alert confirmAlert = new Alert ("", "Please make sure gateway is powered up and comect to WiFi router.", "Close", "Search again"); - Alert confirmAlert1 = new Alert ("", "If not all the gateways are in the list,you can search again.", "Close", "Search again"); - Alert wrongPasswordAlert = new Alert ("", ErrorCode.GatewayPasswordError, "Close", "Search again"); + //Alert checkInternetAlert = new Alert ("", "Your phone in not connected to WIFI network, please connet", "Close", "Search again"); + //Alert confirmAlert = new Alert ("", "Please make sure gateway is powered up and comect to WiFi router.", "Close", "Search again"); + //Alert confirmAlert1 = new Alert ("", "If not all the gateways are in the list,you can search again.", "Close", "Search again"); + //Alert wrongPasswordAlert = new Alert ("", ErrorCode.GatewayPasswordError, "Close", "Search again"); void SearchGatewayList () { if (UserConfig.Instance.internetStatus == 0 || UserConfig.Instance.internetStatus == 1) { + Alert checkInternetAlert = new Alert ("", ErrorCode.NotConnectedToWIFI, "Close", "Search again"); + checkInternetAlert.Show (); checkInternetAlert.ResultEventHandler += (dsss, eee) => { @@ -401,7 +455,7 @@ } Control control = new Control (); - Console.WriteLine ("缁勬挱鎼滅储缃戝叧锛屾悳绱㈠湴鍧�鏄�:" + CommonPage.EndPoint.ToString () + " " + CommonPage.GateWayList.Count); + Utlis.WriteLine ("缁勬挱鎼滅储缃戝叧锛屾悳绱㈠湴鍧�鏄�:" + CommonPage.EndPoint.ToString () + " " + CommonPage.GateWayList.Count); control.Send (new Target () { IPEndPoint = CommonPage.EndPoint, Command = Command.ReadGateway, @@ -410,7 +464,7 @@ AddData = ms.ToArray () }, SendCount.Zero, false); - Console.WriteLine ("骞挎挱鎼滅储缃戝叧锛屾悳绱㈠湴鍧�鏄�:" + new Net.NetWiFi ().BroadcastIpAddress.ToString () + " " + CommonPage.GateWayList.Count); + Utlis.WriteLine ("骞挎挱鎼滅储缃戝叧锛屾悳绱㈠湴鍧�鏄�:" + new Net.NetWiFi ().BroadcastIpAddress.ToString () + " " + CommonPage.GateWayList.Count); control.Send (new Target () { IPEndPoint = new System.Net.IPEndPoint (new Net.NetWiFi ().BroadcastIpAddress, 6000), Command = Command.ReadGateway, @@ -430,7 +484,7 @@ CommonPage.LocalPhoneFindDevice = false; #endregion } catch (Exception ex) { - Console.WriteLine (ex.ToString ()); + Utlis.WriteLine (ex.ToString ()); } finally { Application.RunOnMainThread (() => { if (CommonPage.GateWayList.Count == 0) { @@ -443,6 +497,8 @@ } else { if (this != null && this.Parent != null) { if (inThisView) {// this.Parent.GetChildren (this.Parent.ChildrenCount - 1) == this) { + Alert confirmAlert1 = new Alert ("", ErrorCode.IfAllTheGatewaysAreNotInTheList, "Close", "Search again"); + confirmAlert1.Show (); confirmAlert1.ResultEventHandler += (ddf, ddd) => { MainPage.Loading.Hide (); @@ -468,19 +524,18 @@ if (UserConfig.Instance.IsLocalEncrypt) { //瀵嗙爜妫�楠屾纭� if (UserConfig.Instance.EncryptedPasswordCorrect) { - - inView.confirmAlert.Show (); - inView.confirmAlert.ResultEventHandler += (ddf, ddd) => { + Alert confirmAlert = new Alert ("", ErrorCode.MakeSureGatewayIsPoweredUp, "Close", "Search again"); + confirmAlert.Show (); + confirmAlert.ResultEventHandler += (ddf, ddd) => { MainPage.Loading.Hide (); if (ddd) { inView.SearchGatewayList (); } }; } else { - - - inView.wrongPasswordAlert.Show (); - inView.wrongPasswordAlert.ResultEventHandler += (ddf, ddd) => { + Alert wrongPasswordAlert = new Alert ("", ErrorCode.GatewayPasswordError, "Close", "Search again"); + wrongPasswordAlert.Show (); + wrongPasswordAlert.ResultEventHandler += (ddf, ddd) => { MainPage.Loading.Hide (); if (ddd) { inView.SearchGatewayList (); @@ -489,8 +544,9 @@ } } else { - inView.confirmAlert.Show (); - inView.confirmAlert.ResultEventHandler += (ddf, ddd) => { + Alert confirmAlert = new Alert ("", ErrorCode.MakeSureGatewayIsPoweredUp, "Close", "Search again"); + confirmAlert.Show (); + confirmAlert.ResultEventHandler += (ddf, ddd) => { MainPage.Loading.Hide (); if (ddd) { inView.SearchGatewayList (); @@ -527,11 +583,11 @@ /// </summary> /// <param name="backBytes"></param> /// <returns></returns> - static bool CheckIsSuccessfulWithBytes (byte [] backBytes) + static bool CheckIsSuccessfulWithBytes (byte [] backBytes, string errorStr = "Modify gateway configuration failed,please try again!") { if (backBytes == null) { Application.RunOnMainThread (() => { - new Alert ("", Language.StringByID (R.MyInternationalizationString.TipEquipmentNotOnline), + new Alert ("", ErrorCode.GatewayNoResponse, Language.StringByID (R.MyInternationalizationString.Close)).Show (); }); return false; @@ -539,7 +595,7 @@ return true; } else { Application.RunOnMainThread (() => { - new Alert ("", Language.StringByID (R.MyInternationalizationString.OperationFailed), + new Alert ("", errorStr, Language.StringByID (R.MyInternationalizationString.Close)).Show (); }); return false; @@ -584,7 +640,7 @@ // UserConfig.Instance.IsLocalEncrypt = true; // //string aseKeyStr = CommonPage.MyEncodingUTF8.GetString (AseKeyBytes); // //UserConfig.Instance.LocalEncryptKey = aseKeyStr; - // System.Console.WriteLine ($"============>LocalEncryptKey 鍔犲瘑鎴愬姛Key涓猴細{UserConfig.Instance.LocalEncryptKey}"); + // Utlis.WriteLine ($"============>LocalEncryptKey 鍔犲瘑鎴愬姛Key涓猴細{UserConfig.Instance.LocalEncryptKey}"); //} var backBytes = Control.ControlBytesSendHasReturn (Command.Read_APP_Data_STORE_1D5C_CMD, common.SubnetID, common.DeviceID, new byte [] { }); @@ -611,12 +667,17 @@ //濡傛灉娌″姞瀵嗭紝璧颁慨鏀瑰姞瀵嗘柟娉� var result = SetGateWayLocalEncryption (common); if (!result) { - MainPage.LoadingHide (); + Application.RunOnMainThread (() => { + MainPage.Loading.Hide (); + new Alert ("", "Encryption gateway failed, please try again.", Language.StringByID (R.MyInternationalizationString.Close)).Show (); + + }); + return result;//淇敼澶辫触 杩斿洖goNext false } //淇敼鎴愬姛,璁剧疆鏈湴涓哄姞瀵嗘柟寮� UserConfig.Instance.IsLocalEncrypt = true; - System.Console.WriteLine ($"============>LocalEncryptKey 鍔犲瘑鎴愬姛Key涓猴細{UserConfig.Instance.LocalEncryptKey}"); + //Utlis.WriteLine ($"============>LocalEncryptKey 鍔犲瘑鎴愬姛Key涓猴細{UserConfig.Instance.LocalEncryptKey}"); } goNext = true; -- Gitblit v1.8.0