Crabtree/.vs/SmartHome/xs/UserPrefs.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Crabtree/ON.Ios/AppDelegate.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Crabtree/SmartHome/HDL/Common/Constant.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Crabtree/SmartHome/HDL/Common/HttpUtil/HttpServerRequest.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Crabtree/SmartHome/HDL/Common/HttpUtil/IMessageCommon.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Crabtree/SmartHome/HDL/Common/HttpUtil/NewAPI.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Crabtree/SmartHome/HDL/Common/HttpUtil/NewApiRes.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddGateway.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
README.md | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Crabtree/.vs/SmartHome/xs/UserPrefs.xml
@@ -1,10 +1,9 @@ <Properties StartupConfiguration="{1D83BF28-BA88-4152-BA41-D7EFE90A5437}|Default"> <MonoDevelop.Ide.ItemProperties.ON.Droid PreferredExecutionTarget="Android.822QECU5228FU" /> <MonoDevelop.Ide.Workbench ActiveDocument="SmartHome/UI/SimpleControl/R.cs"> <MonoDevelop.Ide.Workbench ActiveDocument="SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs"> <Files> <File FileName="SmartHome/HDL/Common/HttpUtil/ErrorCode.cs" Line="74" Column="53" /> <File FileName="SmartHome/HDL/Common/HttpUtil/IMessageCommon.cs" Line="166" Column="76" /> <File FileName="SmartHome/UI/SimpleControl/R.cs" Line="1052" Column="26" /> <File FileName="SmartHome/UI/SimpleControl/Phone/Guide/GuideAddGateway.cs" Line="1" Column="1" /> <File FileName="SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs" Line="1" Column="1" /> </Files> <Pads> <Pad Id="ProjectPad"> @@ -18,7 +17,11 @@ </Node> <Node name="UI" expanded="True"> <Node name="SimpleControl" expanded="True"> <Node name="R.cs" selected="True" /> <Node name="Phone" expanded="True"> <Node name="Guide" expanded="True"> <Node name="GuideSettingGateway.cs" selected="True" /> </Node> </Node> </Node> </Node> </Node> Crabtree/ON.Ios/AppDelegate.cs
@@ -76,9 +76,9 @@ AppCenter.Start ("44cbdfbf-d33e-4e92-a795-1c4452e54d3e", typeof (Analytics), typeof (Crashes)); Utlis.WriteLine ("FinishedLaunching"); //Shared.Application.IsGpsEnable = false; //Shared.Application.IsUsePingFang = true; base.FinishedLaunching (application, launchOptions); SharedMethod.SharedMethod.sharedApp = application; Crabtree/SmartHome/HDL/Common/Constant.cs
@@ -7,26 +7,7 @@ /// </summary> public class Constant { /// <summary> /// 用户协议 /// </summary> public const string URL_USERAGREEMENT = "https://developer.hdlcontrol.com/HDLOnPlusUserAgreement.html"; /// <summary> /// 隐私政策 /// </summary> public const string URL_PRIVACYPOLICY = "https://developer.hdlcontrol.com/HDLOnPlusPrivacyPolicy.html"; /// <summary> /// 技术支持电话号码 /// </summary> public const string SUPPORT_TELEPHONENUMBER = "4008558535"; /// <summary> /// 技术支持邮箱地址 /// </summary> public const string SUPPORT_EMAIL = "hdltickets@hdlautomation.com"; /// <summary> /// 苹果商店地址 /// </summary> public const string URL_APPSTORE = "https://apps.apple.com/cn/app/on/id1532353432"; /// <summary> /// 裁剪图片的高大小 @@ -286,5 +267,18 @@ } /// <summary> /// 网关类型 /// </summary> public enum GatewayType { BUSUDPGATEWAY = 1, AGATEWAY, ZIGBEEGATEWAY, KNXGATEWAY, } #endregion } Crabtree/SmartHome/HDL/Common/HttpUtil/HttpServerRequest.cs
@@ -65,13 +65,9 @@ } return revertObj.Code; } #endregion #region 注册、登录部分 /// <summary> /// 通用 发送验证码方法 /// </summary> @@ -488,6 +484,17 @@ } /// <summary> /// 绑定网关 /// </summary> /// <param name="mac"></param> /// <returns></returns> public ResponsePackNew BindGateway (BindGatewayObj newGateway) { var requestJson = HttpUtil.GetSignRequestJson (newGateway); return HttpUtil.RequestHttpsPostFroHome (NewAPI.API_POST_BindGateway, requestJson); } /// <summary> /// 获取刷新当前住宅的网关列表 /// </summary> public string GetHomeGatewayList() @@ -552,6 +559,8 @@ return revertObj.Code; } /// <summary> /// 获取住宅下的成员账号 /// </summary> Crabtree/SmartHome/HDL/Common/HttpUtil/IMessageCommon.cs
@@ -62,10 +62,10 @@ //dicMsg = new Dictionary<string, Dictionary<string, int>>(); #region 共通错误码 stateCodeDic = new Dictionary<string, int>(); //与服务器通讯失败 stateCodeDic ["NETWORK_ERROR"] = MyInternationalizationString.FailedRequestServer; //数据异常 stateCodeDic ["DATA_EXCEPTION"] = MyInternationalizationString.DataExceptionPleaseTryAgain; ////与服务器通讯失败 //stateCodeDic ["NETWORK_ERROR"] = MyInternationalizationString.FailedRequestServer; ////数据异常 //stateCodeDic ["DATA_EXCEPTION"] = MyInternationalizationString.DataExceptionPleaseTryAgain; //与服务器通讯失败 stateCodeDic [StateCode.NETWORK_ERROR] = MyInternationalizationString.FailedRequestServer; //数据异常 Crabtree/SmartHome/HDL/Common/HttpUtil/NewAPI.cs
@@ -162,10 +162,10 @@ #endregion #region ■ GatewayCluster -- 网关___________________________ ///// <summary> ///// 绑定网关到住宅 ///// </summary> //public const string API_POST_BindGateway = "/home-wisdom/app/gateway/bindGateway"; /// <summary> /// 绑定网关到住宅 /// </summary> public const string API_POST_BindGateway = "/home-wisdom/app/gateway/bindGateway"; /// <summary> /// 获取住宅网关分页 /// </summary> Crabtree/SmartHome/HDL/Common/HttpUtil/NewApiRes.cs
@@ -519,6 +519,14 @@ /// 设备号 /// </summary> public int deviceId; /// <summary> /// 是否强制换绑Mac /// </summary> public bool swapGateway = true; /// <summary> /// 禁止多网关,保证一个住宅下只有一个网关 /// </summary> public bool disableMoreGw = true; } Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddGateway.cs
@@ -284,6 +284,8 @@ }; EventHandler<MouseEventArgs> eHandler = (sender, e) => { //跳转之前先绑定APP MainPage.Loading.Start ("Please wait..."); bool needHide = true; new System.Threading.Thread (() => { @@ -300,8 +302,14 @@ bool goNext = false; System.Threading.Tasks.Task.Run (() => { try { // goNext = CheckIfGoNext (common); if (goNext) { //先重置 goNext = false; //网关版本符合要求,判断是否绑定网关成功,绑定成功了才能进行下一步 goNext = CheckIfBindGatewaySuccess (common); } } catch (Exception ex) { Utlis.WriteLine (ex.Message); @@ -342,7 +350,46 @@ } } /// <summary> /// 检测是否绑定网关成功 /// </summary> /// <returns></returns> static bool CheckIfBindGatewaySuccess (GatewayBase gatewayBase) { try { if (UserConfig.Instance.CheckHomeGatewaysNotEmpty ()) { //之前绑定过网关,并且和当前搜索到到网关一致 if (UserConfig.Instance.HomeGateway.mac.ToUpper () == gatewayBase.MAC.Replace (".", "").ToUpper ()) { return true; } } var gatewayMAC = gatewayBase.MAC.Replace (".", ""); //重新绑定 var bindGatewayObj = new BindGatewayObj () { homeId = UserConfig.Instance.CurrentRegion.Id, subnetId = gatewayBase.sceneID, 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 { } return false; } static bool inThisView = false; Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs
@@ -713,7 +713,7 @@ return; } } BindGatewaysNew (); GotoHomePage (); } } catch (Exception ex) { Utlis.WriteLine (ex.Message); @@ -914,80 +914,73 @@ } } BindGatewaysNew (); GotoHomePage (); } /// <summary> /// Gateway setting succeeded,data up.Please wait... /// 绑定Mac(印度版) /// </summary> void BindGatewaysNew () { Application.RunOnMainThread (() => { MainPage.Loading.Start ("Gateway setting succeeded,data up. Please wait..."); }); IO.FileUtils.SaveEquipmentMessage (gatewayDeicve); var gatewayMAC = gatewayDeicve.MAC.Replace (".", ""); ///// <summary> ///// Gateway setting succeeded,data up.Please wait... ///// 绑定Mac(印度版) ///// </summary> //void BindGatewaysNew () //{ // //Application.RunOnMainThread (() => { // // MainPage.Loading.Start ("Gateway setting succeeded,data up. Please wait..."); // //}); // //IO.FileUtils.SaveEquipmentMessage (gatewayDeicve); // //var gatewayMAC = gatewayDeicve.MAC.Replace (".", ""); //走新更新绑定接口 var mBindMacObj = new BindMacObj () { LoginAccessToken = MainPage.LoginUser.LoginTokenString, HomeId = UserConfig.Instance.CurrentRegion.Id, MAC = gatewayMAC // ////走新更新绑定接口 // //var mBindMacObj = new BindMacObj () { // // LoginAccessToken = MainPage.LoginUser.LoginTokenString, // // HomeId = UserConfig.Instance.CurrentRegion.Id, // // MAC = gatewayMAC }; string urlHead = MainPage.RequestHttpsHost; if (mBindMacObj.IsOtherAccountCtrl) { urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl; mBindMacObj.LoginAccessToken = UserConfig.Instance.MasterAccountToken; } // //}; // //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 (mBindMacObj); //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 () != StateCode.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); // ////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 () != StateCode.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 (); } // var gatewayMAC = gatewayDeicve.MAC.Replace (".", ""); // AddMacToUserConfig (gatewayMAC); //} /// <summary> /// 修改切换本地住宅 网关 /// 跳转主页面 /// </summary> void AddMacToUserConfig (string gatewayMAC) void GotoHomePage () { UserConfig.Instance.GatewayMAC = gatewayMAC; UserConfig.Instance.SaveUserConfig (); MainPage.LoginUser.LastTime = DateTime.Now; Application.RunOnMainThread (() => { bodyView.RemoveAll (); this.RemoveFromParent (); //MainPage.WiFiStatus = "CrabtreeAdd/WiFi.png"; UserMiddle.Init (true); MainPage.WiFiStatus = "CrabtreeAdd/WiFi.png"; UserMiddle.btnLinkStatus.UnSelectedImagePath = MainPage.WiFiStatus; }); //Utlis.ShowAppLinkStatus (AppLinkStatus.WiFi); } ///// <summary> @@ -1075,35 +1068,35 @@ //} /// <summary> /// 绑定失败之后,查询刷新一次当前住宅 网关列表 /// 2020-01-11 /// </summary> void GetNowHomeGatewayAfterBindMacFailed () { ///// <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; } // 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; // } var requestJson3 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj3); var revertObj3 = MainPage.RequestHttps (API.GetSingleHomeGatewayPagger, requestJson3, urlHead); if (revertObj3.StateCode.ToUpper () == StateCode.SUCCESS) { var infoResult = Newtonsoft.Json.JsonConvert.DeserializeObject<GetGatewayResult> (revertObj3.ResponseData.ToString ()); //2020-01-11 UserConfig.Instance.SetNowHomeGateways (infoResult.PageData); // var requestJson3 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj3); // var revertObj3 = MainPage.RequestHttps (API.GetSingleHomeGatewayPagger, requestJson3, urlHead); // if (revertObj3.StateCode.ToUpper () == StateCode.SUCCESS) { // var infoResult = Newtonsoft.Json.JsonConvert.DeserializeObject<GetGatewayResult> (revertObj3.ResponseData.ToString ()); // //2020-01-11 // UserConfig.Instance.SetNowHomeGateways (infoResult.PageData); } // } } //} #region 2020-07-02 /// <summary> README.md
@@ -2,6 +2,9 @@ CrabtreeOn 备注: app目前本地通信开启了加密模式,密码为住宅ID前16位,点击搜索到的网关时会自动写加密密码给无线网关。 2020 客户的新需求记录 1.密码规则:密码必须是8-20个字符,包括至少一个大小写字母,数字和特殊字符。