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/GuideSettingGateway.cs | 607 ++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 377 insertions(+), 230 deletions(-) diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs index 2b4e0ac..a12edd8 100644 --- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs +++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs @@ -228,7 +228,7 @@ } if (Control.ControlBytesSendHasReturn (Command.ReadDeviceLoopInfo, common.SubnetID, common.DeviceID, new byte [] { bigClass, minClass, (byte)k }) == null) { j++; - //杩炵画涓ゆ璇诲彇涓嶅埌鏁版嵁鍒欒烦鍑鸿寰幆 + //杩炵画涓ゆ璇诲彇涓嶅埌鏁版嵁鍒欒烦鍑鸿寰幆锛屼唬琛ㄨ澶囩绾�2020-01-11 if (j == 2 && k == 2) break; } else { @@ -695,7 +695,7 @@ return; } } - BindGateways (); + BindGatewaysNew (); } } catch (Exception ex) { Console.WriteLine (ex.Message); @@ -774,9 +774,6 @@ GatewaySettingSucceeded (); } - - - } catch (Exception ex) { Console.WriteLine (ex.Message); Application.RunOnMainThread (() => { @@ -840,63 +837,6 @@ return CheckIsSuccessfulWithBytes (backBytes); } - - /// <summary> - /// 杩滅▼閰嶇疆 Standard MQTT妯″紡 - /// </summary> - void RemoteSettingWithStandardMQTT () - { - byte [] gatewayBytes = null; - string [] strServerIP = (MainPage.SeviceIP).Split ('.'); - string [] strServerIP1 = (MainPage.SeviceIP).Split ('.'); - MainPage.Loading.Start ("Configuring device..."); - System.Threading.Tasks.Task.Run (() => { - try { - - //璇诲彇涓�绔彛浜ゆ崲鏈恒�佹棤绾跨綉鍏崇殑閰嶇疆淇℃伅 - gatewayBytes = Control.ControlBytesSendHasReturn (Command.ReadGateWayModelInfo, gatewayDeicve.SubnetID, gatewayDeicve.DeviceID, new byte [] { }); - //杩炴帴绫诲瀷閰嶇疆涓�5 Standard MQTT妯″紡 - gatewayBytes [0] = TYPEStandardMQTT;//Standard MQTT - Control.ControlBytesSend (Command.SetGateWayModelInfo, gatewayDeicve.SubnetID, gatewayDeicve.DeviceID, gatewayBytes); - //1.淇敼URL - //2.淇敼璇诲彇瀹㈡埛绔疘D锛岀敤鎴峰悕锛屽瘑鐮� - //3.淇敼AES鍔犲瘑 - //4.淇敼涓婚 - - //1.淇敼URL - if (SetGateWayURL ("https://developer.hdlcontrol.com/api/")) { - //2.淇敼瀹㈡埛绔疘D锛岀敤鎴峰悕锛屽瘑鐮� - if (SetGateWayClientIDUsernamePassword ("85521566", "Admin", "85521566")) { - //3.淇敼AES鍔犲瘑 - if (SetGateWayAESEncryption (true, "85521566")) { - //4.1淇敼璁㈤槄涓婚 - if (SetGateWayTopic ("SubscribeTopic")) { - //4.2淇敼鍙戝竷涓婚 - if (SetGateWayTopic ("PublishTopic", true)) { - //5.鍐欓厤缃垚鍔熷悗涓嬩竴姝ユ搷浣� - GatewaySettingSucceeded (); - } - } - } - } - } - - } catch (Exception ex) { - Console.WriteLine (ex.Message); - Application.RunOnMainThread (() => { - new Alert ("", Language.StringByID (R.MyInternationalizationString.OperationFailed), Language.StringByID (R.MyInternationalizationString.Close)).Show (); - }); - bool canRemove = false; - } finally { - Application.RunOnMainThread (() => { - MainPage.Loading.Hide (); - //this.RemoveAll (); - }); - } - }); - //Room.InitAllRoom (); - } - /// <summary> /// 鍒ゆ柇鏄惁淇鎴愬姛 F8 = 鎴愬姛锛� F5=澶辫触 /// </summary> @@ -921,82 +861,6 @@ } } - /// <summary> - /// 淇敼URL - /// </summary> - /// <returns></returns> - bool SetGateWayURL (string urlStr = "", int pointID = 1883) - { - byte [] sendBytes = new byte [63]; - byte [] url = CommonPage.MyEncodingGB2312.GetBytes (urlStr); - Array.Copy (url, 0, sendBytes, 1, 60 < url.Length ? 60 : url.Length); - sendBytes [0] = GuideSettingGateway.TYPEStandardMQTT; - sendBytes [61] = Convert.ToByte (pointID / 256); - sendBytes [62] = Convert.ToByte (pointID % 256); - var backBytes = Control.ControlBytesSendHasReturn (Command.SetGateWayURL, gatewayDeicve.SubnetID, gatewayDeicve.DeviceID, sendBytes); - - return CheckIsSuccessfulWithBytes (backBytes); - } - - - /// <summary> - /// 淇敼瀹㈡埛绔疘D锛岀敤鎴峰悕锛屽瘑鐮� - /// </summary> - /// <returns></returns> - bool SetGateWayClientIDUsernamePassword (string clientIDStr = "", string usernameStr = "", string passwordStr = "") - { - - byte [] userInfoBytes = new byte [64]; - byte [] clientID = CommonPage.MyEncodingGB2312.GetBytes (clientIDStr); - Array.Copy (clientID, 0, userInfoBytes, 0, 32 < clientID.Length ? 32 : clientID.Length); - byte [] username = CommonPage.MyEncodingGB2312.GetBytes (usernameStr); - Array.Copy (username, 0, userInfoBytes, 32, 16 < username.Length ? 16 : username.Length); - byte [] password = CommonPage.MyEncodingGB2312.GetBytes (passwordStr); - Array.Copy (password, 0, userInfoBytes, 48, 16 < password.Length ? 16 : password.Length); - var setUserInfoBytes = Control.ControlBytesSendHasReturn (Command.SetGateWayClientIDUsernamePassword, gatewayDeicve.SubnetID, gatewayDeicve.DeviceID, userInfoBytes); - - return CheckIsSuccessfulWithBytes (setUserInfoBytes); - } - - /// <summary> - /// 淇敼AES鍔犲瘑 - /// </summary> - /// <returns></returns> - bool SetGateWayAESEncryption (bool enable = false, string passwordStr = "") - { - byte [] sendBytes = new byte [17]; - sendBytes [0] = enable ? (byte)1 : (byte)0; //0:涓嶄娇鑳� 1 - 255:浣胯兘 - byte [] password = CommonPage.MyEncodingGB2312.GetBytes (passwordStr); - Array.Copy (password, 0, sendBytes, 1, 16 < password.Length ? 16 : password.Length); - var backBytes = Control.ControlBytesSendHasReturn (Command.SetGateWayAESEncryption, gatewayDeicve.SubnetID, gatewayDeicve.DeviceID, sendBytes); - - return CheckIsSuccessfulWithBytes (backBytes); - } - - /// <summary> - /// 淇敼涓婚 - /// </summary> - /// <param name="bPublish">鏄惁涓哄彂甯冧富棰�</param> - /// <param name="bDefault">鏄惁榛樿</param> - /// <returns></returns> - bool SetGateWayTopic (string topicInfoStr = "", bool bPublish = false, bool bDefault = false) - { - byte [] sendBytes = new byte [50]; - sendBytes [0] = bPublish ? (byte)2 : (byte)1; //1锛氳闃� 2锛氬彂甯� - sendBytes [1] = bDefault ? (byte)0 : (byte)1; //1:闈為粯璁� 0:榛樿 - - byte [] topicInfo = CommonPage.MyEncodingGB2312.GetBytes (topicInfoStr); - Array.Copy (topicInfo, 0, sendBytes, 2, 48 < topicInfo.Length ? 48 : topicInfo.Length); - var backBytes = Control.ControlBytesSendHasReturn (Command.SetGateWayTopic, gatewayDeicve.SubnetID, gatewayDeicve.DeviceID, sendBytes); - - if (backBytes != null && backBytes.Length >= 2) { - if (backBytes [0] == sendBytes [0] && backBytes [1] == sendBytes [1]) { - return true; - } - } - return CheckIsSuccessfulWithBytes (backBytes); - } - /// <summary> /// 鍐欓厤缃弬鏁版垚鍔熷悗鎵ц涓嬩竴姝ユ搷浣� @@ -1009,7 +873,7 @@ //byte [] currentRegionIdBytes = CommonPage.MyEncodingGB2312.GetBytes (UserConfig.Instance.CurrentRegion.RegionID); byte [] currentRegionIdBytes = CommonPage.MyEncodingGB2312.GetBytes (UserConfig.Instance.CurrentRegion.Id.ToString ()); byte [] sendBytes = new byte [36]; - Array.Copy (currentRegionIdBytes, 0, sendBytes, 2, 36 < currentRegionIdBytes.Length ? 36 : currentRegionIdBytes.Length); + Array.Copy (currentRegionIdBytes, 0, sendBytes, 0, 36 < currentRegionIdBytes.Length ? 36 : currentRegionIdBytes.Length); //var currentRegionIdBytes = Utlis.IntToByteArray (UserConfig.Instance.CurrentRegion.RegionID); var bindReginIdStatus = Control.ControlBytesSendHasReturn (Command.Write_APP_Data_STORE_1D5E_CMD, gatewayDeicve.SubnetID, gatewayDeicve.DeviceID, sendBytes); @@ -1027,125 +891,408 @@ } } - BindGateways (); + BindGatewaysNew (); } + /// <summary> /// Gateway setting succeeded锛宒ata up.Please wait... + /// 缁戝畾Mac(鍗板害鐗�) /// </summary> - void BindGateways (){ - + void BindGatewaysNew () + { Application.RunOnMainThread (() => { MainPage.Loading.Start ("Gateway setting succeeded锛宒ata up.Please wait..."); }); IO.FileUtils.SaveEquipmentMessage (gatewayDeicve); var gatewayMAC = gatewayDeicve.MAC.Replace (".", ""); - var oldMac = ""; - if (UserConfig.Instance.CheckHomeGateways () && !string.IsNullOrEmpty (UserConfig.Instance.CurrentRegion.HomeGateways [0].GatewayUniqueId)) { - //淇敼MAC鎺ュ彛 - oldMac = UserConfig.Instance.CurrentRegion.HomeGateways [0].GatewayUniqueId; - var mUpdateMacObj = new UpdateMacObj () { - LoginAccessToken = MainPage.LoginUser.LoginTokenString, - HomeId = UserConfig.Instance.CurrentRegion.Id, - NewMac = gatewayMAC, - OldMac = oldMac - }; - var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (mUpdateMacObj); - //var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (new EditMACByHomeId { RegionID = UserConfig.Instance.CurrentRegion.Id, MAC = gatewayMAC, IsReBind = true }); - var respone = MainPage.RequestHttps (API.UpdateMac, requestJson); - if (respone.StateCode.ToUpper () != "SUCCESS") { - Application.RunOnMainThread (() => { - new Alert ("", "Communication abnormality,gateway failed to bind residence!", Language.StringByID (R.MyInternationalizationString.Close)).Show (); - if (MainPage.LoginUser.AccountString == "464027401@qq.com") { - new Alert (respone.StateCode, respone.ErrorInfo, Language.StringByID (R.MyInternationalizationString.Close)).Show (); - } - }); - return; - } - GetAllBindGatewarysPagger (); - } else { - //璧版柊缁戝畾鎺ュ彛 - var mBindMacObj = new BindGatewayToHomeObj () { - LoginAccessToken = MainPage.LoginUser.LoginTokenString, - HomeId = UserConfig.Instance.CurrentRegion.Id, + //璧版柊鏇存柊缁戝畾鎺ュ彛 + var mBindMacObj = new BindMacObj () { + LoginAccessToken = MainPage.LoginUser.LoginTokenString, + HomeId = UserConfig.Instance.CurrentRegion.Id, + MAC = gatewayMAC - }; - mBindMacObj.BindGateways.Add (gatewayMAC); - - var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (mBindMacObj); - - //var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (new EditMACByHomeId { RegionID = UserConfig.Instance.CurrentRegion.Id, MAC = gatewayMAC, IsReBind = true }); - var respone = MainPage.RequestHttps (API.BindGatewayToHome, requestJson); - if (respone.StateCode.ToUpper () != "SUCCESS" && respone.StateCode != "BindGatewaysExists") { - Application.RunOnMainThread (() => { - new Alert ("", "Communication abnormality,gateway failed to bind residence!", Language.StringByID (R.MyInternationalizationString.Close)).Show (); - if (MainPage.LoginUser.AccountString == "464027401@qq.com") { - new Alert (respone.StateCode, respone.ErrorInfo, Language.StringByID (R.MyInternationalizationString.Close)).Show (); - } - }); - return; - } - GetAllBindGatewarysPagger (); - + }; + + string urlHead = MainPage.RequestHttpsHost; + if (mBindMacObj.IsOtherAccountCtrl) { + urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl; + mBindMacObj.LoginAccessToken = UserConfig.Instance.MasterAccountToken; } - } - void GetAllBindGatewarysPagger () { - var gatewayListObj = new GetAllBindGatewarysPaggerObj (); - gatewayListObj.ReqDto.LoginAccessToken = MainPage.LoginUser.LoginTokenString; - var gatewayListJson = Newtonsoft.Json.JsonConvert.SerializeObject (gatewayListObj); - var gatewayListRevertObj = MainPage.RequestHttps (API.GetAllBindGatewarysPagger, gatewayListJson); - if (gatewayListRevertObj.StateCode.ToUpper () == "SUCCESS") { - var mGateRes = Newtonsoft.Json.JsonConvert.DeserializeObject<AllBindGatewarysPaggerRes> (gatewayListRevertObj.ResponseData.ToString ()); - var responseGatewayDataObj = mGateRes.PageData; - if (responseGatewayDataObj.Count > 0) { - UserConfig.Instance.GatewayList.Clear (); - UserConfig.Instance.GatewayList.AddRange (responseGatewayDataObj); - UserConfig.Instance.GatewayMAC = gatewayDeicve.MAC; - UserConfig.Instance.SaveUserConfig (); - MainPage.LoginUser.LastTime = DateTime.Now; - Application.RunOnMainThread (() => { - UserMiddle.Init (true); - }); - } else { - Application.RunOnMainThread (() => { - new Alert ("", "Communication abnormality,gateway failed to bind residence.Please try again.", Language.StringByID (R.MyInternationalizationString.Close)).Show (); - if (MainPage.LoginUser.AccountString == "464027401@qq.com") { - new Alert ("22:" + gatewayListRevertObj.StateCode, gatewayListRevertObj.ErrorInfo, Language.StringByID (R.MyInternationalizationString.Close)).Show (); - } - }); - } - } else { + var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (mBindMacObj); - ShowGetAllBindGatewarysPaggerErrorInfo (gatewayListRevertObj.StateCode); + //var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (new EditMACByHomeId { RegionID = UserConfig.Instance.CurrentRegion.Id, MAC = gatewayMAC, IsReBind = true }); + var respone = MainPage.RequestHttps (API.BindMac, requestJson, urlHead); + if (respone.StateCode.ToUpper () != "SUCCESS") { + GetNowHomeGatewayAfterBindMacFailed ();//2020-01-11 + Application.RunOnMainThread (() => { + new Alert ("", $"Failed to bind Mac address! {ErrorCode.Reason }{respone.StateCode}", Language.StringByID (R.MyInternationalizationString.Close)).Show (); + if (MainPage.LoginUser.AccountString == "464027401@qq.com") { + new Alert (respone.StateCode, respone.ErrorInfo, Language.StringByID (R.MyInternationalizationString.Close)).Show (); + } + }); + return; } + //GetNowHomeGateway (); + AddMacToUserConfig (gatewayMAC); + } /// <summary> - /// + /// 淇敼鍒囨崲鏈湴浣忓畢 缃戝叧 /// </summary> - /// <param name="stateCodeStr"></param> - void ShowGetAllBindGatewarysPaggerErrorInfo (string stateCodeStr) + void AddMacToUserConfig (string gatewayMAC) { - string mes = ""; - //2020-01-06 寰呰ˉ鍏� - if (stateCodeStr == ErrorCode.NetworkError) { - mes = ErrorCode.NetworkError; - } else { - mes = ErrorCode.OperationFailed + ErrorCode.Reason + stateCodeStr; + UserConfig.Instance.GatewayMAC = gatewayMAC; + UserConfig.Instance.SaveUserConfig (); + MainPage.LoginUser.LastTime = DateTime.Now; + Application.RunOnMainThread (() => { + bodyView.RemoveAll (); + UserMiddle.Init (true); + }); + + } + + + + + ///// <summary> + ///// Gateway setting succeeded锛宒ata up.Please wait... + ///// </summary> + //void BindGateways () + //{ + + // Application.RunOnMainThread (() => { + // MainPage.Loading.Start ("Gateway setting succeeded锛宒ata up.Please wait..."); + // }); + // IO.FileUtils.SaveEquipmentMessage (gatewayDeicve); + // var gatewayMAC = gatewayDeicve.MAC.Replace (".", ""); + // var oldMac = ""; + // //2020-01-11 + // if (UserConfig.Instance.CheckHomeGatewaysNotEmpty ()) { + // //褰撳墠浣忓畢瀛樺湪Mac 淇敼MAC鎺ュ彛 + // oldMac = UserConfig.Instance.CurrentRegion.HomeGateways [0].GatewayUniqueId; + // if (oldMac == gatewayMAC) {//鍜岀粦瀹歮ac涓�鑷达紝涓嶇敤淇敼 + // AddMacToUserConfig (gatewayMAC); + // return; + // } + + // var mUpdateMacObj = new UpdateMacObj () { + // LoginAccessToken = MainPage.LoginUser.LoginTokenString, + // HomeId = UserConfig.Instance.CurrentRegion.Id, + // NewMac = gatewayMAC, + // OldMac = oldMac + // }; + // string urlHead = MainPage.RequestHttpsHost; + // if (mUpdateMacObj.IsOtherAccountCtrl) { + // urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl; + // mUpdateMacObj.LoginAccessToken = UserConfig.Instance.MasterAccountToken; + // } + + // var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (mUpdateMacObj); + + // //var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (new EditMACByHomeId { RegionID = UserConfig.Instance.CurrentRegion.Id, MAC = gatewayMAC, IsReBind = true }); + // var respone = MainPage.RequestHttps (API.UpdateMac, requestJson, urlHead); + // if (respone.StateCode.ToUpper () != "SUCCESS") { + // GetNowHomeGatewayAfterBindMacFailed ();//2020-01-11 + // Application.RunOnMainThread (() => { + // new Alert ("", "Failed to update Mac address, gateway binding failed!", Language.StringByID (R.MyInternationalizationString.Close)).Show (); + // if (MainPage.LoginUser.AccountString == "464027401@qq.com") { + // new Alert (respone.StateCode, respone.ErrorInfo, Language.StringByID (R.MyInternationalizationString.Close)).Show (); + // } + // }); + // return; + // } + // //GetNowHomeGateway (); + // AddMacToUserConfig (gatewayMAC); + // } else { + // //璧版柊缁戝畾鎺ュ彛 + // var mBindMacObj = new BindGatewayToHomeObj () { + // LoginAccessToken = MainPage.LoginUser.LoginTokenString, + // HomeId = UserConfig.Instance.CurrentRegion.Id, + + // }; + // mBindMacObj.BindGateways.Add (gatewayMAC); + // string urlHead = MainPage.RequestHttpsHost; + // if (mBindMacObj.IsOtherAccountCtrl) { + // urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl; + // mBindMacObj.LoginAccessToken = UserConfig.Instance.MasterAccountToken; + // } + + + // var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (mBindMacObj); + + // //var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (new EditMACByHomeId { RegionID = UserConfig.Instance.CurrentRegion.Id, MAC = gatewayMAC, IsReBind = true }); + // var respone = MainPage.RequestHttps (API.BindGatewayToHome, requestJson, urlHead); + // if (respone.StateCode.ToUpper () != "SUCCESS" && respone.StateCode != "BindGatewaysExists") { + // GetNowHomeGatewayAfterBindMacFailed ();//2020-01-11 + // Application.RunOnMainThread (() => { + // new Alert ("", "Failed to bind Mac address, gateway binding failed!", Language.StringByID (R.MyInternationalizationString.Close)).Show (); + // if (MainPage.LoginUser.AccountString == "464027401@qq.com") { + // new Alert (respone.StateCode, respone.ErrorInfo, Language.StringByID (R.MyInternationalizationString.Close)).Show (); + // } + // }); + // return; + // } + // //GetNowHomeGateway (); + // AddMacToUserConfig (gatewayMAC); + // } + + //} + + + /// <summary> + /// 缁戝畾澶辫触涔嬪悗锛屾煡璇㈠埛鏂颁竴娆″綋鍓嶄綇瀹� 缃戝叧鍒楄〃 + /// 2020-01-11 + /// </summary> + void GetNowHomeGatewayAfterBindMacFailed () + { + + var requestObj3 = new GetSingleHomeGatewayPaggerObj (); + requestObj3.ReqDto.LoginAccessToken = MainPage.LoginUser.LoginTokenString; + requestObj3.ReqDto.HomeId = UserConfig.Instance.CurrentRegion.Id; + requestObj3.ReqDto.PageSetting.Page = 1; + requestObj3.ReqDto.PageSetting.PageSize = 10; + string urlHead = MainPage.RequestHttpsHost; + if (requestObj3.IsOtherAccountCtrl) { + urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl; + requestObj3.ReqDto.LoginAccessToken = UserConfig.Instance.MasterAccountToken; } - if (!string.IsNullOrEmpty (mes)) { - Application.RunOnMainThread (() => { - new Alert ("", mes, Language.StringByID (R.MyInternationalizationString.Close)).Show (); - }); - } + + var requestJson3 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj3); + var revertObj3 = MainPage.RequestHttps (API.GetSingleHomeGatewayPagger, requestJson3, urlHead); + if (revertObj3.StateCode.ToUpper () == "SUCCESS") { + var infoResult = Newtonsoft.Json.JsonConvert.DeserializeObject<GetGatewayResult> (revertObj3.ResponseData.ToString ()); + //2020-01-11 + UserConfig.Instance.SetNowHomeGateways (infoResult.PageData); + + } } + + ///// <summary> + ///// 鏌ヨ褰撳墠浣忓畢 缃戝叧鍒楄〃 + ///// </summary> + //void GetNowHomeGateway () + //{ + + // var requestObj3 = new GetSingleHomeGatewayPaggerObj (); + // requestObj3.ReqDto.LoginAccessToken = MainPage.LoginUser.LoginTokenString; + // requestObj3.ReqDto.HomeId = UserConfig.Instance.CurrentRegion.Id; + // requestObj3.ReqDto.PageSetting.Page = 1; + // requestObj3.ReqDto.PageSetting.PageSize = 999; + // string urlHead = MainPage.RequestHttpsHost; + // if (requestObj3.IsOtherAccountCtrl) { + // urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl; + // requestObj3.ReqDto.LoginAccessToken = UserConfig.Instance.MasterAccountToken; + // } + + + // //var requestObj3 = new GatewayByRegionListObj () { RegionID = UserConfig.Instance.CurrentRegion.Id }; + // var requestJson3 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj3); + // var revertObj3 = MainPage.RequestHttps (API.GetSingleHomeGatewayPagger, requestJson3, urlHead); + // if (revertObj3.StateCode.ToUpper () == "SUCCESS") { + // var infoResult = Newtonsoft.Json.JsonConvert.DeserializeObject<GetGatewayResult> (revertObj3.ResponseData.ToString ()); + // var responseGatewayDataObj = infoResult.PageData; + // if (responseGatewayDataObj != null && responseGatewayDataObj.Count > 0) { + + // UserConfig.Instance.GatewayList.Clear (); + // UserConfig.Instance.GatewayList.AddRange (responseGatewayDataObj); + // UserConfig.Instance.GatewayMAC = gatewayDeicve.MAC; + // UserConfig.Instance.SaveUserConfig (); + // MainPage.LoginUser.LastTime = DateTime.Now; + // Application.RunOnMainThread (() => { + // bodyView.RemoveAll (); + // UserMiddle.Init (true); + // }); + // } else { + // Application.RunOnMainThread (() => { + // new Alert ("", "Query gateway failed, gateway failed to bind residence.Please try again.", Language.StringByID (R.MyInternationalizationString.Close)).Show (); + // if (MainPage.LoginUser.AccountString == "464027401@qq.com") { + // new Alert ("22:" + revertObj3.StateCode, revertObj3.ErrorInfo, Language.StringByID (R.MyInternationalizationString.Close)).Show (); + // } + // }); + // } + // } else { + + // Application.RunOnMainThread (() => { + // new Alert ("", "Query gateway failed, gateway failed to bind residence.Please try again.", Language.StringByID (R.MyInternationalizationString.Close)).Show (); + // if (MainPage.LoginUser.AccountString == "464027401@qq.com") { + // new Alert ("22:" + revertObj3.StateCode, revertObj3.ErrorInfo, Language.StringByID (R.MyInternationalizationString.Close)).Show (); + // } + // }); + // } + + + //} + + + + + ///// <summary> + ///// + ///// </summary> + ///// <param name="stateCodeStr"></param> + //void ShowGetAllBindGatewarysPaggerErrorInfo (string stateCodeStr) + //{ + // string mes = ""; + // //2020-01-06 寰呰ˉ鍏� + // if (stateCodeStr == ErrorCode.NetworkError) { + // mes = ErrorCode.NetworkError; + // } else { + // mes = ErrorCode.OperationFailed + ErrorCode.Reason + stateCodeStr; + + // } + // if (!string.IsNullOrEmpty (mes)) { + // Application.RunOnMainThread (() => { + // new Alert ("", mes, Language.StringByID (R.MyInternationalizationString.Close)).Show (); + // }); + // } + + + //} + + //*****************StandardMQTT 閰嶇疆鏂瑰紡 鐩墠鐢ㄤ笉涓�***************** + ///// <summary> + ///// 杩滅▼閰嶇疆 Standard MQTT妯″紡 + ///// </summary> + //void RemoteSettingWithStandardMQTT () + //{ + // byte [] gatewayBytes = null; + // string [] strServerIP = (MainPage.SeviceIP).Split ('.'); + // string [] strServerIP1 = (MainPage.SeviceIP).Split ('.'); + // MainPage.Loading.Start ("Configuring device..."); + // System.Threading.Tasks.Task.Run (() => { + // try { + + // //璇诲彇涓�绔彛浜ゆ崲鏈恒�佹棤绾跨綉鍏崇殑閰嶇疆淇℃伅 + // gatewayBytes = Control.ControlBytesSendHasReturn (Command.ReadGateWayModelInfo, gatewayDeicve.SubnetID, gatewayDeicve.DeviceID, new byte [] { }); + // //杩炴帴绫诲瀷閰嶇疆涓�5 Standard MQTT妯″紡 + // gatewayBytes [0] = TYPEStandardMQTT;//Standard MQTT + // Control.ControlBytesSend (Command.SetGateWayModelInfo, gatewayDeicve.SubnetID, gatewayDeicve.DeviceID, gatewayBytes); + // //1.淇敼URL + // //2.淇敼璇诲彇瀹㈡埛绔疘D锛岀敤鎴峰悕锛屽瘑鐮� + // //3.淇敼AES鍔犲瘑 + // //4.淇敼涓婚 + + // //1.淇敼URL + // if (SetGateWayURL ("https://developer.hdlcontrol.com/api/")) { + // //2.淇敼瀹㈡埛绔疘D锛岀敤鎴峰悕锛屽瘑鐮� + // if (SetGateWayClientIDUsernamePassword ("85521566", "Admin", "85521566")) { + // //3.淇敼AES鍔犲瘑 + // if (SetGateWayAESEncryption (true, "85521566")) { + // //4.1淇敼璁㈤槄涓婚 + // if (SetGateWayTopic ("SubscribeTopic")) { + // //4.2淇敼鍙戝竷涓婚 + // if (SetGateWayTopic ("PublishTopic", true)) { + // //5.鍐欓厤缃垚鍔熷悗涓嬩竴姝ユ搷浣� + // GatewaySettingSucceeded (); + // } + // } + // } + // } + // } + + // } catch (Exception ex) { + // Console.WriteLine (ex.Message); + // Application.RunOnMainThread (() => { + // new Alert ("", Language.StringByID (R.MyInternationalizationString.OperationFailed), Language.StringByID (R.MyInternationalizationString.Close)).Show (); + // }); + // bool canRemove = false; + // } finally { + // Application.RunOnMainThread (() => { + // MainPage.Loading.Hide (); + // //this.RemoveAll (); + // }); + // } + // }); + // //Room.InitAllRoom (); + //} + + + + ///// <summary> + ///// 淇敼URL + ///// </summary> + ///// <returns></returns> + //bool SetGateWayURL (string urlStr = "", int pointID = 1883) + //{ + // byte [] sendBytes = new byte [63]; + // byte [] url = CommonPage.MyEncodingGB2312.GetBytes (urlStr); + // Array.Copy (url, 0, sendBytes, 1, 60 < url.Length ? 60 : url.Length); + // sendBytes [0] = GuideSettingGateway.TYPEStandardMQTT; + // sendBytes [61] = Convert.ToByte (pointID / 256); + // sendBytes [62] = Convert.ToByte (pointID % 256); + // var backBytes = Control.ControlBytesSendHasReturn (Command.SetGateWayURL, gatewayDeicve.SubnetID, gatewayDeicve.DeviceID, sendBytes); + + // return CheckIsSuccessfulWithBytes (backBytes); + //} + + + ///// <summary> + ///// 淇敼瀹㈡埛绔疘D锛岀敤鎴峰悕锛屽瘑鐮� + ///// </summary> + ///// <returns></returns> + //bool SetGateWayClientIDUsernamePassword (string clientIDStr = "", string usernameStr = "", string passwordStr = "") + //{ + + // byte [] userInfoBytes = new byte [64]; + // byte [] clientID = CommonPage.MyEncodingGB2312.GetBytes (clientIDStr); + // Array.Copy (clientID, 0, userInfoBytes, 0, 32 < clientID.Length ? 32 : clientID.Length); + // byte [] username = CommonPage.MyEncodingGB2312.GetBytes (usernameStr); + // Array.Copy (username, 0, userInfoBytes, 32, 16 < username.Length ? 16 : username.Length); + // byte [] password = CommonPage.MyEncodingGB2312.GetBytes (passwordStr); + // Array.Copy (password, 0, userInfoBytes, 48, 16 < password.Length ? 16 : password.Length); + // var setUserInfoBytes = Control.ControlBytesSendHasReturn (Command.SetGateWayClientIDUsernamePassword, gatewayDeicve.SubnetID, gatewayDeicve.DeviceID, userInfoBytes); + + // return CheckIsSuccessfulWithBytes (setUserInfoBytes); + //} + + ///// <summary> + ///// 淇敼AES鍔犲瘑 + ///// </summary> + ///// <returns></returns> + //bool SetGateWayAESEncryption (bool enable = false, string passwordStr = "") + //{ + // byte [] sendBytes = new byte [17]; + // sendBytes [0] = enable ? (byte)1 : (byte)0; //0:涓嶄娇鑳� 1 - 255:浣胯兘 + // byte [] password = CommonPage.MyEncodingGB2312.GetBytes (passwordStr); + // Array.Copy (password, 0, sendBytes, 1, 16 < password.Length ? 16 : password.Length); + // var backBytes = Control.ControlBytesSendHasReturn (Command.SetGateWayAESEncryption, gatewayDeicve.SubnetID, gatewayDeicve.DeviceID, sendBytes); + + // return CheckIsSuccessfulWithBytes (backBytes); + //} + + ///// <summary> + ///// 淇敼涓婚 + ///// </summary> + ///// <param name="bPublish">鏄惁涓哄彂甯冧富棰�</param> + ///// <param name="bDefault">鏄惁榛樿</param> + ///// <returns></returns> + //bool SetGateWayTopic (string topicInfoStr = "", bool bPublish = false, bool bDefault = false) + //{ + // byte [] sendBytes = new byte [50]; + // sendBytes [0] = bPublish ? (byte)2 : (byte)1; //1锛氳闃� 2锛氬彂甯� + // sendBytes [1] = bDefault ? (byte)0 : (byte)1; //1:闈為粯璁� 0:榛樿 + + // byte [] topicInfo = CommonPage.MyEncodingGB2312.GetBytes (topicInfoStr); + // Array.Copy (topicInfo, 0, sendBytes, 2, 48 < topicInfo.Length ? 48 : topicInfo.Length); + // var backBytes = Control.ControlBytesSendHasReturn (Command.SetGateWayTopic, gatewayDeicve.SubnetID, gatewayDeicve.DeviceID, sendBytes); + + // if (backBytes != null && backBytes.Length >= 2) { + // if (backBytes [0] == sendBytes [0] && backBytes [1] == sendBytes [1]) { + // return true; + // } + // } + // return CheckIsSuccessfulWithBytes (backBytes); + //} + } } \ No newline at end of file -- Gitblit v1.8.0