using System; using System.IO; using System.Net; using HDL_ON.DAL.Server; using Newtonsoft.Json.Linq; using System.Collections.Generic; using Shared; using HDL_ON.Entity; namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice { public class PirSend { /// /// 网关ID(获取嘉乐网关ID) /// public static string GatewayId { get { if (Entity.DB_ResidenceData.Instance.HomeGateway == null) { return DriverLayer.Control.Ins.GatewayId; } return Entity.DB_ResidenceData.Instance.HomeGateway.gatewayId; } } /// /// 住宅ID /// public static string HomeId { get { return Entity.DB_ResidenceData.Instance.CurrentRegion.id; } } /// /// 乐橙subAccessToken /// public static string LcSubAccessToken = ""; /// /// 是否为其他主用户分享过来的住宅 /// public static bool IsOthreShare { get { return Entity.DB_ResidenceData.Instance.CurrentRegion.isOtherShare; } } /// /// 获取设备列表 /// /// public static ResponsePackNew GetDeviceList(string spk) { var jObject = new JObject { }; jObject.Add("homeId", HomeId); jObject.Add("spk", spk); //d.Add("gatewayId", DB_ResidenceData.residenceData.HomeGateway.gatewayId); //d.Add("roomId", DB_ResidenceData.residenceData.residecenInfo.RegionID);//可控参数,当需要分页获取,怎么知道分页总数 //d.Add("searchType", DB_ResidenceData.residenceData.residecenInfo.RegionID); //d.Add("pageSize", DB_ResidenceData.residenceData.residecenInfo.RegionID); //d.Add("pageNo", DB_ResidenceData.residenceData.residecenInfo.RegionID); var responsePackNew = RequestServerhomeId(jObject, NewAPI.Api_Post_GetDevcieList); return responsePackNew; } /// /// 获取设备详情通过(spk,sid) /// /// public static ResponsePackNew GetinfoBySid(Control control) { var jObject = new JObject { }; jObject.Add("homeId", HomeId); jObject.Add("spk", control.spk); jObject.Add("sid", control.sid); var responsePackNew = RequestServerhomeId(jObject, NewAPI.Api_Post_GetinfoBySid); return responsePackNew; } /// /// 获取遥控器列表 /// public static ResponsePackNew ControlList(string deviceId) { var jObject = new JObject { { "homeId", HomeId }, { "deviceId", deviceId} }; var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Ir_List); return responsePackNew; } /// /// 遥控器添加 /// /// /// /// public static ResponsePackNew Add(Control control) { var jObject = new JObject { }; jObject.Add("homeId", HomeId); jObject.Add("deviceId", control.deviceId); jObject.Add("name", control.name); jObject.Add("spk", control.spk); jObject.Add("type", control.type); if (control.type=="library") { jObject.Add("groupId", control.groupId); var libraryjay = new JArray { }; for (int i = 0; i < control.library.Count; i++) { libraryjay.Add(control.library[i]); } jObject.Add("library", libraryjay); } var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Ir_Add); return responsePackNew; } /// ///红外码库试码 /// /// public static ResponsePackNew CodeTest(Control control) { var jObject = new JObject { }; jObject.Add("homeId", HomeId); jObject.Add("deviceId", control.deviceId); jObject.Add("spk", control.spk); if (control.spk== SPK.AcIr) { jObject.Add("groupId", control.groupId); } var libraryJay = new JArray { }; for (int i = 0; i < control.library.Count; i++) { libraryJay.Add(control.library[i]); } var statusJay = new JArray { }; for (int i = 0; i < control.status.Count; i++) { var statusJob = new JObject { }; var job = control.status[i]; statusJob.Add("key", job.key); statusJob.Add("value", job.value); statusJay.Add(statusJob); } jObject.Add("library", libraryJay); jObject.Add("status", statusJay); var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Ir_CodeTest); return responsePackNew; } /// /// /// 红外码学习 /// /// public static void CodeStudy(Control control, AttributesStatus buttonObj, Action action) { var job = new JObject { }; job.Add("key", buttonObj.key); job.Add("data_type", "string"); var valuejArray = new JArray { }; valuejArray.Add(buttonObj.value); job.Add("value", valuejArray); var jArray = new JArray { }; jArray.Add(job); var jObject = new JObject { { "homeId", HomeId }, { "deviceId", control.deviceId }, { "attributes", jArray } }; Cloud cloud = null; new System.Threading.Thread(() => { try { //发送红外码学习命令 var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Ir_CodeStudy); if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "") { PirMethod method = new PirMethod(); PirMethod.buttondata = ""; cloud = method.MqttDate("按键", control.sid, 25); } else { PirMethod method = new PirMethod(); method.ErrorShow(responsePackNew, ""); } } catch { } finally { Application.RunOnMainThread(() => { action(cloud); }); } }) { IsBackground = true }.Start(); } /// /// 自学按键删除 /// /// public static ResponsePackNew CodeRemove(AttributesStatus buttonObj,string deviceId) { var job = new JObject { }; job.Add("key", buttonObj.key); job.Add("data_type", "string"); var valuejArray = new JArray { }; valuejArray.Add(buttonObj.value); job.Add("value", valuejArray); var jArray = new JArray { }; jArray.Add(job); var jObject = new JObject { { "homeId", HomeId }, { "deviceId", deviceId }, { "attributes", jArray } }; var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Ir_CodeRemove); return responsePackNew; } /// /// 红外宝/遥控器删除 /// /// public static ResponsePackNew DeleteDevice(string deviceId) { var jObject = new JObject { { "homeId", HomeId }, { "deviceId", deviceId } }; var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Ir_DeviceDel); return responsePackNew; } /// /// 修改红外宝/设备名称 /// /// public static ResponsePackNew DeviceRename(string deviceId,string name) { var jObject = new JObject { { "homeId", HomeId }, { "deviceId", deviceId }, { "name", name} }; var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Ir_DeviceRename); return responsePackNew; } /// /// 查询红外设备类型列表/品牌列表/品牌红外码库列表 /// /// 加载log的父控件 /// 回调函数 public static void GetDeviceTypesList(FrameLayout frameLayout, Action action, string id, string if_str) { DAL.Server.ResponsePackNew responsePackNew = null; Loading loading = new Loading(); frameLayout.AddChidren(loading); loading.Start(); new System.Threading.Thread(() => { try { string url = ""; var jObject = new JObject { }; if (if_str == "设备类型列表") { url = "/smart-footstone/app/ir/device-type/list"; } else if (if_str == "品牌列表") { url = "/smart-footstone/app/ir/brand/list"; jObject.Add("deviceTypeId", id); } else if (if_str == "品牌红外码库列表") { url = "/smart-footstone/app/ir/code/list"; jObject.Add("brandId", id); } responsePackNew = RequestServerhomeId(jObject, url,5); } catch { } finally { Application.RunOnMainThread(() => { loading.Hide(); action(responsePackNew); }); } }) { IsBackground = true }.Start(); } /// ///请求服务器(与住宅有关:例如;homeId) /// /// public static ResponsePackNew RequestServerhomeId(object o, string api_Url, int mTimeout = 20) { var requestJson = HttpUtil.GetSignRequestJson(o); return HttpUtil.RequestHttpsPostFroHome(api_Url, requestJson, mTimeout); } /// /// 请求服务器 /// /// public static ResponsePackNew RequestServer(object o, string api_Url) { var requestJson = HttpUtil.GetSignRequestJson(o); return HttpUtil.RequestHttpsPost(api_Url, requestJson); } /// /// 刷新Token /// public static void RefreshToken() { IMessageCommon.Current.StartRefreshToken(); } } }