From dfd3bdc07c49fab66b38382e0bbe7c91bdf4f15b Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期二, 28 四月 2020 15:03:43 +0800 Subject: [PATCH] 合并新代码,提供逻辑需要的门锁接口 --- ZigbeeApp/Shared/Phone/Device/DeviceLogic/ReadDeviceAttributeLogic.cs | 145 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 143 insertions(+), 2 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Device/DeviceLogic/ReadDeviceAttributeLogic.cs b/ZigbeeApp/Shared/Phone/Device/DeviceLogic/ReadDeviceAttributeLogic.cs old mode 100755 new mode 100644 index e283fca..746a189 --- a/ZigbeeApp/Shared/Phone/Device/DeviceLogic/ReadDeviceAttributeLogic.cs +++ b/ZigbeeApp/Shared/Phone/Device/DeviceLogic/ReadDeviceAttributeLogic.cs @@ -17,12 +17,62 @@ { get { - if(_instance == null) + if (_instance == null) { _instance = new ReadDeviceAttributeLogic(); } return _instance; } + } + + #endregion + + #region 鈼� 鏂伴____________________________ + /// <summary> + /// SendFreshAirStatuComand + /// </summary> + /// <param name="device">璁惧</param> + public void SendFreshAirStatuComand(CommonDevice device) + { + if (device == null) + { + return; + } + new System.Threading.Thread(() => + { + SendFreshAirFanStatuComand(device); + System.Threading.Thread.Sleep(300); + }) + { IsBackground = true }.Start(); + } + + /// <summary> + /// SendFanStatuComand + /// </summary> + /// <param name="device">璁惧</param> + private void SendFreshAirFanStatuComand(CommonDevice device) + { + if (device == null) + { + return; + } + var jObject = new Newtonsoft.Json.Linq.JObject + { + { "DeviceAddr",device.DeviceAddr }, + { "Epoint", device.DeviceEpoint }, + { "Cluster_ID", (int)Cluster_ID.FanControl }, + { "Command", 108 } + }; + var attriBute = new Newtonsoft.Json.Linq.JArray + { + new Newtonsoft.Json.Linq.JObject + { + { "AttriButeId", (int)AttriButeId.FanMode} + } + }; + var data = new Newtonsoft.Json.Linq.JObject { { "AttriBute", attriBute } }; + jObject.Add("Data", data); + device.Gateway?.Send("GetDeviceStatus", jObject.ToString()); } #endregion @@ -35,6 +85,10 @@ /// <param name="device">璁惧</param> public void SendACStatuComand(CommonDevice device) { + if (device == null) + { + return; + } new System.Threading.Thread(() => { SendFanStatuComand(device); @@ -48,8 +102,12 @@ /// SendThermostatStatuComand /// </summary> /// <param name="device">璁惧</param> - private void SendThermostatStatuComand(CommonDevice device) + public void SendThermostatStatuComand(CommonDevice device) { + if (device == null) + { + return; + } var jObject = new Newtonsoft.Json.Linq.JObject { { "DeviceAddr",device.DeviceAddr }, @@ -99,6 +157,10 @@ /// <param name="device">璁惧</param> private void SendFanStatuComand(CommonDevice device) { + if (device == null) + { + return; + } var jObject = new Newtonsoft.Json.Linq.JObject { { "DeviceAddr",device.DeviceAddr }, @@ -131,6 +193,10 @@ /// <param name="device">绐楀笜</param> public void SendCurtainStatuComand(CommonDevice device) { + if (device == null) + { + return; + } var jObject = new Newtonsoft.Json.Linq.JObject { { "DeviceAddr",device.DeviceAddr }, @@ -169,6 +235,10 @@ /// <param name="device"></param> public void SendDimmableLightStatuComand(CommonDevice device) { + if (device == null) + { + return; + } new System.Threading.Thread(() => { SendSwitchStatuComand(device); @@ -184,6 +254,10 @@ /// <param name="device">绐楀笜</param> private void SendSwitchStatuComand(CommonDevice device) { + if (device == null) + { + return; + } var jObject = new Newtonsoft.Json.Linq.JObject { { "DeviceAddr",device.DeviceAddr }, @@ -209,6 +283,10 @@ /// <param name="device">绐楀笜</param> private void SendLevelStatuComand(CommonDevice device) { + if (device == null) + { + return; + } var jObject = new Newtonsoft.Json.Linq.JObject { { "DeviceAddr",device.DeviceAddr }, @@ -229,5 +307,68 @@ } #endregion + + #region 鈼� 娓╂箍搴___________________________ + + /// <summary> + /// 璇诲彇娓╁害 + /// </summary> + /// <param name="device"></param> + public void SendTemperatureStatuComand(CommonDevice device) + { + if (device == null) + { + return; + } + var jObject = new Newtonsoft.Json.Linq.JObject + { + { "DeviceAddr",device.DeviceAddr }, + { "Epoint", device.DeviceEpoint }, + { "Cluster_ID", (int)Cluster_ID.TemperatureMeasurement }, + { "Command", 108 } + }; + var attriBute = new Newtonsoft.Json.Linq.JArray + { + new Newtonsoft.Json.Linq.JObject + { + { "AttriButeId", (int)AttriButeId.MeasuredValue} + } + }; + var data = new Newtonsoft.Json.Linq.JObject { { "AttriBute", attriBute } }; + jObject.Add("Data", data); + device.Gateway?.Send(("GetDeviceStatus"), jObject.ToString()); + } + + /// <summary> + /// 璇诲彇婀垮害 + /// </summary> + /// <param name="device"></param> + public void SendHumidityStatuComand(CommonDevice device) + { + if (device == null) + { + return; + } + var jObject = new Newtonsoft.Json.Linq.JObject + { + { "DeviceAddr",device.DeviceAddr }, + { "Epoint", device.DeviceEpoint }, + { "Cluster_ID", (int)Cluster_ID.RelativeHumidityMeasurement }, + { "Command", 108 } + }; + var attriBute = new Newtonsoft.Json.Linq.JArray + { + new Newtonsoft.Json.Linq.JObject + { + { "AttriButeId", (int)AttriButeId.MeasuredValue} + } + }; + var data = new Newtonsoft.Json.Linq.JObject { { "AttriBute", attriBute } }; + jObject.Add("Data", data); + device.Gateway?.Send(("GetDeviceStatus"), jObject.ToString()); + } + + #endregion + } } -- Gitblit v1.8.0