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 | 165 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 157 insertions(+), 8 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 97bfe44..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,16 +85,29 @@ /// <param name="device">璁惧</param> public void SendACStatuComand(CommonDevice device) { - SendThermostatStatuComand(device); - SendFanStatuComand(device); + if (device == null) + { + return; + } + new System.Threading.Thread(() => + { + SendFanStatuComand(device); + System.Threading.Thread.Sleep(300); + SendThermostatStatuComand(device); + }) + { IsBackground = true }.Start(); } /// <summary> /// 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 }, @@ -82,7 +145,6 @@ { { "AttriButeId", (int)AttriButeId.CleanStatu} } - }; var data = new Newtonsoft.Json.Linq.JObject { { "AttriBute", attriBute } }; jObject.Add("Data", data); @@ -95,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 }, @@ -115,7 +181,7 @@ }; var data = new Newtonsoft.Json.Linq.JObject { { "AttriBute", attriBute } }; jObject.Add("Data", data); - device.Gateway?.Send(("GetDeviceStatus"), jObject.ToString()); + device.Gateway?.Send("GetDeviceStatus", jObject.ToString()); } #endregion @@ -127,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 }, @@ -165,8 +235,17 @@ /// <param name="device"></param> public void SendDimmableLightStatuComand(CommonDevice device) { - SendSwitchStatuComand(device); - SendLevelStatuComand(device); + if (device == null) + { + return; + } + new System.Threading.Thread(() => + { + SendSwitchStatuComand(device); + System.Threading.Thread.Sleep(300); + SendLevelStatuComand(device); + }) + { IsBackground = true }.Start(); } /// <summary> @@ -175,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 }, @@ -200,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 }, @@ -219,7 +306,69 @@ device.Gateway?.Send(("GetDeviceStatus"), jObject.ToString()); } + #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