wei
2021-08-27 eda3fb873e59544ff36301b51e05aef64f87b0f9
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirSend.cs
@@ -5,6 +5,7 @@
using Newtonsoft.Json.Linq;
using System.Collections.Generic;
using Shared;
using HDL_ON.Entity;
namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice
{
@@ -12,15 +13,36 @@
    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;
                return Entity.DB_ResidenceData.Instance.CurrentRegion.id;
            }
        }
        /// <summary>
        /// 乐橙subAccessToken
        /// </summary>
        public static string LcSubAccessToken = "";
        /// <summary>
        /// 是否为其他主用户分享过来的住宅
        /// </summary>
@@ -28,12 +50,53 @@
        {
            get
            {
                return Entity.DB_ResidenceData.Instance.CurrentRegion.IsOthreShare;
                return Entity.DB_ResidenceData.Instance.CurrentRegion.isOtherShare;
            }
        }
        /// <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)
        {
@@ -41,11 +104,11 @@
            jObject.Add("homeId", HomeId);
            jObject.Add("deviceId", control.deviceId);
            jObject.Add("name", control.name);
            jObject.Add("spk", "ir.module");
            jObject.Add("spk", control.spk);
            jObject.Add("type", control.type);
            if (control.type == "library")
            if (control.type=="library")
            {
                //jObject.Add("group_id", "123");
                jObject.Add("groupId", control.groupId);
                var libraryjay = new JArray { };
                for (int i = 0; i < control.library.Count; i++)
                {
@@ -53,46 +116,84 @@
                }
                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(ButtonObj buttonObj, Action<ResponsePackNew> action)
        public static void CodeStudy(Control control, AttributesStatus buttonObj, Action<Cloud> action)
        {
            //var whichDayJson = jay["whichDay"].ToString();
            //var whichDayAry = Newtonsoft.Json.Linq.JArray.Parse(whichDayJson);
            //for (int b = 0; b < whichDayAry.Count; b++)
            //{
            //    var days = whichDayAry[b].ToString();
            //    timer.whichDay.Add(int.Parse(days));
            //}
            var job = new JObject { };
            job.Add("key", buttonObj.Key);
            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", "0" }, { "attributes", jArray } };
            ResponsePackNew responsePackNew = null;
            var jObject = new JObject { { "homeId", HomeId }, { "deviceId", control.deviceId }, { "attributes", jArray } };
            Cloud cloud = null;
            new System.Threading.Thread(() =>
            {
                try
                {
                    //发送红外码学习命令
                    responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Ir_CodeStudy);
                    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(responsePackNew);
                        action(cloud);
                    });
                }
@@ -103,21 +204,40 @@
        /// 自学按键删除
        /// </summary>
        /// <returns></returns>
        public static ResponsePackNew CodeRemove(ButtonObj buttonObj)
        public static ResponsePackNew CodeRemove(AttributesStatus buttonObj,string deviceId)
        {
            var job = new JObject { };
            job.Add("key", buttonObj.Key);
            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", "0" }, { "attributes", jArray } };
            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>
@@ -150,7 +270,7 @@
                        url = "/smart-footstone/app/ir/code/list";
                        jObject.Add("brandId", id);
                    }
                    responsePackNew = RequestServerhomeId(jObject, url);
                    responsePackNew = RequestServerhomeId(jObject, url,5);
                }
                catch { }
                finally
@@ -165,9 +285,6 @@
            { IsBackground = true }.Start();
        }
        /// <summary>
        ///请求服务器(与住宅有关:例如;homeId) 
        /// </summary>