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
|
{
|
/// <summary>
|
/// 网关ID(获取嘉乐网关ID)
|
/// </summary>
|
public static string GatewayId
|
{
|
get
|
{
|
if (Entity.DB_ResidenceData.Instance.HomeGateway == null)
|
{
|
return DriverLayer.Control.Ins.GatewayId;
|
}
|
return Entity.DB_ResidenceData.Instance.HomeGateway.gatewayId;
|
}
|
}
|
/// <summary>
|
/// 住宅ID
|
/// </summary>
|
public static string HomeId
|
{
|
get
|
{
|
return Entity.DB_ResidenceData.Instance.CurrentRegion.RegionID;
|
}
|
}
|
/// <summary>
|
/// 是否为其他主用户分享过来的住宅
|
/// </summary>
|
public static bool IsOthreShare
|
{
|
get
|
{
|
return Entity.DB_ResidenceData.Instance.CurrentRegion.IsOthreShare;
|
}
|
}
|
/// <summary>
|
/// 获取设备列表
|
/// </summary>
|
/// <returns></returns>
|
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;
|
}
|
/// <summary>
|
/// 获取设备详情通过(spk,sid)
|
/// </summary>
|
/// <returns></returns>
|
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;
|
}
|
/// <summary>
|
/// 获取遥控器列表
|
/// </summary>
|
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;
|
}
|
/// <summary>
|
/// 遥控器添加
|
/// </summary>
|
/// <returns></returns>
|
/// <param name="control"></param>
|
/// <returns></returns>
|
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;
|
}
|
/// <summary>
|
///红外码库试码
|
/// </summary>
|
/// <returns></returns>
|
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;
|
}
|
/// <summary>
|
/// <summary>
|
/// 红外码学习
|
/// </summary>
|
/// <returns></returns>
|
public static void CodeStudy(Control control,AttributesStatus buttonObj,Action<ResponsePackNew> 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 } };
|
ResponsePackNew responsePackNew = null;
|
new System.Threading.Thread(() =>
|
{
|
|
try
|
{
|
//发送红外码学习命令
|
responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Ir_CodeStudy);
|
}
|
catch { }
|
finally
|
{
|
Application.RunOnMainThread(() =>
|
{
|
action(responsePackNew);
|
});
|
}
|
|
})
|
{ IsBackground = true }.Start();
|
}
|
/// <summary>
|
/// 自学按键删除
|
/// </summary>
|
/// <returns></returns>
|
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;
|
}
|
/// <summary>
|
/// 红外宝/遥控器删除
|
/// </summary>
|
/// <returns></returns>
|
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;
|
}
|
/// <summary>
|
/// 修改红外宝/设备名称
|
/// </summary>
|
/// <returns></returns>
|
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;
|
}
|
/// <summary>
|
/// 查询红外设备类型列表/品牌列表/品牌红外码库列表
|
/// </summary>
|
/// <param name="frameLayout">加载log的父控件</param>
|
/// <param name="action">回调函数</param>
|
public static void GetDeviceTypesList(FrameLayout frameLayout, Action<ResponsePackNew> 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();
|
|
}
|
|
/// <summary>
|
///请求服务器(与住宅有关:例如;homeId)
|
/// </summary>
|
/// <returns></returns>
|
public static ResponsePackNew RequestServerhomeId(object o, string api_Url, int mTimeout = 20)
|
{
|
var requestJson = HttpUtil.GetSignRequestJson(o);
|
return HttpUtil.RequestHttpsPostFroHome(api_Url, requestJson, mTimeout);
|
|
}
|
/// <summary>
|
/// 请求服务器
|
/// </summary>
|
/// <returns></returns>
|
public static ResponsePackNew RequestServer(object o, string api_Url)
|
{
|
var requestJson = HttpUtil.GetSignRequestJson(o);
|
return HttpUtil.RequestHttpsPost(api_Url, requestJson);
|
|
}
|
/// <summary>
|
/// 刷新Token
|
/// </summary>
|
public static void RefreshToken()
|
{
|
IMessageCommon.Current.StartRefreshToken();
|
}
|
|
}
|
|
}
|