| | |
| | | using System.Collections.Generic; |
| | | using System.Threading.Tasks; |
| | | using Newtonsoft.Json.Linq; |
| | | using Shared.Common; |
| | | |
| | | namespace ZigBee.Device |
| | | { |
| | |
| | | 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> { }; |
| | |
| | | /// 按键支持的私有模式列表 |
| | | /// </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> |
| | | ///获取面板的私有信息 |
| | |
| | | { |
| | | 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: |
| | |
| | | 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: |
| | |
| | | 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; |
| | |
| | | |
| | | 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 } }; |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// PIR配置参数回复 |
| | | /// 配置参数回复 |
| | | /// </summary> |
| | | public PanelPrivateFunctionsResponseInfo panelPrivateFunctionsResponseInfo; |
| | | [System.Serializable] |
| | |
| | | { |
| | | return null; |
| | | } |
| | | |
| | | return result.panelPrivateFunctionsResponseInfo.privateFuncTypeLevelFirstList; |
| | | } |
| | | |
| | |
| | | |
| | | 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 } }; |
| | |
| | | |
| | | 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 } }; |
| | |
| | | |
| | | 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 } }; |
| | |
| | | |
| | | 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 } }; |
| | |
| | | |
| | | 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 } }; |
| | |
| | | |
| | | 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 } }; |
| | |
| | | |
| | | 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 } }; |
| | |
| | | /// 开关类型——取反. |
| | | /// </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> |
| | |
| | | /// 窗帘类型——下降停止. |
| | | /// </summary> |
| | | Wcd_Down_Stop = 304, |
| | | /// <summary> |
| | | /// 窗帘类型——下降停止. |
| | | /// </summary> |
| | | Default = 65535, |
| | | } |
| | | #endregion |
| | | |