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