From 068c68295cad1967f7aafb4e5e951260ef03d4ce Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期五, 09 七月 2021 09:16:43 +0800
Subject: [PATCH] 状态属性更改,不要轻易合并

---
 HDL_ON/Entity/Function/Function.cs |  103 ++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 85 insertions(+), 18 deletions(-)

diff --git a/HDL_ON/Entity/Function/Function.cs b/HDL_ON/Entity/Function/Function.cs
index 91adfe7..d918442 100644
--- a/HDL_ON/Entity/Function/Function.cs
+++ b/HDL_ON/Entity/Function/Function.cs
@@ -134,7 +134,6 @@
             else
             {
                 attr.state = value.ToString();
-                attr.curValue = value.ToString();
             }
             return true;
         }
@@ -271,16 +270,21 @@
                             max = 1,
                             min = 0,
                         };
-                        _trait_on_off.curValue = "off";
+                        _trait_on_off.state = "off";
                     }
                 }
-                if(_trait_on_off.curValue.ToString() != "on"&& _trait_on_off.curValue.ToString() != "off" && _trait_on_off.curValue.ToString() != "stop")
+                if(_trait_on_off.state.ToString() != "on"&& _trait_on_off.state.ToString() != "off" && _trait_on_off.state.ToString() != "stop")
                 {
-                    _trait_on_off.curValue = "off";
+                    _trait_on_off.state = "off";
                 }
                 return _trait_on_off;
             }
         }
+        /// <summary>
+        /// 鍔熻兘鐨勫睘鎬х姸鎬佸垪琛�
+        /// </summary>
+        public List<AttributesStatus> status = new List<AttributesStatus>();
+
 
         /// <summary>
         /// 浣跨敤娆℃暟
@@ -422,6 +426,19 @@
             var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this));
             FileUtlis.Files.WriteFileByBytes(savePath, ssd);
         }
+
+        /// <summary>
+        /// 閫氳繃鐘舵�佸垪琛ㄧ粍瑁呭睘鎬ч噷闈㈢殑鐘舵��
+        /// </summary>
+        public void AssembleStatus()
+        {
+            foreach(var sta in status)
+            {
+                SetAttrState(sta.key, sta.value);
+            }
+        }
+
+
         /// <summary>
         /// 淇濆瓨鎴块棿缁戝畾淇℃伅
         /// </summary>
@@ -501,26 +518,48 @@
                     case FunctionAttributeKey.FanSpeed:
                     case FunctionAttributeKey.Percent:
                     //case FunctionAttributeKey.FadeTime:
-                        if (attr.curValue.ToString() == "{}")
+                        if (attr.state.ToString() == "{}")
                         {
                             if (attr.key == FunctionAttributeKey.OnOff)
                             {
-                                attr.curValue = "off";
+                                attr.state = "off";
                             }
-                            else
+                            else if (attr.key == FunctionAttributeKey.Mode )
                             {
-                                attr.curValue = "0";
+                                if (DB_ResidenceData.Instance.GatewayType == 0)
+                                {
+                                    attr.state = "0";
+                                }
+                                else
+                                {
+                                    if (SPK.AcSpkList().Contains(spk))
+                                    {
+                                        attr.state = "cool";
+                                    }
+                                    else if (SPK.FhSpkList().Contains(spk))
+                                    {
+                                        attr.state = "day";
+                                    }
+                                }
+                            }
+                            else 
+                            {
+                                attr.state = "0";
                             }
                         }
                         if (attr.key == FunctionAttributeKey.SetTemp)
                         {
                             double vv = 16;
-                            Double.TryParse(attr.curValue.ToString(), out vv);
+                            Double.TryParse(attr.state.ToString(), out vv);
+                            if (vv == 0)
+                            {
+                                vv = 26;
+                            }
                             sFunc.status.Add(new SceneFunctionStatus() { key = attr.key, value = Convert.ToInt32(vv).ToString() });
                         }
                         else
                         {
-                            sFunc.status.Add(new SceneFunctionStatus() { key = attr.key, value = attr.curValue.ToString() });
+                            sFunc.status.Add(new SceneFunctionStatus() { key = attr.key, value = attr.state.ToString() });
                         }
                         break;
                 }
@@ -638,7 +677,7 @@
         public List<AttributesStatus> status = new List<AttributesStatus>();
     }
     /// <summary>
-    /// a鍗忚鎺у埗鍔ㄤ綔鏁版嵁
+    /// 鍔熻兘灞炴�х姸鎬�
     /// </summary>
     public class AttributesStatus
     {
@@ -653,6 +692,20 @@
         /// </summary>
         public string value = "";
     }
+
+    public class attttttt
+    {
+        /// <summary>
+        /// 褰撳墠鐘舵��
+        /// </summary>
+        public string state = "";
+        /// <summary>
+        /// 褰撳墠鍊�
+        /// </summary>
+        public object curValue = new object();
+
+    }
+
 
     /// <summary>
     /// 鍔熻兘灞炴��
@@ -685,11 +738,8 @@
         /// 褰撳墠鐘舵��
         /// </summary>
         public string state = "";
-        /// <summary>
-        /// 褰撳墠鍊�
-        /// </summary>
-        public object curValue = new object();
     }
+
     /// <summary>
     /// 鍔熻兘灞炴�ч敭鍚嶅垪琛�
     /// </summary>
@@ -751,6 +801,7 @@
         /// 绌鸿皟銆佸湴鐑�//app鑷姞
         /// </summary>
         public const string TempType = "temperature_type";
+
         /// <summary>
         /// 鏃堕棿鏍囪
         /// 鍦扮儹//app鑷姞
@@ -861,6 +912,10 @@
         /// 婀垮害
         /// </summary>
         public const string Humidity = "humidity";
+        /// <summary>
+        /// 娓╁害
+        /// </summary>
+        public const string Temperature = "temperature";
         /// <summary>
         /// 瀹ゅ唴娓╁害
         /// </summary>
@@ -1164,7 +1219,7 @@
         /// <summary>
         /// 瓒呭0娉紶鎰熷櫒
         /// </summary>
-        public const string SensoruUtrasonic = "sensor.ultrasonic";
+        public const string SensorUtrasonic = "sensor.ultrasonic";
         /// <summary>
         /// 锛堝共鎺ョ偣锛�
         /// </summary>
@@ -1173,7 +1228,6 @@
         /// 姣背娉紶鎰熷櫒
         /// </summary>
         public const string SenesorMegahealth = "sensor.megahealth";
-
         /// <summary>
         /// 瀹夐槻浼犳劅鍣╯pk鍒楄〃
         /// </summary>
@@ -1217,6 +1271,13 @@
         /// 婀垮害浼犳劅鍣�
         /// </summary>
         public const string SensorHumidity = "sensor.humidity";
+        /// <summary>
+        /// 鐜浼犳劅鍣�
+        /// 鐜妫�娴嬩紶鎰熷櫒
+        /// 鐗规畩绫籹pk
+        /// 璇pk鍔熻兘鏄幆澧冧紶鎰熷櫒鍔熻兘鐨勯泦鎴�
+        /// </summary>
+        public const string SensorEnvironment = "sensor.environment";
 
         /// <summary>
         /// 鐜浼犳劅鍣╯pk鍒楄〃
@@ -1230,6 +1291,7 @@
             spkList.Add(SensorCO2);
             spkList.Add(SensorTVOC);
             spkList.Add(SensorHumidity);
+            spkList.Add(SensorEnvironment);
             return spkList;
         }
         #endregion
@@ -1336,7 +1398,6 @@
 
         #endregion
 
-
         #region 璁惧绫�
         /// <summary>
         /// 绾㈠瀹�
@@ -1394,6 +1455,12 @@
         }
         #endregion
 
+        /// <summary>
+        /// 娌℃湁鐘舵�佹樉绀虹殑鍔熻兘spk鍒楄〃
+        /// </summary>
+        public static List<string> NotStatusSpkList = new List<string> {
+            ElectricTV, FanIr, TvIr, TvXmIr, StbIr, PjtIr, IrLearn
+        };
 
         /// <summary>
         /// 绗笁鏂瑰搧鐗屽垪琛�

--
Gitblit v1.8.0