From 404cdc88627f942df7944af04ee05b9d527752d6 Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期一, 30 九月 2019 13:22:40 +0800 Subject: [PATCH] 合并了徐梅的按键面板绑定 --- ZigbeeApp/Shared/Phone/ZigBee/Device/Panel.cs | 1014 ++++++++++++++++++++++++++++++++-------------------------- 1 files changed, 560 insertions(+), 454 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/Panel.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/Panel.cs index 3eb06bc..005792d 100755 --- a/ZigbeeApp/Shared/Phone/ZigBee/Device/Panel.cs +++ b/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,13 +28,87 @@ 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> /// 鎸夐敭鏀寔鐨勭鏈夋ā寮忓垪琛� /// </summary> - public System.Collections.Generic.List<string> priFunList = new System.Collections.Generic.List<string> { }; + 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,11 +280,10 @@ 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 } }; - jObject.Add("Data", data); + jObject.Add("Data", data); Gateway.Send("ClientDataPassthrough", jObject.ToString()); } catch { } @@ -233,7 +331,7 @@ } /// <summary> - /// PIR閰嶇疆鍙傛暟鍥炲 + /// 閰嶇疆鍙傛暟鍥炲 /// </summary> public PanelPrivateFunctionsResponseInfo panelPrivateFunctionsResponseInfo; [System.Serializable] @@ -245,8 +343,8 @@ /// <para>2:绗簩绾у埆</para> /// <para>3:绗笁绾у埆</para> /// </summary> - public int funLevel = -1; - + public int funLevel = -1; + /// <summary> /// 绉佹湁鍔熻兘绫� /// <para>256:Key,鎸夐敭绫荤被 </para> @@ -285,8 +383,8 @@ /// <para>303:CurtainUpStop,绐楀笜涓婂崌鍋�</para> /// <para>304:CurtainDownstop,绐楀笜涓嬮檷鍋�</para> /// </summary> - public List<int> privateFuncTypeLevelThirdList = new List<int>(); - + public List<int> privateFuncTypeLevelThirdList = new List<int>(); + } /// <summary> @@ -306,7 +404,7 @@ string addDataLength = ""; string value0 = ""; string value1 = ""; - string value2 = ""; + string value2 = ""; try { @@ -316,18 +414,18 @@ { dataLength = string.Concat(0, 2 * args.Length + 5); } - else - { + else + { dataLength = Convert.ToString(2 * args.Length + 5, 16); - } - - + } + + if (Convert.ToString(2 * args.Length, 16).Length == 1) { addDataLength = string.Concat(0, 2 * args.Length + 1); } else - { + { addDataLength = Convert.ToString(2 * args.Length + 1, 16); } @@ -336,7 +434,7 @@ switch (args.Length) { case 1: - value0 = "02"; + value0 = "02"; switch (args[0]) { case 1024: @@ -396,15 +494,15 @@ case 768: value1 = "0003"; break; - } - - break; - } + } + + break; + } } - } - else - { + } + else + { dataLength = "05"; addDataLength = "01"; value0 = "01"; @@ -412,8 +510,8 @@ data = dataLength + dataComand1 + dataComand2 + dataSerialNum + addDataLength + value0 + value1 + value2; } - catch { }; - + catch { }; + return data; } @@ -428,7 +526,7 @@ /// <para>768:PIR,PIR绫�</para> /// <para>1024:Light,鐏被</para> /// </summary> - public int privateFuncTypeOne; + public int privateFuncTypeOne; } /// <summary> @@ -448,8 +546,8 @@ /// <para>102:RGBLevel,RGB鎸囩ず鐏寒搴︼紙鐏被锛�</para> /// </summary> public int privateFuncTypeTwo; - } - + } + /// <summary> /// 绉佹湁鍔熻兘绫伙紙绗笁绾у埆锛変俊鎭� /// </summary> @@ -488,6 +586,7 @@ { return null; } + return result.panelPrivateFunctionsResponseInfo.privateFuncTypeLevelFirstList; } @@ -617,11 +716,10 @@ 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 } }; - jObject.Add("Data", data); + jObject.Add("Data", data); Gateway.Send(("ClientDataPassthrough"), jObject.ToString()); } catch { } @@ -697,8 +795,8 @@ string td = attributeData.ToString("X4"); char[] td1 = td.ToCharArray(); - string tempAttributeData = string.Concat(td1[2].ToString(), td1[3].ToString(), td1[0].ToString(), td1[1].ToString()); - + string tempAttributeData = string.Concat(td1[2].ToString(), td1[3].ToString(), td1[0].ToString(), td1[1].ToString()); + switch (keyStatus) { case KeyStatus.close: @@ -792,11 +890,10 @@ 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 } }; - jObject.Add("Data", data); + jObject.Add("Data", data); Gateway.Send(("ClientDataPassthrough"), jObject.ToString()); } catch { } @@ -866,14 +963,14 @@ Type type = keyNumStatus.GetType(); var obj = type.InvokeMember("Key" + i, System.Reflection.BindingFlags.GetField, null, keyNumStatus, null); int value0 = 0; - if (Convert.ToBoolean(obj) == true) - { + if (Convert.ToBoolean(obj) == true) + { value0 = 1; } int v = (int)Math.Pow(2, i - 1); attributeData += value0 * v; - } - + } + string td = attributeData.ToString("X4"); char[] td1 = td.ToCharArray(); string tempAttributeData = string.Concat(td1[2].ToString(), td1[3].ToString(), td1[0].ToString(), td1[1].ToString()); @@ -1168,11 +1265,10 @@ 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 } }; - jObject.Add("Data", data); + jObject.Add("Data", data); Gateway.Send(("ClientDataPassthrough"), jObject.ToString()); } catch { } @@ -1320,11 +1416,10 @@ 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 } }; - jObject.Add("Data", data); + jObject.Add("Data", data); Gateway.Send(("ClientDataPassthrough"), jObject.ToString()); } catch { } @@ -1362,7 +1457,7 @@ string addDataLength = "03"; string mode = ""; string time = ""; - string level = ""; + string level = ""; try { if (modeEnable) @@ -1396,7 +1491,7 @@ level = temp2; break; } - + sbString1.Append(time.ToUpper()); sbString2.Append(level.ToUpper()); data = dataLength + dataComand1 + dataComand2 + dataSerialNum + addDataLength + @@ -1535,11 +1630,10 @@ 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 } }; - jObject.Add("Data", data); + jObject.Add("Data", data); Gateway.Send(("ClientDataPassthrough"), jObject.ToString()); } catch { } @@ -1734,11 +1828,10 @@ 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 } }; - jObject.Add("Data", data); + jObject.Add("Data", data); Gateway.Send(("ClientDataPassthrough"), jObject.ToString()); } catch { } @@ -1890,15 +1983,14 @@ }; Gateway.Actions += action; - System.Console.WriteLine("ClientDataPassthrough_Actions 鍚姩" + System.DateTime.Now.ToString()); - + System.Console.WriteLine("ClientDataPassthrough_Actions 鍚姩" + System.DateTime.Now.ToString()); + 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 } }; - jObject.Add("Data", data); + jObject.Add("Data", data); Gateway.Send(("ClientDataPassthrough"), jObject.ToString()); } catch { } @@ -1991,401 +2083,401 @@ /// 鑺傝兘妯″紡浜害(0-100) /// </summary> public int level = -1; - } + } #endregion - + #region 閰嶇疆鎸夐敭鎸囩ず鐏潯鐪犵粍鍒嗭紙鏆傛椂涓嶅仛锛� ///<summary > ///鑾峰彇鎸夐敭鎸囩ず鐏潯鐪犵粍 ///<para>sleepGroup:鐫$湢缁勫彿</para> /// </summary> - //public async System.Threading.Tasks.Task<PanelSleepGroupResponseAllData> GetPanelSleepGroupAsync(SleepGroup sleepGroup) - //{ - // PanelSleepGroupResponseAllData result = null; - // if (Gateway == null) - // { - // result = new PanelSleepGroupResponseAllData { errorMessageBase = "褰撳墠娌℃湁缃戝叧" }; - // return result; - // } - // return await System.Threading.Tasks.Task.Run(async () => - // { - // Action<string, string> action = (topic, message) => - // { - // var gatewayID = topic.Split('/')[0]; - // var jobject = Newtonsoft.Json.Linq.JObject.Parse(message); - - // if (topic == gatewayID + "/" + "Error_Respon") - // { - // var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID }; - // var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGateway.ErrorResponData>(jobject["Data"].ToString()); - - // if (temp == null) - // { - // result = new PanelSleepGroupResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" }; - // } - - // else - // { - // result = new PanelSleepGroupResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) }; - // } - // } - // if (topic == gatewayID + "/" + "ZbDataPassthrough") - // { - // var gatewayTemp = new ZbGateway() { DataID = jobject.Value<int>("Data_ID") }; - // gatewayTemp.clientDataPassthroughResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClientDataPassthroughResponseData>(jobject["Data"].ToString()); - - // if (gatewayTemp.clientDataPassthroughResponseData == null) - // { - // result = new PanelSleepGroupResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" }; - // } - // else - // { - // if (gatewayTemp.clientDataPassthroughResponseData?.PassData != null) - // { - // var data = gatewayTemp.clientDataPassthroughResponseData.PassData; - // if (data.Length == 14) - // { - // var tempR = new PanelSleepGroupResponseData(); - // tempR.status = int.Parse(data[12].ToString() + data[13].ToString()); - // switch (data[10].ToString() + data[11].ToString()) - // { - // case "01": - // tempR.sleepGroupNum = SleepGroupNum.Group1; - // break; - // case "02": - // tempR.sleepGroupNum = SleepGroupNum.Group2; - // break; - // case "03": - // tempR.sleepGroupNum = SleepGroupNum.Group3; - // break; - // case "04": - // tempR.sleepGroupNum = SleepGroupNum.Group4; - // break; - // case "05": - // tempR.sleepGroupNum = SleepGroupNum.Group5; - // break; - // case "06": - // tempR.sleepGroupNum = SleepGroupNum.Group6; - // break; - // case "07": - // tempR.sleepGroupNum = SleepGroupNum.Group7; - // break; - // case "08": - // tempR.sleepGroupNum = SleepGroupNum.Group8; - // break; - // case "09": - // tempR.sleepGroupNum = SleepGroupNum.Group9; - // break; - // case "0a": - // tempR.sleepGroupNum = SleepGroupNum.Group10; - // break; - // case "0b": - // tempR.sleepGroupNum = SleepGroupNum.Group11; - // break; - // case "0c": - // tempR.sleepGroupNum = SleepGroupNum.Group12; - // break; - // case "0d": - // tempR.sleepGroupNum = SleepGroupNum.Group13; - // break; - // case "0e": - // tempR.sleepGroupNum = SleepGroupNum.Group14; - // break; - // case "0f": - // tempR.sleepGroupNum = SleepGroupNum.Group15; - // break; - // } - // result = new PanelSleepGroupResponseAllData { panelSleepGroupResponseData = tempR }; - // } - // } - // System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}"); - // } - // } - // }; - - // Gateway.Actions += action; - // System.Console.WriteLine("ClientDataPassthrough_Actions 鍚姩" + System.DateTime.Now.ToString()); - - // try - // { - // OpenPassthroughControl(Gateway); - // var passData = SetPanelSleepGroupData(sleepGroup); - // var jObject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", 200 }, { "Cluster_ID", 64513 }, { "Command", 0 } }; - // var data = new JObject { { "PassData", passData } }; - // jObject.Add("Data", data); - // CurrentGateWayId = Gateway.getGatewayBaseInfo?.gwID; - // Gateway.Send(("ClientDataPassthrough"), jObject.ToString()); - // } - // catch { } - - // var dateTime = DateTime.Now; - // while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime) - // { - // await System.Threading.Tasks.Task.Delay(10); - // if (result != null) - // { - // break; - // } - // } - // if ((DateTime.Now - dateTime).TotalMilliseconds > WaitReceiveDataTime) - // { - // result = new PanelSleepGroupResponseAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" }; - // } - // Gateway.Actions -= action; - // System.Console.WriteLine("ClientDataPassthrough_Actions 閫�鍑�" + System.DateTime.Now.ToString()); - - // return result; - // }); - //} - - ///// <summary> - ///// 缁戝畾璁惧淇℃伅,缃戝叧鍙嶉淇℃伅 - ///// </summary> - //public PanelSleepGroupResponseAllData panelSleepGroupResponseAllData; - //[System.Serializable] - //public class PanelSleepGroupResponseAllData - //{ - // /// <summary> - // /// 閿欒淇℃伅 - // /// </summary> - // public string errorMessageBase; - // /// <summary> - // /// 缃戝叧淇℃伅閿欒鍙嶉 - // /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para> - // /// </summary> - // public ErrorResponData errorResponData; - // /// <summary> - // /// 缁戝畾璁惧淇℃伅 - // /// </summary> - // public PanelSleepGroupResponseData panelSleepGroupResponseData; - //} - - ///// <summary> - ///// 缁戝畾璁惧淇℃伅,缃戝叧鍙嶉淇℃伅 - ///// </summary> - //public PanelSleepGroupResponseData panelSleepGroupResponseData; - //[System.Serializable] - //public class PanelSleepGroupResponseData - //{ - // /// <summary> - // /// 鐫$湢缁勫彿 - // /// </summary> - // public SleepGroupNum sleepGroupNum; - // /// <summary> - // /// 鐘舵�� - // /// <para>0--鎵ц 1鈥斿敜閱�</para> - // /// </summary> - // public int status; - //} - - ///// <summary> - ///// 閰嶇疆鎸夐敭鎸囩ず鐏潯鐪犵粍鍒嗗尯 - ///// </summary> - //string SetPanelSleepGroupData(SleepGroup sleepGroup) - //{ - // string data = ""; - // string dataLength = "06"; - // string dataComand1 = "0a"; - // string dataComand2 = "04"; - // string dataSerialNum = "01"; - // string addDataLength = "02"; - // int attributeData = 0; - - // try - // { - // int bit0 = 0, bit1 = 0, bit2 = 0, bit3 = 0, bit4 = 0, bit5 = 0, bit6 = 0, bit7 = 0, bit8 = 0, bit9 = 0, bit10 = 0, bit11 = 0, bit12 = 0, bit13 = 0, bit14 = 0, bit15 = 0; - // if (sleepGroup != null) - // { - // if (sleepGroup.bit0) - // { - // bit0 = 1; - // } - // if (sleepGroup.bit1) - // { - // bit1 = 1; - // } - // if (sleepGroup.bit2) - // { - // bit2 = 1; - // } - // if (sleepGroup.bit3) - // { - // bit3 = 1; - // } - // if (sleepGroup.bit4) - // { - // bit4 = 1; - // } - // if (sleepGroup.bit5) - // { - // bit5 = 1; - // } - // if (sleepGroup.bit6) - // { - // bit6 = 1; - // } - // if (sleepGroup.bit7) - // { - // bit7 = 1; - // } - // if (sleepGroup.bit8) - // { - // bit8 = 1; - // } - // if (sleepGroup.bit9) - // { - // bit9 = 1; - // } - // if (sleepGroup.bit10) - // { - // bit10 = 1; - // } - // if (sleepGroup.bit11) - // { - // bit11 = 1; - // } - // if (sleepGroup.bit12) - // { - // bit12 = 1; - // } - // if (sleepGroup.bit13) - // { - // bit13 = 1; - // } - // if (sleepGroup.bit14) - // { - // bit14 = 1; - // } - // if (sleepGroup.bit15) - // { - // bit15 = 1; - // } - // attributeData = bit0 * 1 + bit1 * 2 + bit2 * 4 + bit3 * 8 + bit4 * 16 + bit5 * 32 + bit6 * 64 + bit7 * 128 + bit8 * 256 + bit9 * 512 + bit10 * 1024 + bit11 * 2048 + bit12 * 4096 + bit13 * 8192 + bit14 * 16384 + bit15 * 32768; - // } - // string tempAttributeData = attributeData.ToString("X4"); - - // if (sleepGroup != null) - // { - // data = dataLength + dataComand1 + dataComand2 + dataSerialNum + addDataLength + - // tempAttributeData; - // } - // } - // catch { }; - - // return data; - //} - - ///// <summary> - ///// 鐫$湢缁勫彿锛堝彲浣嶆垨锛� - ///// </summary> - //public class SleepGroup - //{ - // /// <summary> - // /// false:鍏� - // /// true:寮� - // /// </summary> - // public bool bit0; - // /// <summary> - // /// false:鍏� - // /// true:寮� - // /// </summary> - // public bool bit1; - // /// <summary> - // /// false:鍏� - // /// true:寮� - // /// </summary> - // public bool bit2; - // /// <summary> - // /// false:鍏� - // /// true:寮� - // /// </summary> - // public bool bit3; - // /// <summary> - // /// false:鍏� - // /// true:寮� - // /// </summary> - // public bool bit4; - // /// <summary> - // /// false:鍏� - // /// true:寮� - // /// </summary> - // public bool bit5; - // /// <summary> - // /// false:鍏� - // /// true:寮� - // /// </summary> - // public bool bit6; - // /// <summary> - // /// false:鍏� - // /// true:寮� - // /// </summary> - // public bool bit7; - // /// <summary> - // /// false:鍏� - // /// true:寮� - // /// </summary> - // public bool bit8; - // /// <summary> - // /// false:鍏� - // /// true:寮� - // /// </summary> - // public bool bit9; - // /// <summary> - // /// false:鍏� - // /// true:寮� - // /// </summary> - // public bool bit10; - // /// <summary> - // /// false:鍏� - // /// true:寮� - // /// </summary> - // public bool bit11; - // /// <summary> - // /// false:鍏� - // /// true:寮� - // /// </summary> - // public bool bit12; - // /// <summary> - // /// false:鍏� - // /// true:寮� - // /// </summary> - // public bool bit13; - // /// <summary> - // /// false:鍏� - // /// true:寮� - // /// </summary> - // public bool bit14; - // /// <summary> - // /// false:鍏� - // /// true:寮� - // /// </summary> - // public bool bit15; - //} - - ///// <summary> - ///// 鎵ц鎸夐敭鎸囩ず鐏潯鐪犵粍 - ///// </summary> - //public enum SleepGroupNum - //{ - // Group1 = 1, - // Group2 = 2, - // Group3 = 3, - // Group4 = 4, - // Group5 = 5, - // Group6 = 6, - // Group7 = 7, - // Group8 = 8, - // Group9 = 9, - // Group10 = 10, - // Group11 = 11, - // Group12 = 12, - // Group13 = 13, - // Group14 = 14, - // Group15 = 15, - // Group16 = 16, - //} + //public async System.Threading.Tasks.Task<PanelSleepGroupResponseAllData> GetPanelSleepGroupAsync(SleepGroup sleepGroup) + //{ + // PanelSleepGroupResponseAllData result = null; + // if (Gateway == null) + // { + // result = new PanelSleepGroupResponseAllData { errorMessageBase = "褰撳墠娌℃湁缃戝叧" }; + // return result; + // } + // return await System.Threading.Tasks.Task.Run(async () => + // { + // Action<string, string> action = (topic, message) => + // { + // var gatewayID = topic.Split('/')[0]; + // var jobject = Newtonsoft.Json.Linq.JObject.Parse(message); + + // if (topic == gatewayID + "/" + "Error_Respon") + // { + // var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID }; + // var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGateway.ErrorResponData>(jobject["Data"].ToString()); + + // if (temp == null) + // { + // result = new PanelSleepGroupResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" }; + // } + + // else + // { + // result = new PanelSleepGroupResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) }; + // } + // } + // if (topic == gatewayID + "/" + "ZbDataPassthrough") + // { + // var gatewayTemp = new ZbGateway() { DataID = jobject.Value<int>("Data_ID") }; + // gatewayTemp.clientDataPassthroughResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClientDataPassthroughResponseData>(jobject["Data"].ToString()); + + // if (gatewayTemp.clientDataPassthroughResponseData == null) + // { + // result = new PanelSleepGroupResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" }; + // } + // else + // { + // if (gatewayTemp.clientDataPassthroughResponseData?.PassData != null) + // { + // var data = gatewayTemp.clientDataPassthroughResponseData.PassData; + // if (data.Length == 14) + // { + // var tempR = new PanelSleepGroupResponseData(); + // tempR.status = int.Parse(data[12].ToString() + data[13].ToString()); + // switch (data[10].ToString() + data[11].ToString()) + // { + // case "01": + // tempR.sleepGroupNum = SleepGroupNum.Group1; + // break; + // case "02": + // tempR.sleepGroupNum = SleepGroupNum.Group2; + // break; + // case "03": + // tempR.sleepGroupNum = SleepGroupNum.Group3; + // break; + // case "04": + // tempR.sleepGroupNum = SleepGroupNum.Group4; + // break; + // case "05": + // tempR.sleepGroupNum = SleepGroupNum.Group5; + // break; + // case "06": + // tempR.sleepGroupNum = SleepGroupNum.Group6; + // break; + // case "07": + // tempR.sleepGroupNum = SleepGroupNum.Group7; + // break; + // case "08": + // tempR.sleepGroupNum = SleepGroupNum.Group8; + // break; + // case "09": + // tempR.sleepGroupNum = SleepGroupNum.Group9; + // break; + // case "0a": + // tempR.sleepGroupNum = SleepGroupNum.Group10; + // break; + // case "0b": + // tempR.sleepGroupNum = SleepGroupNum.Group11; + // break; + // case "0c": + // tempR.sleepGroupNum = SleepGroupNum.Group12; + // break; + // case "0d": + // tempR.sleepGroupNum = SleepGroupNum.Group13; + // break; + // case "0e": + // tempR.sleepGroupNum = SleepGroupNum.Group14; + // break; + // case "0f": + // tempR.sleepGroupNum = SleepGroupNum.Group15; + // break; + // } + // result = new PanelSleepGroupResponseAllData { panelSleepGroupResponseData = tempR }; + // } + // } + // System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}"); + // } + // } + // }; + + // Gateway.Actions += action; + // System.Console.WriteLine("ClientDataPassthrough_Actions 鍚姩" + System.DateTime.Now.ToString()); + + // try + // { + // OpenPassthroughControl(Gateway); + // var passData = SetPanelSleepGroupData(sleepGroup); + // var jObject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", 200 }, { "Cluster_ID", 64513 }, { "Command", 0 } }; + // var data = new JObject { { "PassData", passData } }; + // jObject.Add("Data", data); + // CurrentGateWayId = Gateway.getGatewayBaseInfo?.gwID; + // Gateway.Send(("ClientDataPassthrough"), jObject.ToString()); + // } + // catch { } + + // var dateTime = DateTime.Now; + // while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime) + // { + // await System.Threading.Tasks.Task.Delay(10); + // if (result != null) + // { + // break; + // } + // } + // if ((DateTime.Now - dateTime).TotalMilliseconds > WaitReceiveDataTime) + // { + // result = new PanelSleepGroupResponseAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" }; + // } + // Gateway.Actions -= action; + // System.Console.WriteLine("ClientDataPassthrough_Actions 閫�鍑�" + System.DateTime.Now.ToString()); + + // return result; + // }); + //} + + ///// <summary> + ///// 缁戝畾璁惧淇℃伅,缃戝叧鍙嶉淇℃伅 + ///// </summary> + //public PanelSleepGroupResponseAllData panelSleepGroupResponseAllData; + //[System.Serializable] + //public class PanelSleepGroupResponseAllData + //{ + // /// <summary> + // /// 閿欒淇℃伅 + // /// </summary> + // public string errorMessageBase; + // /// <summary> + // /// 缃戝叧淇℃伅閿欒鍙嶉 + // /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para> + // /// </summary> + // public ErrorResponData errorResponData; + // /// <summary> + // /// 缁戝畾璁惧淇℃伅 + // /// </summary> + // public PanelSleepGroupResponseData panelSleepGroupResponseData; + //} + + ///// <summary> + ///// 缁戝畾璁惧淇℃伅,缃戝叧鍙嶉淇℃伅 + ///// </summary> + //public PanelSleepGroupResponseData panelSleepGroupResponseData; + //[System.Serializable] + //public class PanelSleepGroupResponseData + //{ + // /// <summary> + // /// 鐫$湢缁勫彿 + // /// </summary> + // public SleepGroupNum sleepGroupNum; + // /// <summary> + // /// 鐘舵�� + // /// <para>0--鎵ц 1鈥斿敜閱�</para> + // /// </summary> + // public int status; + //} + + ///// <summary> + ///// 閰嶇疆鎸夐敭鎸囩ず鐏潯鐪犵粍鍒嗗尯 + ///// </summary> + //string SetPanelSleepGroupData(SleepGroup sleepGroup) + //{ + // string data = ""; + // string dataLength = "06"; + // string dataComand1 = "0a"; + // string dataComand2 = "04"; + // string dataSerialNum = "01"; + // string addDataLength = "02"; + // int attributeData = 0; + + // try + // { + // int bit0 = 0, bit1 = 0, bit2 = 0, bit3 = 0, bit4 = 0, bit5 = 0, bit6 = 0, bit7 = 0, bit8 = 0, bit9 = 0, bit10 = 0, bit11 = 0, bit12 = 0, bit13 = 0, bit14 = 0, bit15 = 0; + // if (sleepGroup != null) + // { + // if (sleepGroup.bit0) + // { + // bit0 = 1; + // } + // if (sleepGroup.bit1) + // { + // bit1 = 1; + // } + // if (sleepGroup.bit2) + // { + // bit2 = 1; + // } + // if (sleepGroup.bit3) + // { + // bit3 = 1; + // } + // if (sleepGroup.bit4) + // { + // bit4 = 1; + // } + // if (sleepGroup.bit5) + // { + // bit5 = 1; + // } + // if (sleepGroup.bit6) + // { + // bit6 = 1; + // } + // if (sleepGroup.bit7) + // { + // bit7 = 1; + // } + // if (sleepGroup.bit8) + // { + // bit8 = 1; + // } + // if (sleepGroup.bit9) + // { + // bit9 = 1; + // } + // if (sleepGroup.bit10) + // { + // bit10 = 1; + // } + // if (sleepGroup.bit11) + // { + // bit11 = 1; + // } + // if (sleepGroup.bit12) + // { + // bit12 = 1; + // } + // if (sleepGroup.bit13) + // { + // bit13 = 1; + // } + // if (sleepGroup.bit14) + // { + // bit14 = 1; + // } + // if (sleepGroup.bit15) + // { + // bit15 = 1; + // } + // attributeData = bit0 * 1 + bit1 * 2 + bit2 * 4 + bit3 * 8 + bit4 * 16 + bit5 * 32 + bit6 * 64 + bit7 * 128 + bit8 * 256 + bit9 * 512 + bit10 * 1024 + bit11 * 2048 + bit12 * 4096 + bit13 * 8192 + bit14 * 16384 + bit15 * 32768; + // } + // string tempAttributeData = attributeData.ToString("X4"); + + // if (sleepGroup != null) + // { + // data = dataLength + dataComand1 + dataComand2 + dataSerialNum + addDataLength + + // tempAttributeData; + // } + // } + // catch { }; + + // return data; + //} + + ///// <summary> + ///// 鐫$湢缁勫彿锛堝彲浣嶆垨锛� + ///// </summary> + //public class SleepGroup + //{ + // /// <summary> + // /// false:鍏� + // /// true:寮� + // /// </summary> + // public bool bit0; + // /// <summary> + // /// false:鍏� + // /// true:寮� + // /// </summary> + // public bool bit1; + // /// <summary> + // /// false:鍏� + // /// true:寮� + // /// </summary> + // public bool bit2; + // /// <summary> + // /// false:鍏� + // /// true:寮� + // /// </summary> + // public bool bit3; + // /// <summary> + // /// false:鍏� + // /// true:寮� + // /// </summary> + // public bool bit4; + // /// <summary> + // /// false:鍏� + // /// true:寮� + // /// </summary> + // public bool bit5; + // /// <summary> + // /// false:鍏� + // /// true:寮� + // /// </summary> + // public bool bit6; + // /// <summary> + // /// false:鍏� + // /// true:寮� + // /// </summary> + // public bool bit7; + // /// <summary> + // /// false:鍏� + // /// true:寮� + // /// </summary> + // public bool bit8; + // /// <summary> + // /// false:鍏� + // /// true:寮� + // /// </summary> + // public bool bit9; + // /// <summary> + // /// false:鍏� + // /// true:寮� + // /// </summary> + // public bool bit10; + // /// <summary> + // /// false:鍏� + // /// true:寮� + // /// </summary> + // public bool bit11; + // /// <summary> + // /// false:鍏� + // /// true:寮� + // /// </summary> + // public bool bit12; + // /// <summary> + // /// false:鍏� + // /// true:寮� + // /// </summary> + // public bool bit13; + // /// <summary> + // /// false:鍏� + // /// true:寮� + // /// </summary> + // public bool bit14; + // /// <summary> + // /// false:鍏� + // /// true:寮� + // /// </summary> + // public bool bit15; + //} + + ///// <summary> + ///// 鎵ц鎸夐敭鎸囩ず鐏潯鐪犵粍 + ///// </summary> + //public enum SleepGroupNum + //{ + // Group1 = 1, + // Group2 = 2, + // Group3 = 3, + // Group4 = 4, + // Group5 = 5, + // Group6 = 6, + // Group7 = 7, + // Group8 = 8, + // Group9 = 9, + // Group10 = 10, + // Group11 = 11, + // Group12 = 12, + // Group13 = 13, + // Group14 = 14, + // Group15 = 15, + // Group16 = 16, + //} #endregion - + #region 閰嶇疆闈㈡澘鍔熻兘 ///<summary > ///閰嶇疆闈㈡澘鍔熻兘 @@ -2442,7 +2534,7 @@ { var jObject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", DeviceEpoint }, { "Cluster_ID", 6 }, { "Command", 120 } }; var data = new JObject { { "Undivided", 0 }, { "AttributeId", 6533 }, { "AttributeDataType", 33 }, { "AttributeData", (int)value } }; - jObject.Add("Data", data); + jObject.Add("Data", data); Gateway.Send("SetWritableValue", jObject.ToString()); } catch { } @@ -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 @@ -2618,7 +2724,7 @@ } }; var data = new JObject { { "AttriBute", attriBute } }; - JObject.Add("Data", data); + JObject.Add("Data", data); Gateway?.Send(("GetDeviceStatus"), JObject.ToString()); } catch @@ -2644,8 +2750,8 @@ return d; }); - } - + } + /// <summary> /// 缃戝叧鎭㈠鍑哄巶璁剧疆杩斿洖鏁版嵁 /// </summary> @@ -2772,7 +2878,7 @@ // {"BindName",addBindData.BindName}, // { "BindList", bindList } // }; - // jObject.Add("Data", data); + // jObject.Add("Data", data); // mainGateway.Send("Bind/SetBind", jObject.ToString()); // } // } @@ -3059,7 +3165,7 @@ // var data = new JObject { // {"RemoveBindList",removeBindList} // }; - // jObject.Add("Data", data); + // jObject.Add("Data", data); // mainGateway.Send("Bind/RemoveBind", jObject.ToString()); // } // } @@ -3305,7 +3411,7 @@ // try // { // System.Console.WriteLine("Bind/GetDeviceBind_Actions 鍚姩" + "_" + System.DateTime.Now.ToString()); - // var jObject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", DeviceEpoint }, { "Cluster_ID", 0 }, { "Command", 5007 } }; + // var jObject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", DeviceEpoint }, { "Cluster_ID", 0 }, { "Command", 5007 } }; // mainGateway.Send("Bind/GetDeviceBind", jObject.ToString()); // } // catch { } @@ -3458,7 +3564,7 @@ // try // { - // var jObject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", DeviceEpoint }, { "Cluster_ID", 0 }, { "Command", 5006 } }; + // var jObject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", DeviceEpoint }, { "Cluster_ID", 0 }, { "Command", 5006 } }; // Gateway.Send("Bind/ClearBindInfo", jObject.ToString()); // } // catch { } -- Gitblit v1.8.0