From 66a9965c44ecc32a6696abca876ab9d1cd091584 Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期五, 28 二月 2020 15:25:13 +0800
Subject: [PATCH] 2020.2.28

---
 ZigbeeApp/Shared/Phone/Device/DeviceLogic/ReadDeviceAttributeLogic.cs |  111 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 105 insertions(+), 6 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Device/DeviceLogic/ReadDeviceAttributeLogic.cs b/ZigbeeApp/Shared/Phone/Device/DeviceLogic/ReadDeviceAttributeLogic.cs
index 97bfe44..6171782 100644
--- a/ZigbeeApp/Shared/Phone/Device/DeviceLogic/ReadDeviceAttributeLogic.cs
+++ b/ZigbeeApp/Shared/Phone/Device/DeviceLogic/ReadDeviceAttributeLogic.cs
@@ -35,8 +35,17 @@
         /// <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>
@@ -45,6 +54,10 @@
         /// <param name="device">璁惧</param>
         private void SendThermostatStatuComand(CommonDevice device)
         {
+            if (device == null)
+            {
+                return;
+            }
             var jObject = new Newtonsoft.Json.Linq.JObject
             {
                 { "DeviceAddr",device.DeviceAddr },
@@ -82,7 +95,6 @@
                {
                  { "AttriButeId", (int)AttriButeId.CleanStatu}
                }
-
             };
             var data = new Newtonsoft.Json.Linq.JObject { { "AttriBute", attriBute } };
             jObject.Add("Data", data);
@@ -95,6 +107,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 +131,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 +143,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 +185,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 +204,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 +233,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 +256,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