From 365eadb33ee86b05ac74d408025d102a758c2efd Mon Sep 17 00:00:00 2001 From: 陈嘉乐 <cjl@hdlchina.com.cn> Date: 星期五, 10 一月 2020 15:27:17 +0800 Subject: [PATCH] 2020-01-10 2020-01-10 1.修改切换本地和远程问题。 2.修改判断住宅网关方案。 3.其它优化修改。 --- Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs | 169 ++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 133 insertions(+), 36 deletions(-) diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs index 2b4e0ac..ff4698b 100644 --- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs +++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs @@ -1009,7 +1009,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); @@ -1044,28 +1044,42 @@ 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; + 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); + var respone = MainPage.RequestHttps (API.UpdateMac, requestJson, urlHead); if (respone.StateCode.ToUpper () != "SUCCESS") { Application.RunOnMainThread (() => { - new Alert ("", "Communication abnormality,gateway failed to bind residence!", Language.StringByID (R.MyInternationalizationString.Close)).Show (); + 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; } - GetAllBindGatewarysPagger (); + //GetNowHomeGateway (); + AddMacToUserConfig (gatewayMAC); } else { //璧版柊缁戝畾鎺ュ彛 var mBindMacObj = new BindGatewayToHomeObj () { @@ -1074,57 +1088,140 @@ }; 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); + var respone = MainPage.RequestHttps (API.BindGatewayToHome, requestJson, urlHead); 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 (); + 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; } - GetAllBindGatewarysPagger (); - + //GetNowHomeGateway (); + AddMacToUserConfig (gatewayMAC); } } - 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 { + //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 { - ShowGetAllBindGatewarysPaggerErrorInfo (gatewayListRevertObj.StateCode); - } + // ShowGetAllBindGatewarysPaggerErrorInfo (gatewayListRevertObj.StateCode); + // } + + //} + + /// <summary> + /// 淇敼鍒囨崲鏈湴浣忓畢 缃戝叧 + /// </summary> + void AddMacToUserConfig (string gatewayMAC) + { + + UserConfig.Instance.GatewayMAC = gatewayMAC; + UserConfig.Instance.SaveUserConfig (); + MainPage.LoginUser.LastTime = DateTime.Now; + Application.RunOnMainThread (() => { + bodyView.RemoveAll (); + UserMiddle.Init (true); + }); + } + ///// <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> -- Gitblit v1.8.0