HDL Home App 第二版本 旧平台金堂用 正在使用
黄学彪
2019-09-30 404cdc88627f942df7944af04ee05b9d527752d6
ZigbeeApp/Shared/Phone/ZigBee/Device/Panel.cs
@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Newtonsoft.Json.Linq;
using Shared.Common;
namespace ZigBee.Device
{
@@ -27,6 +28,40 @@
        public int panelBacklightLevel = -1;
        /// <summary>
        /// 当前选择模式
        /// </summary>
        public string currentKeySelectModeText = "";
        /// <summary>
        /// 当前开关模式
        /// </summary>
        public string CurrentSwitchMode = "";
        /// <summary>
        /// 当前属性模式
        /// </summary>
        public int currentClusterID;
        /// <summary>
        /// 当前调光模式
        /// </summary>
        public string CurrentDimmerMode = "";
        /// <summary>
        /// 当前遮阳模式
        /// </summary>
        public string CurrentCurtainMode = "";
        /// <summary>
        /// 当前房间ID
        /// </summary>
        public string RoomId = "";
        /// <summary>
        /// 当前房间ID
        /// </summary>
        public string curSelectSceneID = "";
        // <summary>
        /// 按键中被绑定的目标列表
        /// </summary>
        public System.Collections.Generic.List<BindListResponseObj> bindList = new System.Collections.Generic.List<BindListResponseObj> { };
@@ -34,6 +69,46 @@
        /// 按键支持的私有模式列表
        /// </summary>
        public System.Collections.Generic.List<string> priFunList = new System.Collections.Generic.List<string> { };
        /// <summary>
        /// 私有功能类
        /// <para>256:Key,按键类类 </para>
        /// <para>768:PIR,PIR类</para>
        /// <para>1024:Light,灯类</para>
        /// </summary>
        public List<int> privateFuncFirstLevelList = new List<int>();
        /// <summary>
        /// 第二级信息
        /// <para>1:特殊功能</para>
        /// <para>100:Switch,开关(按键类)</para>
        /// <para>200:Dimmer,调光(按键类)</para>
        /// <para>300:Curtain,窗帘(按键类)</para>
        /// <para>0:EnergySavingMode,节能模式(灯类)</para>
        /// <para>1:SleepMode,睡眠模式(灯类)</para>
        /// <para>100:WhiteBalance,白平衡(灯类)</para>
        /// <para>101:RGBColor,RGB指示灯颜色(灯类)</para>
        /// <para>102:RGBLevel,RGB指示灯亮度(灯类)</para>
        /// </summary>
        public List<int> privateFuncSecondLevelList = new List<int>();
        /// <summary>
        /// 第三级信息
        /// <para>1:场景触发(特殊功能)</para>
        /// <para>65535:禁止发送功能(特殊功能)</para>
        /// <para>100:SwitchOpen,开关开(按键类)</para>
        /// <para>101:SwitchClose,开关关(按键类)</para>
        /// <para>102:SwitchChange,开关切换(按键类)</para>
        /// <para>200:DimmerStepUp,增大调光(按键类)</para>
        /// <para>201:DimmerStepDown,降低调光(按键类)</para>
        /// <para>202:DimmerStepChange,调光切换(按键类)</para>
        /// <para>300:CurtainOpen,窗帘开(按键类)</para>
        /// <para>301:CurtainClose,窗帘关(按键类)</para>
        /// <para>302:CurtainStop,窗帘停</para>
        /// <para>303:CurtainUpStop,窗帘上升停</para>
        /// <para>304:CurtainDownstop,窗帘下降停</para>
        /// </summary>
        public List<int> privateFuncThirdLevelList = new List<int>();
        #region 获取面板的私有信息.
        /// <summary>
        ///获取面板的私有信息
@@ -120,6 +195,11 @@
                                                {
                                                    int curIndex = 4 * j;
                                                    tempD.privateFuncTypeLevelFirstList.Add(Convert.ToInt32(listData[curIndex + 2] + listData[curIndex + 3].ToString() + listData[curIndex].ToString() + listData[curIndex + 1].ToString(), 16));
                                                    //if (privateFuncFirstLevelList.Contains(256) == false)
                                                    //{
                                                    //    privateFuncFirstLevelList.Add(Convert.ToInt32(listData[curIndex + 2] + listData[curIndex + 3].ToString() + listData[curIndex].ToString() + listData[curIndex + 1].ToString(), 16));
                                                    //}
                                                }
                                                break;
                                            case 2:
@@ -134,12 +214,19 @@
                                                    if (j == 0)
                                                    {
                                                        tempD.privateFuncTypeLevelFirstList.Add(Convert.ToInt32(listData[curIndex + 2] + listData[curIndex + 3].ToString() + listData[curIndex].ToString() + listData[curIndex + 1].ToString(), 16));
                                                        //if (privateFuncFirstLevelList.Contains(256) == false)
                                                        //{
                                                        //    privateFuncFirstLevelList.Add(Convert.ToInt32(listData[curIndex + 2] + listData[curIndex + 3].ToString() + listData[curIndex].ToString() + listData[curIndex + 1].ToString(), 16));
                                                        //}
                                                    }
                                                    else
                                                    {
                                                        tempD.privateFuncTypeLevelSecondList.Add(Convert.ToInt32(listData[curIndex + 2] + listData[curIndex + 3].ToString() + listData[curIndex].ToString() + listData[curIndex + 1].ToString(), 16));
                                                        //if (privateFuncSecondLevelList.Contains(1) == false || privateFuncSecondLevelList.Contains(100) == false || privateFuncSecondLevelList.Contains(200) == false || privateFuncSecondLevelList.Contains(300) == false)
                                                        //{
                                                        //    privateFuncSecondLevelList.Add(Convert.ToInt32(listData[curIndex + 2] + listData[curIndex + 3].ToString() + listData[curIndex].ToString() + listData[curIndex + 1].ToString(), 16));
                                                        //}
                                                    }
                                                }
                                                break;
                                            case 3:
@@ -154,14 +241,26 @@
                                                    if (j == 0)
                                                    {
                                                        tempD.privateFuncTypeLevelFirstList.Add(Convert.ToInt32(listData[curIndex + 2] + listData[curIndex + 3].ToString() + listData[curIndex].ToString() + listData[curIndex + 1].ToString(), 16));
                                                        //if (privateFuncFirstLevelList.Contains(256) == false)
                                                        //{
                                                        //    privateFuncFirstLevelList.Add(Convert.ToInt32(listData[curIndex + 2] + listData[curIndex + 3].ToString() + listData[curIndex].ToString() + listData[curIndex + 1].ToString(), 16));
                                                        //}
                                                    }
                                                    else if (j == 1)
                                                    {
                                                        tempD.privateFuncTypeLevelSecondList.Add(Convert.ToInt32(listData[curIndex + 2] + listData[curIndex + 3].ToString() + listData[curIndex].ToString() + listData[curIndex + 1].ToString(), 16));
                                                        //if (privateFuncSecondLevelList.Contains(1) == false || privateFuncSecondLevelList.Contains(100) == false || privateFuncSecondLevelList.Contains(200) == false || privateFuncSecondLevelList.Contains(300) == false)
                                                        //{
                                                        //    privateFuncSecondLevelList.Add(Convert.ToInt32(listData[curIndex + 2] + listData[curIndex + 3].ToString() + listData[curIndex].ToString() + listData[curIndex + 1].ToString(), 16));
                                                        //}
                                                    }
                                                    else
                                                    {
                                                        tempD.privateFuncTypeLevelThirdList.Add(Convert.ToInt32(listData[curIndex + 2] + listData[curIndex + 3].ToString() + listData[curIndex].ToString() + listData[curIndex + 1].ToString(), 16));
                                                        //if (privateFuncThirdLevelList.Contains(1) == false || privateFuncThirdLevelList.Contains(65535) == false || privateFuncThirdLevelList.Contains(100) == false || privateFuncThirdLevelList.Contains(101) == false || privateFuncThirdLevelList.Contains(102) == false || privateFuncThirdLevelList.Contains(200) == false || privateFuncThirdLevelList.Contains(201) == false || privateFuncThirdLevelList.Contains(202) == false || privateFuncThirdLevelList.Contains(300) == false || privateFuncThirdLevelList.Contains(301) == false || privateFuncThirdLevelList.Contains(302) == false || privateFuncThirdLevelList.Contains(303) == false || privateFuncThirdLevelList.Contains(304) == false)
                                                        //{
                                                        //    privateFuncThirdLevelList.Add(Convert.ToInt32(listData[curIndex + 2] + listData[curIndex + 3].ToString() + listData[curIndex].ToString() + listData[curIndex + 1].ToString(), 16)); ;
                                                        //}
                                                    }
                                                }
                                                break;
@@ -181,7 +280,6 @@
                try
                {
                    OpenPassthroughControl(Gateway);
                    var passData = SendPanelPrivateFunctions(args);
                    var jObject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", 200 }, { "Cluster_ID", 64513 }, { "Command", 0 } };
                    var data = new JObject { { "PassData", passData } };
@@ -233,7 +331,7 @@
        }
        /// <summary>
        /// PIR配置参数回复
        /// 配置参数回复
        /// </summary>
        public PanelPrivateFunctionsResponseInfo panelPrivateFunctionsResponseInfo;
        [System.Serializable]
@@ -488,6 +586,7 @@
            {
                return null;
            }
            return result.panelPrivateFunctionsResponseInfo.privateFuncTypeLevelFirstList;
        }
@@ -617,7 +716,6 @@
                try
                {
                    OpenPassthroughControl(Gateway);
                    var passData = ControlKeyData(keyNum, keyStatus);
                    var jObject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", 200 }, { "Cluster_ID", 64513 }, { "Command", 0 } };
                    var data = new JObject { { "PassData", passData } };
@@ -792,7 +890,6 @@
                try
                {
                    OpenPassthroughControl(Gateway);
                    var passData = SetPanelColorData(keyColorData, keyNumStatus);
                    var jObject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", 200 }, { "Cluster_ID", 64513 }, { "Command", 0 } };
                    var data = new JObject { { "PassData", passData } };
@@ -1168,7 +1265,6 @@
                try
                {
                    OpenPassthroughControl(Gateway);
                    var passData = SetPanelLevelData(directionsLevel, backlightLevel);
                    var jObject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", 200 }, { "Cluster_ID", 64513 }, { "Command", 0 } };
                    var data = new JObject { { "PassData", passData } };
@@ -1320,7 +1416,6 @@
                try
                {
                    OpenPassthroughControl(Gateway);
                    var passData = SetPanelModeModeData(modeEnable, modeTime, level);
                    var jObject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", 200 }, { "Cluster_ID", 64513 }, { "Command", 0 } };
                    var data = new JObject { { "PassData", passData } };
@@ -1535,7 +1630,6 @@
                try
                {
                    OpenPassthroughControl(Gateway);
                    var passData = GetkeyColorData(keyNum);
                    var jObject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", 200 }, { "Cluster_ID", 64513 }, { "Command", 0 } };
                    var data = new JObject { { "PassData", passData } };
@@ -1734,7 +1828,6 @@
                try
                {
                    OpenPassthroughControl(Gateway);
                    var passData = SendPanelSwitchLevelData(reserve);
                    var jObject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", 200 }, { "Cluster_ID", 64513 }, { "Command", 0 } };
                    var data = new JObject { { "PassData", passData } };
@@ -1894,7 +1987,6 @@
                try
                {
                    OpenPassthroughControl(Gateway);
                    var passData = SendPanelSaveEnergyModeData(reserve);
                    var jObject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", 200 }, { "Cluster_ID", 64513 }, { "Command", 0 } };
                    var data = new JObject { { "PassData", passData } };
@@ -2487,20 +2579,30 @@
            /// 开关类型——取反.
            /// </summary>
            OnOff_OnOff = 102,
            /// <summary>
            /// 亮度类型——调大.
            /// 亮度类型——按等级调大.
            /// </summary>
            Level_Step_Up = 200,
            /// <summary>
            /// 亮度类型——调小.
            /// 亮度类型——按等级调小.
            /// </summary>
            Level_Step_Down = 201,
            /// <summary>
            /// 亮度类型——取反.
            /// 亮度类型——按等级取反.
            /// </summary>
            Level_Step_Up_Down = 202,
            /// <summary>
            /// 亮度类型——取反.
            /// </summary>
            Level_Up = 203,
            /// <summary>
            /// 亮度类型——取反.
            /// </summary>
            Level_Down = 204,
            /// <summary>
            /// 亮度类型——取反.
            /// </summary>
            Level_Up_Down = 205,
            /// <summary>
            /// 窗帘类型——开.
            /// </summary>
@@ -2521,6 +2623,10 @@
            /// 窗帘类型——下降停止.
            /// </summary>
            Wcd_Down_Stop = 304,
            /// <summary>
            /// 窗帘类型——下降停止.
            /// </summary>
            Default = 65535,
        }
        #endregion