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();
}
}
}