| | |
| | | using Shared; |
| | | using System;
|
| | | using System.Collections.Generic; |
| | | using System.IO; |
| | | using System.Net;
|
| | | using System.Text; |
| | | using HDL_ON.Entity; |
| | | using Newtonsoft.Json.Linq; |
| | | using Shared; |
| | | |
| | | namespace HDL_ON.DAL.Server |
| | | { |
| | |
| | | "\"sss\":" + "\"" + sss + "\"" + "," + |
| | | "\"xxx\":" + xxx + "," + |
| | | "}"; |
| | | |
| | | 获取返回的数据 |
| | | var sss = Newtonsoft.Json.Linq.JObject.FromObject("sss"); |
| | | var xxx = homeJsonStr.GetValue("xxx").ToString(), |
| | | |
| | | |
| | | Dictionary<string, object> d = new Dictionary<string, object>(); |
| | | d.Add("Id", fId); |
| | | var jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(d); |
| | | |
| | | |
| | | */ |
| | | |
| | | public string relaseaSever = "https://global.hdlcontrol.com/HangZhouHdlCloudApi"; |
| | | public string debugSever = "https://global.hdlcontrol.com/ProposedProductionApi"; |
| | | |
| | | string severAddress; |
| | | |
| | | public HttpServerRequest() |
| | | { |
| | | #if DEBUG1 |
| | | severAddress = debugSever; |
| | | #else |
| | | severAddress = relaseaSever; |
| | | #endif |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取传感器历史数据 |
| | | /// </summary> |
| | | /// <param name="subnetId"></param> |
| | | /// <param name="deviceId"></param> |
| | | /// <param name="bigClass"></param> |
| | | /// <param name="minClass"></param> |
| | | /// <param name="queryType"></param> |
| | | /// <param name="loopId"></param> |
| | | /// <param name="nowMonth"></param> |
| | | /// <param name="mac"></param> |
| | | /// <returns></returns> |
| | | public ResponsePack GetSensorHistory(int subnetId,int deviceId,int bigClass,int minClass,int queryType,int loopId,int nowMonth,string mac) |
| | | { |
| | | Dictionary<string, object> d = new Dictionary<string, object>(); |
| | | d.Add("SubnetID", subnetId); |
| | | d.Add("DeviceID", deviceId); |
| | | d.Add("LargeType", bigClass); |
| | | d.Add("SmallType", minClass); |
| | | d.Add("QueryType", queryType); |
| | | d.Add("loopId", loopId); |
| | | d.Add("NowMonth", nowMonth); |
| | | d.Add("MAC", DB_ResidenceData.residenceData.residenceGatewayMAC); |
| | | d.Add("LocalTimeZone", 8); |
| | | var jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(d); |
| | | return RequestHttps("https://developer.hdlcontrol.com/api/GetSensorPushHistory", jsonString,true); |
| | | |
| | | } |
| | | |
| | | public string GetRequestResultMsg(string resultCode) |
| | | { |
| | | string result = ""; |
| | | switch (resultCode.ToUpper()) |
| | | { |
| | | case "USERNAMEORPWDERROR": |
| | | result = Language.StringByID(StringId.LoginFailed_AccountOrPasswordError); |
| | | break; |
| | | case "ACCOUNTNOEXISTS": |
| | | result = Language.StringByID(StringId.ACCOUNTNOEXISTS); |
| | | break; |
| | | case "SENDFAIL": |
| | | result = Language.StringByID(StringId.FailedToSendVerificationCode); |
| | | break; |
| | | case "EXIST": |
| | | result = Language.StringByID(StringId.AccountAlreadyExists); |
| | | break; |
| | | case "Self:Net_Error": |
| | | result = Language.StringByID(StringId.NetworkAnomaly); |
| | | break; |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | |
| | | #region 注册、登录部分 |
| | | /// <summary> |
| | |
| | | "\"Account\":" + "\"" + account + "\"" + "," + |
| | | "\"Password\":" + "\"" + password + "\"" + |
| | | "}"; |
| | | return RequestHttps(@"https://global.hdlcontrol.com/HangZhouHdlCloudApi/ZigbeeUsers/Login", jsonString, false); |
| | | return RequestHttps($"{severAddress}/ZigbeeUsers/Login", jsonString, false); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 验证码登录 |
| | | /// </summary> |
| | | public ResponsePack LoginValidCode(string account,string vCode) |
| | | { |
| | | Dictionary<string, object> d = new Dictionary<string, object>(); |
| | | d.Add("Account", account); |
| | | d.Add("Code", vCode); |
| | | d.Add("Language", Language.CurrentLanguage); |
| | | d.Add("AreaCode", "86"); |
| | | var jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(d); |
| | | return RequestHttps($"{severAddress}/ZigbeeUsers/LoginValidCode", jsonString, false); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | string jsonString = "{" +
|
| | | "\"Account\":" + "\"" + mobileNumber + "\"" + "," + |
| | | "\"Password\":" + "\"" + password + "\"" + "," + |
| | | "\"Language\":" + "\"" + language + "\"" + |
| | | "\"Language\":" + "\"" + language + "\"" + |
| | | "\"AreaCode\":" + "\"" + "86" + "\"" + |
| | | "}"; |
| | | return RequestHttps(@"https://global.hdlcontrol.com/HangZhouHdlCloudApi/SignIn", jsonString, false); |
| | | return RequestHttps($"{severAddress}/SignIn", jsonString, false); |
| | | } |
| | | |
| | | public ResponsePack GetAreaCode() |
| | | { |
| | | string requestJson = "{}"; |
| | | return RequestHttps(@"https://global.hdlcontrol.com/HangZhouHdlCloudApi/ZigbeeUsers/GetAreaCode", requestJson, false); |
| | | return RequestHttps($"{severAddress}/ZigbeeUsers/GetAreaCode", requestJson, false); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | "\"Account\":" + "\"" + account + "\"" + "," + |
| | | "\"Password\":" + "\"" + password + "\"" + "," + |
| | | "\"EnterPassword\":" + "\"" + entryPassword + "\"" + "," + |
| | | "\"Language\":" + "\"" + Language.CurrentLanguage + "\"" + "," + |
| | | "\"Language\":" + "\"" + Language.CurrentLanguage.ToLower() + "\"" + "," + |
| | | "\"Code\":" + "\"" + code + "\"" + "," + |
| | | "\"RegisterSoruce\":" + 0 + "," + |
| | | "\"AreaCode\":" + areaCode + |
| | | "}"; |
| | | return RequestHttps(@"https://global.hdlcontrol.com/HangZhouHdlCloudApi/ZigbeeUsers/ValidataCodeAndRegisterAccount", requestJson, false); |
| | | return RequestHttps($"{severAddress}/ZigbeeUsers/ValidataCodeAndRegisterAccount", requestJson, false); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 获取注册验证码 |
| | | /// </summary> |
| | | public ResponsePack GetPhoneRegisterVerCode(string account) |
| | | public ResponsePack GetRegisterVerCode(string account) |
| | | { |
| | | string jsonString = "{" +
|
| | | "\"Account\":" + "\"" + account + "\"" + "," + |
| | | "\"Company\":" + MainPage.Company + "," + |
| | | "\"Language\":" + "\"" + Language.CurrentLanguage + "\"" + "," + |
| | | "\"AreaCode\":" + UserConfig.Instance.CountryNumber + |
| | | "\"Language\":" + "\"" + Language.CurrentLanguage.ToLower() + "\"" + "," + |
| | | "\"AreaCode\":" + OnAppConfig.Instance.CountryNumber + |
| | | "}"; |
| | | return RequestHttps(@"https://global.hdlcontrol.com/HangZhouHdlCloudApi/ZigbeeUsers/RegisterSendVerCode", jsonString, false); |
| | | return RequestHttps($"{severAddress}/ZigbeeUsers/RegisterSendVerCode", jsonString, false); |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 获取登录验证码 |
| | | /// </summary> |
| | | /// <param name="phoneNum">手机号码</param> |
| | | public ResponsePack GetPhoneLoginVerCode(string phoneNum) |
| | | public ResponsePack GetLoginVerCode(string account) |
| | | { |
| | | |
| | | string jsonString = "{" +
|
| | | "\"Phone\":" + "\"" + phoneNum + "\"" + "," + |
| | | "\"Company\":" + MainPage.Company + |
| | | "\"Account\":" + "\"" + account + "\"" + "," + |
| | | "\"AreaCode\":" + "86" + |
| | | "}"; |
| | | return RequestHttps(@"https://global.hdlcontrol.com/HangZhouHdlCloudApi/ZigbeeUsers/LoginSendVerCode", jsonString, false); |
| | | return RequestHttps($"{severAddress}/ZigbeeUsers/LoginSendVerCode", jsonString, false); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | "\"Account\":" + "\"" + account + "\"" + "," + |
| | | "\"Company\":" + MainPage.Company + "," + |
| | | "\"Language\":" + "\"" + Language.CurrentLanguage + "\"" + "," + |
| | | "\"AreaCode\":" + UserConfig.Instance.CountryNumber + |
| | | "\"AreaCode\":" + OnAppConfig.Instance.CountryNumber + |
| | | "}"; |
| | | return RequestHttps(@"https://global.hdlcontrol.com/HangZhouHdlCloudApi/ZigbeeUsers/LoginSendVerCode", jsonString, false); |
| | | return RequestHttps($"{severAddress}/ZigbeeUsers/LoginSendVerCode", jsonString, false); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | "\"Language\":" + "\"" + Language.CurrentLanguage + "\"" + "," + |
| | | "\"AreaCode\":" + countryIndex + |
| | | "}"; |
| | | return RequestHttps(@"https://global.hdlcontrol.com/HangZhouHdlCloudApi/ZigbeeUsers/ValidatorCode", jsonString, false); |
| | | return RequestHttps($"{severAddress}/ZigbeeUsers/ValidatorCode", jsonString, false); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | "\"AgainPassword\":" + "\"" + rePassword + "\"" + "," + |
| | | "\"AreaCode\":" + countryIndex + |
| | | "}"; |
| | | return RequestHttps(@"https://global.hdlcontrol.com/HangZhouHdlCloudApi/ZigbeeUsers/ResetPassword", jsonString, false); |
| | | return RequestHttps($"{severAddress}/ZigbeeUsers/ResetPassword", jsonString, false); |
| | | } |
| | | #endregion |
| | | |
| | | #region 个人信息部分 |
| | | /// <summary> |
| | | /// 获取用户信息 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public void GetUserInfo() |
| | | { |
| | | Dictionary<string, object> d = new Dictionary<string, object>(); |
| | | var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(d); |
| | | var revertObj = RequestHttps($"{severAddress}/ZigbeeUsers/GetAccountInfo", requestJson, true); |
| | | |
| | | if (revertObj.StateCode.ToUpper() == "SUCCESS") |
| | | { |
| | | var dataStr = JObject.FromObject(revertObj.ResponseData); |
| | | //"DistributedMark": "96439601-fd26-4768-8440-1d9dfa32c109", < !--帐号Id-- > |
| | | MainPage.LoginUser.userEmailInfo = dataStr.GetValue("Email").ToString(); |
| | | MainPage.LoginUser.userMobileInfo = dataStr.GetValue("Phone").ToString(); |
| | | FileStream fs = null; |
| | | try |
| | | { |
| | | var headImageString = dataStr.GetValue("HeadImage").ToString(); |
| | | if (!string.IsNullOrEmpty(headImageString)) |
| | | { |
| | | var jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(headImageString); |
| | | var headImageBytes = Newtonsoft.Json.JsonConvert.DeserializeObject<byte[]>(jsonString); |
| | | MainPage.LoginUser.headImagePageBytes = headImageBytes; |
| | | var filePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal) + "/", "headImage.png"); |
| | | fs = new FileStream(filePath, FileMode.Create, FileAccess.Write); |
| | | fs.Write(headImageBytes, 0, headImageBytes.Length); |
| | | fs.Flush(); |
| | | MainPage.LoginUser.headImagePagePath = filePath; |
| | | } |
| | | } catch (Exception ex) |
| | | { |
| | | MainPage.Log($"download headImage error : {ex.Message}"); |
| | | } |
| | | finally |
| | | { |
| | | if (fs != null) |
| | | { |
| | | fs.Close(); |
| | | } |
| | | } |
| | | // "GesturePwd": null, < !--手势密码-- > |
| | | // "StringPwd": null , < !--字符串密码-- > |
| | | MainPage.LoginUser.userName = dataStr.GetValue("UserName").ToString(); |
| | | |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | }); |
| | | |
| | | MainPage.LoginUser.SaveUserInfo(); |
| | | MainPage.Log("获取用户信息成功。"); |
| | | } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 更新用户昵称 |
| | | /// </summary> |
| | | /// <param name="userName"></param> |
| | | /// <returns></returns> |
| | | public ResponsePack EditUserName(string userName) |
| | | { |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add("UserName", userName); |
| | | var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(d); |
| | | var revertObj = RequestHttps($"{severAddress}/ZigbeeUsers/UpdateUserName", requestJson, true); |
| | | return revertObj; |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 更新用户头像 |
| | | /// </summary> |
| | | /// <param name="vs"></param> |
| | | /// <returns></returns> |
| | | public string UpdataUserHeadImage(string fileName) |
| | | { |
| | | FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read); |
| | | byte[] bytes = new byte[fs.Length]; |
| | | fs.Read(bytes, 0, bytes.Length); |
| | | |
| | | Dictionary<string, byte[]> d = new Dictionary<string, byte[]>(); |
| | | d.Add("HeadImage", bytes); |
| | | var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(d); |
| | | |
| | | var revertObj = RequestHttps($"{severAddress}/ZigbeeUsers/UpdateHeadImage", requestJson, true); |
| | | return revertObj.StateCode; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 更改绑定账户的邮箱或者手机号 |
| | | /// </summary> |
| | | /// <param name="account"></param> |
| | | /// <returns></returns> |
| | | public string BindAccount(string account) |
| | | { |
| | | string jsonString = "{" + "\"Account\":" + "\"" + account + "\"" + "}"; |
| | | var responsePack = RequestHttps($"{severAddress}/ZigbeeUsers/BindAccount", jsonString, true); |
| | | return responsePack.StateCode; |
| | | } |
| | | #endregion |
| | | |
| | |
| | | /// <summary> |
| | | /// 获取住宅列表 |
| | | /// </summary> |
| | | public ResponsePack GetHomePager() |
| | | public string GetHomePager() |
| | | { |
| | | string jsonString = "{" +
|
| | | "\"RequestVersion\":" + "\"" + MainPage.VersionString + "\"" + "," + |
| | | "\"RequestSource\":" + "\"" + "1" + "\"" + "," + |
| | | "\"RequestSource\":" + "\"" + "2" + "\"" + "," + |
| | | "\"HomeType\":" + "\"" + "1" + "\"" + "," + |
| | | "\"LoginAccessToken\":" + "\"" + MainPage.LoginUser.LoginTokenString + "\"" + |
| | | "\"LoginAccessToken\":" + "\"" + MainPage.LoginUser.loginTokenString + "\"" + |
| | | "}"; |
| | | return RequestHttps(@"https://global.hdlcontrol.com/HangZhouHdlCloudApi/App/GetHomePager", jsonString,false); |
| | | var responsePack = RequestHttps($"{severAddress}/App/GetHomePager", jsonString,false); |
| | | |
| | | if (responsePack.StateCode.ToUpper() == "SUCCESS") |
| | | { |
| | | var dataStr = JObject.FromObject(responsePack.ResponseData); |
| | | //没有住宅 |
| | | if (dataStr.GetValue("PageData").ToString() == "[]") |
| | | { |
| | | |
| | | } |
| | | else |
| | | { |
| | | //{ |
| | | // { |
| | | // "Id": "1107487", |
| | | // "HomeStatus": 2, |
| | | // "UserGuid": "22980", |
| | | // "Name": "啊", |
| | | // "Address": null, |
| | | // "Longitude": 0.0, |
| | | // "Latitude": 0.0, |
| | | // "RegionName": null, |
| | | // "Company": null, |
| | | // "ContactPerson": null, |
| | | // "ContactPersonPhone": null, |
| | | // "Remarks": null, |
| | | // "ChangeDate": null, |
| | | // "AccountType": 0, |
| | | // "CreatedOnUtc": "2020-05-27T06:52:03", |
| | | // "IsOthreShare": false, |
| | | // "MainUserDistributedMark": null, |
| | | // "HomeGateways": [ |
| | | // { |
| | | // "GatewayUniqueId": "4E47323347591243" |
| | | // } |
| | | // ] |
| | | //}} |
| | | MainPage.LoginUser.regionList = new List<RegionInfoRes>(); |
| | | foreach (var jsonData in dataStr.GetValue("PageData")) |
| | | { |
| | | var homeJsonStr = JObject.FromObject(jsonData); |
| | | var home = new RegionInfoRes() |
| | | { |
| | | RegionID = homeJsonStr.GetValue("Id").ToString(), |
| | | RegionName = homeJsonStr.GetValue("RegionName").ToString(), |
| | | Name = homeJsonStr.GetValue("Name").ToString(), |
| | | Address = homeJsonStr.GetValue("Address").ToString(), |
| | | IsOthreShare = (bool)homeJsonStr.GetValue("IsOthreShare"), |
| | | }; |
| | | MainPage.LoginUser.regionList.Add(home); |
| | | if (string.IsNullOrEmpty(DB_ResidenceData.residenceData.CurReginID)) |
| | | { |
| | | DB_ResidenceData.residenceData.CurReginID = MainPage.LoginUser.regionList[0].RegionID; |
| | | } |
| | | } |
| | | DB_ResidenceData.residenceData.SaveResidenceData(); |
| | | MainPage.LoginUser.SaveUserInfo(); |
| | | } |
| | | } |
| | | return responsePack.StateCode; |
| | | } |
| | | /// <summary> |
| | | /// 编辑住宅信息 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public ResponsePack EditResidenceInfo() |
| | | { |
| | | //创建字典 |
| | | Dictionary<string, object> d = new Dictionary<string, object>(); |
| | | //添加元素 |
| | | d.Add("RequestVersion", MainPage.VersionString); |
| | | d.Add("RequestSource", "2"); |
| | | d.Add("LoginAccessToken", MainPage.LoginUser.loginTokenString); |
| | | d.Add("HomeId", DB_ResidenceData.residenceData.residecenInfo.RegionID); |
| | | d.Add("HomeType", 1); |
| | | d.Add("Name", DB_ResidenceData.residenceData.residecenInfo.Name); |
| | | d.Add("Address", DB_ResidenceData.residenceData.residecenInfo.Address); |
| | | //添加完成以后把字典类中数据格式化为json字符串 |
| | | //将对象转为json字符串 |
| | | |
| | | string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(d); |
| | | return RequestHttps($"{severAddress}/App/EditHome", jsonString, false); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取住宅下的成员账号 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public ResponsePack GetResidenceMemberAccount() |
| | | { |
| | | Dictionary<string, object> d = new Dictionary<string, object>(); |
| | | d.Add("DistributedMark", DB_ResidenceData.residenceData.residecenInfo.RegionID); |
| | | string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(d); |
| | | return RequestHttps($"{severAddress}/ZigbeeUsers/GetSubAccountByDistributedMark", jsonString, true); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 删除住宅下的成员账号 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public ResponsePack DeleteResidenceMemberAccount(string memberAccount) |
| | | { |
| | | Dictionary<string, object> d = new Dictionary<string, object>(); |
| | | d.Add("SubAccount", memberAccount); |
| | | d.Add("HouseDistributedMark", DB_ResidenceData.residenceData.residecenInfo.RegionID); |
| | | string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(d); |
| | | return RequestHttps($"{severAddress}/ZigbeeUsers/DeletedSubAccount", jsonString, true); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 修改子账号昵称 |
| | | /// </summary> |
| | | /// <param name="nickName"></param> |
| | | /// <param name="subAccountGuid"></param> |
| | | /// <returns></returns> |
| | | public ResponsePack EditSubAccountNickName(string nickName,string subAccountGuid) |
| | | { |
| | | Dictionary<string, object> d = new Dictionary<string, object>(); |
| | | d.Add("SubAccountGuid", subAccountGuid); |
| | | d.Add("NickName", nickName); |
| | | string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(d); |
| | | return RequestHttps($"{severAddress}/ZigbeeUsers/EditSubAccountNickName", jsonString, true); |
| | | } |
| | | /// <summary> |
| | | /// 修改子账号创建场景权限 |
| | | /// </summary> |
| | | /// <param name="nickName"></param> |
| | | /// <param name="subAccountGuid"></param> |
| | | /// <returns></returns> |
| | | public ResponsePack ChangeCreateSceneState(string homeGuid, string subAccountGuid) |
| | | { |
| | | Dictionary<string, object> d = new Dictionary<string, object>(); |
| | | d.Add("SubAccountGuid", subAccountGuid); |
| | | d.Add("HomeGuid", homeGuid); |
| | | string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(d); |
| | | return RequestHttps($"{severAddress}/ZigbeeUsers/ChangeCreateSceneState", jsonString, true); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取住宅下子账号的共享数据列表 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public ResponsePack GetShareDataByMemberAccount(string memberId) |
| | | { |
| | | Dictionary<string, object> d = new Dictionary<string, object>(); |
| | | d.Add("DistributedMark", memberId); |
| | | d.Add("HouseDistributedMark", DB_ResidenceData.residenceData.residecenInfo.RegionID); |
| | | string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(d); |
| | | return RequestHttps($"{severAddress}/ZigbeeDataShare/GetShareDataBySubAccount", jsonString, true); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取住宅下子账号的共享数据 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public ResponsePack GetShareData(string memberId,string hId) |
| | | { |
| | | Dictionary<string, object> d = new Dictionary<string, object>(); |
| | | d.Add("DistributedMark", memberId); |
| | | d.Add("HouseDistributedMark", hId); |
| | | string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(d); |
| | | return RequestHttps($"{severAddress}/ZigbeeDataShare/GetOneShareData", jsonString, true); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 增加共享数据列表 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public ResponsePack AddShareData(ShareData shareData) |
| | | { |
| | | Dictionary<string, object> d = new Dictionary<string, object>(); |
| | | d.Add("ShareName", shareData.ShareName); |
| | | d.Add("HouseDistributedMark", shareData.HouseDistributedMark); |
| | | d.Add("ShareDataBytes", shareData.ShareDataBytes); |
| | | d.Add("SubAccountDistributedMark", shareData.SubAccountDistributedMark); |
| | | string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(d); |
| | | return RequestHttps($"{severAddress}/ZigbeeDataShare/AddShareData", jsonString, true); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 增加共享数据 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public ResponsePack EditShareData(ShareData shareData) |
| | | { |
| | | Dictionary<string, object> d = new Dictionary<string, object>(); |
| | | d.Add("DistributedMark", shareData.DistributedMark); |
| | | d.Add("ShareName", shareData.ShareName); |
| | | d.Add("HouseDistributedMark", shareData.HouseDistributedMark); |
| | | d.Add("ShareDataBytes", shareData.ShareDataBytes); |
| | | d.Add("SubAccountDistributedMark", shareData.SubAccountDistributedMark); |
| | | string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(d); |
| | | return RequestHttps($"{severAddress}/ZigbeeDataShare/EditShareData", jsonString, true); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 删除共享数据 |
| | | /// </summary> |
| | | /// <param name="shareData"></param> |
| | | /// <returns></returns> |
| | | public ResponsePack DeleteShareData(ShareData shareData) |
| | | { |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add("DistributedMark", shareData.DistributedMark); |
| | | d.Add("HouseDistributedMark", shareData.HouseDistributedMark); |
| | | string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(d); |
| | | return RequestHttps($"{severAddress}/ZigbeeDataShare/DeleteShareData", jsonString, true); |
| | | } |
| | | /// <summary> |
| | | /// 删除子账号当前住宅的所有共享数据 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public ResponsePack DeleteCurrentResidenceSharedData(ShareData shareData) |
| | | { |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add("SubAccountDistributedMark", shareData.SubAccountDistributedMark); |
| | | d.Add("HouseDistributedMark", shareData.HouseDistributedMark); |
| | | string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(d); |
| | | return RequestHttps($"{severAddress}/ZigbeeDataShare/DeleteShareData", jsonString, true); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 绑定子账号到住宅下 |
| | | /// </summary> |
| | | /// <param name="subAccount"></param> |
| | | /// <param name="nickName"></param> |
| | | /// <returns></returns> |
| | | public ResponsePack BindResidenceMemberAccount(string subAccount,string nickName) |
| | | { |
| | | Dictionary<string, object> d = new Dictionary<string, object>(); |
| | | d.Add("SubAccount", subAccount); |
| | | d.Add("HouseDistributedMark", DB_ResidenceData.residenceData.residecenInfo.RegionID); |
| | | d.Add("Nickname", nickName); |
| | | d.Add("IsAllowRemoteCtrl", true); |
| | | |
| | | string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(d); |
| | | return RequestHttps($"{severAddress}/ZigbeeUsers/BindSubAccount", jsonString, true); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取住宅下的成员账号 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public ResponsePack GetResidenceMemberAccountInfo(string account) |
| | | { |
| | | Dictionary<string, object> d = new Dictionary<string, object>(); |
| | | d.Add("Account", account); |
| | | string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(d); |
| | | return RequestHttps($"{severAddress}/ZigbeeUsers/GetSubAccountInfo", jsonString, true); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 获取天气部分 |
| | | /// <summary> |
| | | /// 获取指定经纬度的城市信息 |
| | | /// </summary> |
| | | public void GetCityInfo(string lon, string lat) |
| | | { |
| | | System.Threading.Tasks.Task.Run(() => |
| | | { |
| | | while (true) |
| | | { |
| | | //获取天气 |
| | | var webClient = new WebClient(); |
| | | string url = $"https://developer.hdlcontrol.com/Weather/Weather/FindCity/?lon={lon}&lat={lat}"; |
| | | string responseString = null; |
| | | try |
| | | { |
| | | responseString = Encoding.UTF8.GetString(webClient.DownloadData(url)); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MainPage.Log(ex.Message); |
| | | } |
| | | |
| | | if (responseString != null) |
| | | { |
| | | try |
| | | { |
| | | var revertObj = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePack>(responseString); |
| | | JObject jt = Newtonsoft.Json.JsonConvert.DeserializeObject<JObject>(revertObj.ResponseData.ToString()); |
| | | MainPage.cityInfo.city = jt["City"].ToString(); |
| | | MainPage.cityInfo.cid = jt["Cid"].ToString(); |
| | | MainPage.cityInfo.location = jt.GetValue("Location").ToString(); |
| | | MainPage.cityInfo.province = jt.GetValue("Province").ToString(); |
| | | MainPage.cityInfo.country = jt.GetValue("Country").ToString(); |
| | | MainPage.cityInfo.timeZone = jt.GetValue("TimeZone").ToString(); |
| | | url = $"https://developer.hdlcontrol.com/Weather/Weather/GetAirQualityAndWeather/?cid={MainPage.cityInfo.cid}"; |
| | | responseString = null; |
| | | responseString = Encoding.UTF8.GetString(webClient.DownloadData(url)); |
| | | revertObj = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePack>(responseString); |
| | | jt = Newtonsoft.Json.JsonConvert.DeserializeObject<JObject>(revertObj.ResponseData.ToString()); |
| | | MainPage.cityInfo.temperature = jt.GetValue("Temperature").ToString(); |
| | | MainPage.cityInfo.humidity = jt.GetValue("Humidity").ToString(); |
| | | MainPage.cityInfo.pm25 = jt.GetValue("Air_Quality").ToString(); |
| | | MainPage.cityInfo.windLevel = jt.GetValue("WindLevel").ToString(); |
| | | MainPage.cityInfo.weather = jt.GetValue("Weather").ToString(); |
| | | break; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MainPage.Log($"get weather error : {ex.Message}"); |
| | | } |
| | | } |
| | | System.Threading.Thread.Sleep(1000); |
| | | } |
| | | Shared.Application.RunOnMainThread(() => { |
| | | try |
| | | { |
| | | HDL_ON.UI.HomePage.LoadEvent_RefreshAir(); |
| | | } |
| | | catch { } |
| | | }); |
| | | }); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 备份部分 |
| | | /// <summary> |
| | | /// 获取住宅备份列表 |
| | | /// </summary> |
| | | public Dictionary<int,string> GetRegionLastBackupId() |
| | | { |
| | | //Dialog dialog = new Dialog(); |
| | | //dialog.Show(); |
| | | |
| | | Dictionary<int, string> backupList = new Dictionary<int, string>(); |
| | | Dictionary<string, object> d = new Dictionary<string, object>(); |
| | | d.Add("LevelID", DB_ResidenceData.residenceData.residecenInfo.RegionID);// 199200); |
| | | var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(d); |
| | | var revertObj = RequestHttps("https://developer.hdlcontrol.com/api/GetUserFolder", requestJson, true); |
| | | if(revertObj == null || revertObj.ResponseData == null) |
| | | { |
| | | return new Dictionary<int, string>(); |
| | | } |
| | | var jt = Newtonsoft.Json.JsonConvert.DeserializeObject<List<JObject>>(revertObj.ResponseData.ToString()); |
| | | foreach (var j in jt) |
| | | { |
| | | var folderId = (int)j.GetValue("FolderID"); |
| | | var folderName = j.GetValue("FolderName").ToString(); |
| | | backupList.Add(folderId, folderName); |
| | | } |
| | | return backupList; |
| | | } |
| | | /* 2020-09-01 弃用 恢复旧数据功能在bus软件上实现 |
| | | /// <summary> |
| | | /// 获取备份文件列表 |
| | | /// </summary> |
| | | public void GetBackupFileList(int levelId) |
| | | { |
| | | Dialog dialog = new Dialog(); |
| | | dialog.Show(); |
| | | Loading loading = new Loading(); |
| | | dialog.AddChidren(loading); |
| | | loading.Start(""); |
| | | new System.Threading.Thread(() => |
| | | { |
| | | Dictionary<string, object> d = new Dictionary<string, object>(); |
| | | d.Add("LevelID", levelId); |
| | | var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(d); |
| | | var revertObj = RequestHttps("https://developer.hdlcontrol.com/api/UserBackupList", requestJson, true); |
| | | var jt = Newtonsoft.Json.JsonConvert.DeserializeObject<List<JObject>>(revertObj.ResponseData.ToString()); |
| | | #region 恢复房间数据 |
| | | |
| | | |
| | | GetBackupRoom(jt,loading); |
| | | #endregion |
| | | |
| | | Application.RunOnMainThread(() => { |
| | | loading.Hide(); |
| | | dialog.Close(); |
| | | }); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 下载图片 |
| | | /// </summary> |
| | | /// <param name="fileName"></param> |
| | | void DownloadImage(string fileName,int fId) |
| | | { |
| | | if (downImageList.Contains(fileName)) |
| | | { |
| | | return; |
| | | } |
| | | else |
| | | { |
| | | downDeviceList.Add(fileName); |
| | | } |
| | | |
| | | System.Text.RegularExpressions.Match match = System.Text.RegularExpressions.Regex.Match(fileName, @"^[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}$", System.Text.RegularExpressions.RegexOptions.IgnoreCase); |
| | | if (match.Success) |
| | | { |
| | | FileStream fs = null; |
| | | try |
| | | { |
| | | Dictionary<string, object> d = new Dictionary<string, object>(); |
| | | d.Add("Id", fId); |
| | | var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(d); |
| | | var revertObj = RequestHttps("https://developer.hdlcontrol.com/api/BackupDetail", requestJson, true); |
| | | var jsonBytes = Newtonsoft.Json.JsonConvert.SerializeObject(revertObj.ResponseData); |
| | | |
| | | var bytes = Newtonsoft.Json.JsonConvert.DeserializeObject<byte[]>(jsonBytes); |
| | | var byteStr = Encoding.UTF8.GetString(bytes); |
| | | var ss = Newtonsoft.Json.JsonConvert.DeserializeObject<JObject>(byteStr); |
| | | var filePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal) + "/", fileName+".png"); |
| | | fs = new FileStream(filePath, FileMode.Create, FileAccess.Write); |
| | | fs.Write(bytes, 0, bytes.Length); |
| | | fs.Flush(); |
| | | |
| | | MainPage.Log($"download image {fileName}"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MainPage.Log("FileUtiles Code 113:" + ex.ToString()); |
| | | } |
| | | finally |
| | | { |
| | | try |
| | | { |
| | | if (fs != null) |
| | | { |
| | | fs.Close(); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MainPage.Log("FileUtils Code 121 :" + ex.ToString()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取备份房间数据 |
| | | /// </summary> |
| | | void GetBackupRoom(List<JObject> jt, Loading loading) |
| | | { |
| | | var roomList = new Dictionary<JObject, Room>(); |
| | | |
| | | var roomsObject = jt.FindAll((room) => room.GetValue("FileName").ToString().StartsWith("Room_") && room.GetValue("FileName").ToString().Split('_').Length == 2); |
| | | foreach(var pp in jt) |
| | | { |
| | | if(pp.GetValue("FileName").ToString().StartsWith("Equipment")) |
| | | { |
| | | MainPage.Log(pp.GetValue("FileName").ToString()); |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | } |
| | | roomsObject = jt.FindAll((room) => room.GetValue("FileName").ToString().StartsWith("Equipment_OnePortBus")); |
| | | foreach (var roomJObj in roomsObject) |
| | | { |
| | | Dictionary<string, object> d = new Dictionary<string, object>(); |
| | | d.Add("Id", (int)roomJObj.GetValue("Id")); |
| | | var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(d); |
| | | var revertObj = RequestHttps("https://developer.hdlcontrol.com/api/BackupDetail", requestJson, true); |
| | | var jsonBytes = Newtonsoft.Json.JsonConvert.SerializeObject(revertObj.ResponseData); |
| | | var byresss = Newtonsoft.Json.JsonConvert.DeserializeObject<byte[]>(jsonBytes); |
| | | var byteStr = Encoding.UTF8.GetString(byresss); |
| | | var ss = Newtonsoft.Json.JsonConvert.DeserializeObject<JObject>(byteStr); |
| | | //var RootPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal) + "/"; |
| | | //var filePath = Path.Combine(RootPath, ss.GetValue("BackGroundImage").ToString()) + ".png"; |
| | | //var room1 = new Room() |
| | | //{ |
| | | // sid = Guid.NewGuid().ToString(), |
| | | // name = ss.GetValue("Name").ToString(), |
| | | // floorIndex = 1, |
| | | // backgroundImage = "Classification/Room/Roombg.png", |
| | | // //backgroundImage = ss.GetValue("BackGroundImage").ToString() == "Room/r1.png" ? "Classification/Room/Roombg.png" : filePath, |
| | | //}; |
| | | //DB_ResidenceData.rooms.Add(room1); |
| | | //roomList.Add(ss, room1); |
| | | |
| | | } |
| | | var index = 1; |
| | | foreach (var j in jt) |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | int pro = (int)(index * 1.0 / jt.Count * 100); |
| | | loading.Text = pro.ToString() + "%"; |
| | | }); |
| | | var fileName = j.GetValue("FileName").ToString(); |
| | | var fileNameArrary = fileName.Split('_'); |
| | | if (fileNameArrary.Length == 5 && fileName.Split('_')[0] == "Equipment") |
| | | { |
| | | GetBackupFile(fileName, (int)j.GetValue("Id"), roomList); |
| | | } |
| | | else |
| | | { |
| | | DownloadImage(fileName, (int)j.GetValue("Id")); |
| | | } |
| | | index++; |
| | | } |
| | | DB_ResidenceData.residenceData.SaveResidenceData(); |
| | | } |
| | | |
| | | List<string> downDeviceList = new List<string>(); |
| | | List<string> downImageList = new List<string>(); |
| | | |
| | | /// <summary> |
| | | /// 获取备份设备文件 |
| | | /// </summary> |
| | | void GetBackupFile(string fileName, int fId, Dictionary<JObject, Room> dir) |
| | | { |
| | | var type = fileName.Split('_')[1]; |
| | | if (downDeviceList.Contains(fileName)) |
| | | { |
| | | return; |
| | | } |
| | | else |
| | | { |
| | | downDeviceList.Add(fileName); |
| | | } |
| | | if (type == "LightSwitch" || |
| | | type == "LightMixSwitch" || |
| | | type == "LightDimming" || |
| | | type == "LightDALI" || |
| | | type == "LightMixDimming" || |
| | | type == "LightLogic" || |
| | | type == "LightRGB" || |
| | | type == "AC" || |
| | | type == "HVAC" || |
| | | type == "ACPanel" || |
| | | type == "ACInfrared" || |
| | | type == "CurtainModel" || |
| | | type == "CurtainRoller" || |
| | | type == "CurtainTrietex") |
| | | { |
| | | |
| | | MainPage.Log($"download file {fileName}"); |
| | | Dictionary<string, object> d = new Dictionary<string, object>(); |
| | | d.Add("Id", fId); |
| | | var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(d); |
| | | var revertObj = RequestHttps("https://developer.hdlcontrol.com/api/BackupDetail", requestJson, true); |
| | | //var jt = Newtonsoft.Json.JsonConvert.DeserializeObject<byte[]>(revertObj.ResponseData.ToString()); |
| | | var jsonBytes = Newtonsoft.Json.JsonConvert.SerializeObject(revertObj.ResponseData); |
| | | var byresss = Newtonsoft.Json.JsonConvert.DeserializeObject<byte[]>(jsonBytes); |
| | | var byteStr = System.Text.Encoding.UTF8.GetString(byresss); |
| | | var ss = Newtonsoft.Json.JsonConvert.DeserializeObject<JObject>(byteStr); |
| | | |
| | | /// <summary> |
| | | /// 功能ID |
| | | /// </summary> |
| | | /// "03010112345678901234560101230123AABB"; |
| | | var buffer = Guid.NewGuid().ToByteArray(); |
| | | string guid = ""; |
| | | if (buffer != null) |
| | | { |
| | | for (int i = 0; i < buffer.Length; i++) |
| | | { |
| | | if (i > 7) |
| | | break; |
| | | guid += buffer[i].ToString("X2"); |
| | | |
| | | } |
| | | } |
| | | |
| | | //var guid = BitConverter.ToUInt32(buffer, 16).ToString(); |
| | | List<string> roomIds = new List<string>(); |
| | | foreach (var d1 in dir) |
| | | { |
| | | var key = d1.Key; |
| | | var des = key.GetValue("DeviceFilePathList"); |
| | | if (Newtonsoft.Json.JsonConvert.DeserializeObject<List<string>>(des.ToString()).Contains(fileName)) |
| | | { |
| | | roomIds.Add(d1.Value.sid); |
| | | } |
| | | } |
| | | switch (type) |
| | | { |
| | | case "LightSwitch": |
| | | case "LightMixSwitch": |
| | | var light1 = DB_ResidenceData.functionList.lights.Find((obj) => obj.bus_Data.SubnetID == (byte)ss.GetValue("SubnetID") && |
| | | obj.bus_Data.DeviceID == (byte)ss.GetValue("DeviceID") && obj.bus_Data.LoopID == (byte)ss.GetValue("LoopID")); |
| | | if (light1 != null) |
| | | { |
| | | //light1.roomIdList.Add(roomSid); |
| | | break; |
| | | } |
| | | DB_ResidenceData.functionList.lights.Add(new Light() |
| | | { |
| | | sid = "030101" + guid + "0102010001AABB", |
| | | name = ss.GetValue("Name").ToString(), |
| | | function = new List<Trait>() { |
| | | new Trait { name="on_off", max=100,min = 0, value_key= new List<string> { "on","off"} }, |
| | | }, |
| | | roomIdList = roomIds, |
| | | bus_Data = new BusData |
| | | { |
| | | SubnetID = (byte)ss.GetValue("SubnetID"), |
| | | DeviceID = (byte)ss.GetValue("DeviceID"), |
| | | LoopID = (byte)ss.GetValue("LoopID"), |
| | | }, |
| | | }); |
| | | break; |
| | | case "LightDimming": |
| | | case "LightDALI": |
| | | case "LightMixDimming": |
| | | var light2 = DB_ResidenceData.functionList.lights.Find((obj) => obj.bus_Data.SubnetID == (byte)ss.GetValue("SubnetID") && |
| | | obj.bus_Data.DeviceID == (byte)ss.GetValue("DeviceID") && obj.bus_Data.LoopID == (byte)ss.GetValue("LoopID")); |
| | | if (light2 != null) |
| | | { |
| | | //light2.roomIdList.Add(roomSid); |
| | | break; |
| | | } |
| | | DB_ResidenceData.functionList.lights.Add(new Light() |
| | | { |
| | | sid = "030101" + guid + "0202020001AABB", |
| | | name = ss.GetValue("Name").ToString(), |
| | | function = new List<Trait>() { |
| | | new Trait { name="brightness", max=100,min = 0, value_key= new List<string> { "up","down"} }, |
| | | }, |
| | | roomIdList = roomIds, |
| | | //roomIdList = new List<string>() { "0001" }, |
| | | lastState = "20%", |
| | | bus_Data = new BusData |
| | | { |
| | | SubnetID = (byte)ss.GetValue("SubnetID"), |
| | | DeviceID = (byte)ss.GetValue("DeviceID"), |
| | | LoopID = (byte)ss.GetValue("LoopID"), |
| | | }, |
| | | }); |
| | | break; |
| | | case "LightLogic": |
| | | case "LightRGB": |
| | | var light3 = DB_ResidenceData.functionList.lights.Find((obj) => obj.bus_Data.SubnetID == (byte)ss.GetValue("SubnetID") && |
| | | obj.bus_Data.DeviceID == (byte)ss.GetValue("DeviceID") && obj.bus_Data.LoopID == (byte)ss.GetValue("LoopID")); |
| | | if (light3 != null) |
| | | { |
| | | //light3.roomIdList.Add(roomSid); |
| | | break; |
| | | } |
| | | DB_ResidenceData.functionList.lights.Add(new Light() |
| | | { |
| | | sid = "030101" + guid + "0202040001AABB", |
| | | name = ss.GetValue("Name").ToString(), |
| | | function = new List<Trait>() { |
| | | new Trait { name="brightness", max=100,min = 0, value_key= new List<string> { "on","off"} }, |
| | | new Trait { name="color", max=100,min = 0, value_key= new List<string> { "255", "255", "255" } }, |
| | | }, |
| | | roomIdList = roomIds, |
| | | //roomIdList = new List<string>() { roomSid }, |
| | | bus_Data = new BusData |
| | | { |
| | | SubnetID = (byte)ss.GetValue("SubnetID"), |
| | | DeviceID = (byte)ss.GetValue("DeviceID"), |
| | | LoopID = (byte)ss.GetValue("LoopID"), |
| | | }, |
| | | }); |
| | | break; |
| | | case "AC": |
| | | case "HVAC": |
| | | case "ACPanel": |
| | | case "ACInfrared": |
| | | var ac = DB_ResidenceData.functionList.aCs.Find((obj) => obj.bus_Data.SubnetID == (byte)ss.GetValue("SubnetID") && |
| | | obj.bus_Data.DeviceID == (byte)ss.GetValue("DeviceID") && obj.bus_Data.LoopID == (byte)ss.GetValue("LoopID")); |
| | | if (ac != null) |
| | | { |
| | | //ac.roomIdList.Add(roomSid); |
| | | break; |
| | | } |
| | | DB_ResidenceData.functionList.aCs.Add(new AC() |
| | | { |
| | | sid = "030101" + guid + "0204010001AABB", |
| | | name = ss.GetValue("Name").ToString(), |
| | | function = new List<Trait>() { |
| | | new Trait { name="on_off", max=1,min = 0, value_key= new List<string> { "on","off"} }, |
| | | new Trait { name="mode", max = 2,min =0,value_key = new List<string>{ "auto", "heat", "cool","dry" } }, |
| | | new Trait { name = "fan",max = 3,min =0,value_key = new List<string>{ "low", "mid", "high" ,"auto"} }, |
| | | new Trait { name = "temperature", max = 32,min=16,value_key = new List<string>{"up","down" } }, |
| | | }, |
| | | roomIdList = roomIds, |
| | | //roomIdList = new List<string>() { roomSid}, |
| | | lastState = "制冷 中风 18°C", |
| | | bus_Data = new BusData |
| | | { |
| | | SubnetID = (byte)ss.GetValue("SubnetID"), |
| | | DeviceID = (byte)ss.GetValue("DeviceID"), |
| | | LoopID = (byte)ss.GetValue("LoopID"), |
| | | }, |
| | | }); |
| | | break; |
| | | //Entity. |
| | | case "CurtainModel": |
| | | var curtain1 = DB_ResidenceData.functionList.curtains.Find((obj) => obj.bus_Data.SubnetID == (byte)ss.GetValue("SubnetID") && |
| | | obj.bus_Data.DeviceID == (byte)ss.GetValue("DeviceID") && obj.bus_Data.LoopID == (byte)ss.GetValue("LoopID")); |
| | | if (curtain1 != null) |
| | | { |
| | | //curtain1.roomIdList.Add(roomSid); |
| | | break; |
| | | } |
| | | DB_ResidenceData.functionList.curtains.Add(new Curtain() |
| | | { |
| | | sid = "030101" + guid + "0203010001AABB", |
| | | name = ss.GetValue("Name").ToString(), |
| | | roomIdList = roomIds, |
| | | //roomIdList = new List<string>() { roomSid }, |
| | | function = new List<Trait>() { |
| | | new Trait { name="on_off", max=2,min = 0, value_key= new List<string> { "on","off","stop"} }, |
| | | },// "curtain", |
| | | lastState = "开", |
| | | bus_Data = new BusData |
| | | { |
| | | SubnetID = (byte)ss.GetValue("SubnetID"), |
| | | DeviceID = (byte)ss.GetValue("DeviceID"), |
| | | LoopID = (byte)ss.GetValue("LoopID"), |
| | | }, |
| | | }); |
| | | break; |
| | | case "CurtainRoller": |
| | | var curtain2 = DB_ResidenceData.functionList.curtains.Find((obj) => obj.bus_Data.SubnetID == (byte)ss.GetValue("SubnetID") && |
| | | obj.bus_Data.DeviceID == (byte)ss.GetValue("DeviceID") && obj.bus_Data.LoopID == (byte)ss.GetValue("LoopID")); |
| | | if (curtain2 != null) |
| | | { |
| | | //curtain2.roomIdList.Add(roomSid); |
| | | break; |
| | | } |
| | | DB_ResidenceData.functionList.curtains.Add(new Curtain() |
| | | { |
| | | sid = "030101" + guid + "0203040001AABB", |
| | | name = ss.GetValue("Name").ToString(), |
| | | roomIdList = roomIds, |
| | | //roomIdList = new List<string>() { roomSid }, |
| | | function = new List<Trait>() { |
| | | new Trait { name="on_off", max=100,min = 0, value_key= new List<string> { "on","off","stop"} }, |
| | | },// "rollingshutter", |
| | | lastState = "20%", |
| | | bus_Data = new BusData |
| | | { |
| | | SubnetID = (byte)ss.GetValue("SubnetID"), |
| | | DeviceID = (byte)ss.GetValue("DeviceID"), |
| | | LoopID = (byte)ss.GetValue("LoopID"), |
| | | }, |
| | | }); |
| | | break; |
| | | case "CurtainTrietex": |
| | | var curtain3 = DB_ResidenceData.functionList.curtains.Find((obj) => obj.bus_Data.SubnetID == (byte)ss.GetValue("SubnetID") && |
| | | obj.bus_Data.DeviceID == (byte)ss.GetValue("DeviceID") && obj.bus_Data.LoopID == (byte)ss.GetValue("LoopID")); |
| | | if (curtain3 != null) |
| | | { |
| | | //curtain3.roomIdList.Add(roomSid); |
| | | break; |
| | | } |
| | | DB_ResidenceData.functionList.curtains.Add(new Curtain() |
| | | { |
| | | sid = "030101" + guid + "0203030001AABB", |
| | | name = ss.GetValue("Name").ToString(), |
| | | roomIdList = roomIds, |
| | | //roomIdList = new List<string>() { roomSid }, |
| | | function = new List<Trait>() { |
| | | new Trait { name="on_off", max=100,min = 0, value_key= new List<string> { "on","off","stop"} }, |
| | | }, |
| | | lastState = "20%", |
| | | bus_Data = new BusData |
| | | { |
| | | SubnetID = (byte)ss.GetValue("SubnetID"), |
| | | DeviceID = (byte)ss.GetValue("DeviceID"), |
| | | LoopID = (byte)ss.GetValue("LoopID"), |
| | | }, |
| | | }); |
| | | break; |
| | | //Entity.DB_ResidenceData.functionList.floorHeatings.Add(new FloorHeating() |
| | | //{ |
| | | // sid = "12341212345678901234560704010004ABCD", |
| | | // name = "地热", |
| | | // roomIdList = new List<string>() { "0001" }, |
| | | // trait = new List<Trait>() { |
| | | // new Trait { attri="on_off", max=1,min = 0, value= new List<string> { "on","off"} }, |
| | | // new Trait { attri="mode", max = 2,min =0,value = new List<string>{ "auto", "heat", "cool","dry" } }, |
| | | // new Trait { attri = "temperature", max = 32,min=16,value = new List<string>{"up","down" } }, |
| | | // },// |
| | | // lastState = "" |
| | | //}); |
| | | //Entity. |
| | | //break; |
| | | } |
| | | |
| | | } |
| | | } |
| | | */ |
| | | |
| | | #endregion |
| | | } |