From 454ac814944cf956ff02b84b70ba2ec68e5e5ea1 Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期三, 15 一月 2020 19:38:47 +0800 Subject: [PATCH] 2020-01-15 1.优化MQTT连接。 2.增加本地通信加密。 --- Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddGateway.cs | 128 ++++++++++++++++++++++++++++++++++-------- 1 files changed, 103 insertions(+), 25 deletions(-) diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddGateway.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddGateway.cs index 6d97bb6..4340598 100644 --- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddGateway.cs +++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddGateway.cs @@ -348,6 +348,8 @@ 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) { @@ -370,6 +372,7 @@ #region 鎼滅储璁惧 ////2020-01-14 榛樿鏄庢枃寮�濮嬫悳绱� UserConfig.Instance.IsLocalEncrypt = false; + UserConfig.Instance.EncryptedPasswordCorrect = true; CommonPage.LocalPhoneFindDevice = true; CommonPage.RandomHigh = (byte)new Random ().Next (255); @@ -433,13 +436,9 @@ if (CommonPage.GateWayList.Count == 0) { MainPage.Loading.Hide (); if (this != null && this.Parent != null) { - confirmAlert.Show (); - confirmAlert.ResultEventHandler += (ddf, ddd) => { - MainPage.Loading.Hide (); - if (ddd) { - SearchGatewayList (); - } - }; + ShowConfirmAlert (); + + } } else { if (this != null && this.Parent != null) { @@ -459,7 +458,49 @@ }) { IsBackground = true }.Start (); } + /// <summary> + /// 鎻愮ず + /// Please make sure gateway is powered up and comect to WiFi router. + /// 鎴栬�� + /// + /// </summary> + static void ShowConfirmAlert () { + if (UserConfig.Instance.IsLocalEncrypt) { + //瀵嗙爜妫�楠屾纭� + if (UserConfig.Instance.EncryptedPasswordCorrect) { + inView.confirmAlert.Show (); + inView.confirmAlert.ResultEventHandler += (ddf, ddd) => { + MainPage.Loading.Hide (); + if (ddd) { + inView.SearchGatewayList (); + } + }; + } else { + + + inView.wrongPasswordAlert.Show (); + inView.wrongPasswordAlert.ResultEventHandler += (ddf, ddd) => { + MainPage.Loading.Hide (); + if (ddd) { + inView.SearchGatewayList (); + } + }; + + } + } else { + inView.confirmAlert.Show (); + inView.confirmAlert.ResultEventHandler += (ddf, ddd) => { + MainPage.Loading.Hide (); + if (ddd) { + inView.SearchGatewayList (); + } + }; + + } + + + } //static byte [] AseKeyBytes; @@ -532,19 +573,19 @@ }); bool goNext = false; - if (!UserConfig.Instance.IsLocalEncrypt) { - //濡傛灉娌″姞瀵嗭紝璧颁慨鏀瑰姞瀵嗘柟娉� - var result = SetGateWayLocalEncryption (common); - if (!result) { - MainPage.LoadingHide (); - return result;//淇敼澶辫触 杩斿洖goNext false - } - //淇敼鎴愬姛,璁剧疆鏈湴涓哄姞瀵嗘柟寮� - UserConfig.Instance.IsLocalEncrypt = true; - //string aseKeyStr = CommonPage.MyEncodingUTF8.GetString (AseKeyBytes); - //UserConfig.Instance.LocalEncryptKey = aseKeyStr; - System.Console.WriteLine ($"============>LocalEncryptKey 鍔犲瘑鎴愬姛Key涓猴細{UserConfig.Instance.LocalEncryptKey}"); - } + //if (!UserConfig.Instance.IsLocalEncrypt) { + // //濡傛灉娌″姞瀵嗭紝璧颁慨鏀瑰姞瀵嗘柟娉� + // var result = SetGateWayLocalEncryption (common); + // if (!result) { + // MainPage.LoadingHide (); + // return result;//淇敼澶辫触 杩斿洖goNext false + // } + // //淇敼鎴愬姛,璁剧疆鏈湴涓哄姞瀵嗘柟寮� + // UserConfig.Instance.IsLocalEncrypt = true; + // //string aseKeyStr = CommonPage.MyEncodingUTF8.GetString (AseKeyBytes); + // //UserConfig.Instance.LocalEncryptKey = aseKeyStr; + // System.Console.WriteLine ($"============>LocalEncryptKey 鍔犲瘑鎴愬姛Key涓猴細{UserConfig.Instance.LocalEncryptKey}"); + //} var backBytes = Control.ControlBytesSendHasReturn (Command.Read_APP_Data_STORE_1D5C_CMD, common.SubnetID, common.DeviceID, new byte [] { }); @@ -552,9 +593,8 @@ Application.RunOnMainThread (() => { new Alert ("", "No response from gateway. Please make sure the gateway is online and its firmware is up to date.", Language.StringByID (R.MyInternationalizationString.Close)).Show (); }); + } - - MainPage.LoadingHide (); if (backBytes.Length >= 37) { //******************浣忓畢ID string绫诲瀷************* @@ -565,19 +605,57 @@ //2020-01-12 backIDStr = backIDStr.Replace ("\0", ""); if (enable || backIDStr == UserConfig.Instance.CurrentRegion.Id || string.IsNullOrEmpty (backIDStr)) { + + + if (!UserConfig.Instance.IsLocalEncrypt) { + //濡傛灉娌″姞瀵嗭紝璧颁慨鏀瑰姞瀵嗘柟娉� + var result = SetGateWayLocalEncryption (common); + if (!result) { + MainPage.LoadingHide (); + return result;//淇敼澶辫触 杩斿洖goNext false + } + //淇敼鎴愬姛,璁剧疆鏈湴涓哄姞瀵嗘柟寮� + UserConfig.Instance.IsLocalEncrypt = true; + System.Console.WriteLine ($"============>LocalEncryptKey 鍔犲瘑鎴愬姛Key涓猴細{UserConfig.Instance.LocalEncryptKey}"); + } goNext = true; + } else { - Application.RunOnMainThread (() => { - new Alert ("", ErrorCode.UnableToBindGateway, Language.StringByID (R.MyInternationalizationString.Close)).Show (); - }); + UnableToBindGatewayAlertShow (); } } else { Application.RunOnMainThread (() => { new Alert ("", ErrorCode.GatewayVersionLow, Language.StringByID (R.MyInternationalizationString.Close)).Show (); }); } + MainPage.LoadingHide (); return goNext; } + + + static void UnableToBindGatewayAlertShow () + { + if (inView == null) + return; + Application.RunOnMainThread (() => { + + //if (this != null && this.Parent != null) { + var alter = new Alert ("", ErrorCode.UnableToBindGateway, Language.StringByID (R.MyInternationalizationString.Close)); + alter.ResultEventHandler += (sender1, e1) => { + if (e1) { + if (inView == null) + return; + //閲嶇疆涓哄姞瀵嗘ā寮� + UserConfig.Instance.IsLocalEncrypt = true; + (inView.Parent as PageLayout).PageIndex -= 1; + } + }; + alter.Show (); + //} + + }); + + } } } \ No newline at end of file -- Gitblit v1.8.0