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/Common/SceneTargetDeviceUI.cs |  138 +++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 130 insertions(+), 8 deletions(-)

diff --git a/ZigbeeApp/Shared/Common/SceneTargetDeviceUI.cs b/ZigbeeApp/Shared/Common/SceneTargetDeviceUI.cs
index 0f3e214..f9dddbd 100644
--- a/ZigbeeApp/Shared/Common/SceneTargetDeviceUI.cs
+++ b/ZigbeeApp/Shared/Common/SceneTargetDeviceUI.cs
@@ -12,7 +12,7 @@
     public class SceneTargetDeviceUI
     {
         /// <summary>
-        /// 鍦烘櫙娣诲姞瀵硅薄鐨勭被鍨� 榛樿0璁惧 1鏃堕棿娈�  2鍦烘櫙
+        /// 鍦烘櫙娣诲姞瀵硅薄鐨勭被鍨� 榛樿0璁惧 2鏃堕棿娈�  1鍏朵粬鍦烘櫙
         /// </summary>
         public int Type = 0;
         /// <summary>
@@ -25,35 +25,157 @@
         /// Type=0 瀛樺湪
         /// </summary>
         public DeviceUI DeviceUI = new DeviceUI();
+
         /// <summary>
+        /// Type=0銆�1銆�2 瀛樺湪
         /// 寤舵椂鏃堕棿
-        /// Type=1 瀛樺湪
         /// </summary>
         public int DelayTime = 0;
         /// <summary>
+        /// 褰揟ype=2鏃跺瓨鍦�
+        /// 寤舵椂鎵ц搴忓彿锛岃〃绀虹鍑犱釜寤舵椂鍔ㄤ綔
+        /// </summary>
+        public int DelayTimeSerialNumber = 0;
+
+        /// <summary>
         /// 閫夋嫨鐨勫満鏅�
-        /// Type=2 瀛樺湪
+        /// Type=1 瀛樺湪
         /// </summary>
         public SceneUI SceneUI = new SceneUI();
         /// <summary>
         /// 浣滀负鎴愬憳鐨勫叾浠栧満鏅痠d銆�
-        /// Type=2 瀛樺湪
+        /// Type=1 瀛樺湪
         /// </summary>
         public int ElseScenesId = 0;
         /// <summary>
         /// 鍦烘櫙鍚嶇О
-        /// Type=2 瀛樺湪
+        /// Type=1 瀛樺湪
         /// </summary>
         public string SceneName = string.Empty;
         /// <summary>
         /// 鍞竴鏍囪瘑--HashCode
         /// DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo)
         /// </summary>
-        public string SceneTargetDeviceUIID
+        public string SceneTargetDeviceUIID = Guid.NewGuid().ToString();
+
+        /// <summary>
+        /// GetDeviceStatu
+        /// </summary>
+        /// <returns></returns>
+        public string GetDeviceStatu()
         {
-            get
+            if (DeviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.OnOffOutput)
             {
-                return GetHashCode().ToString();
+                if (TaskList.Count == 0)
+                {
+                    return null;
+                }
+                if (TaskList[0].Data1 == 1)
+                {
+                    return Language.StringByID(R.MyInternationalizationString.Open);
+                }
+                return Language.StringByID(R.MyInternationalizationString.Shut);
+            }
+            else if (DeviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.AirSwitch)
+            {
+                if (TaskList.Count == 0)
+                {
+                    return null;
+                }
+                if (TaskList[0].Data1 == 1)
+                {
+                    return Language.StringByID(R.MyInternationalizationString.Open);
+                }
+                return Language.StringByID(R.MyInternationalizationString.Shut);
+            }
+            else if (DeviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.DimmableLight)
+            {
+                if (TaskList.Count == 0)
+                {
+                    return null;
+                }
+                if (TaskList[0].Data1 == 0)
+                {
+                    return Language.StringByID(R.MyInternationalizationString.Shut);
+                }
+                return $"{(int)(TaskList[0].Data1 * 1.0 / 254 * 100)}%";
+            }
+            else if (DeviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.WindowCoveringDevice)
+            {
+                if (TaskList.Count == 0)
+                {
+                    return null;
+                }
+                if (TaskList[0].Data1 == 1)
+                {
+                    return Language.StringByID(R.MyInternationalizationString.Shut);
+                }
+                return $"{TaskList[0].Data2}%";
+            }
+            else if (DeviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.Thermostat)
+            {
+                //娓╁害锛屾ā寮忥紝椋庨��
+                string tempareture = string.Empty;
+                string model = string.Empty;
+                string wind = string.Empty;
+                if (TaskList.Count == 0)
+                {
+                    return null;
+                }
+                foreach(var taskListInfo in TaskList)
+                {
+                    if(taskListInfo.Data1==3)
+                    {
+                        if(taskListInfo.Data2==0)
+                        {
+                            return Language.StringByID(R.MyInternationalizationString.Shut);
+                        }
+                        else if(taskListInfo.Data2==1)
+                        {
+                            model = Language.StringByID(R.MyInternationalizationString.Mode_Auto);
+                        }
+                        else if(taskListInfo.Data2==3)
+                        {
+                            model = Language.StringByID(R.MyInternationalizationString.Mode_Cool);
+                        }
+                        else if (taskListInfo.Data2 == 4)
+                        {
+                            model = Language.StringByID(R.MyInternationalizationString.Mode_Heat);
+                        }
+                        else if (taskListInfo.Data2 == 7)
+                        {
+                            model = Language.StringByID(R.MyInternationalizationString.Mode_FanOnly);
+                        }
+                        else if (taskListInfo.Data2 == 8)
+                        {
+                            model = Language.StringByID(R.MyInternationalizationString.Mode_Dry);
+                        }
+                    }
+                    else if(taskListInfo.Data1==4 || taskListInfo.Data1==5)
+                    {
+                        tempareture = $"{ taskListInfo.Data2/100} 鈩�";
+                    }
+                    else if (taskListInfo.Data1 == 6)
+                    {
+                        if (taskListInfo.Data2 == 1)
+                        {
+                            wind = Language.StringByID(R.MyInternationalizationString.Fan_Low);
+                        }
+                        else if(taskListInfo.Data2 ==2)
+                        {
+                            wind = Language.StringByID(R.MyInternationalizationString.Fan_Middle);
+                        }
+                        else if (taskListInfo.Data2 == 3)
+                        {
+                            wind = Language.StringByID(R.MyInternationalizationString.Fan_Height);
+                        }
+                    }
+                }
+                return $"{tempareture},{model},{wind}";
+            }
+            else
+            {
+                return null;
             }
         }
     }

--
Gitblit v1.8.0