From 5ec581e5d37b108fc9d59e89afd8e94e21b32080 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期二, 17 十月 2023 17:33:36 +0800
Subject: [PATCH] 2023年10月17日17:33:33

---
 HDL_ON/Entity/Function/Function.cs |  116 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 110 insertions(+), 6 deletions(-)

diff --git a/HDL_ON/Entity/Function/Function.cs b/HDL_ON/Entity/Function/Function.cs
index 7f37cae..e07df39 100644
--- a/HDL_ON/Entity/Function/Function.cs
+++ b/HDL_ON/Entity/Function/Function.cs
@@ -108,6 +108,7 @@
         /// 鑾峰彇灞炴�у綋鍓嶇姸鎬�
         /// </summary>
         /// <param name="key"></param>
+        /// <param name="defaultValue">榛樿鍊�</param>
         /// <returns></returns>
         public string GetAttrState(string key, string defaultValue = "0")
         {
@@ -120,7 +121,7 @@
             if (string.IsNullOrEmpty(attrState.state))
             {
                 //浜岀骇鏌ヨkeyValue鍊�
-                return GetOriginalState(key);
+                return GetOriginalState(key, defaultValue);
             }
             return attrState.state;
         }
@@ -130,13 +131,14 @@
         /// 榛樿鍊硷細0
         /// </summary>
         /// <param name="key">璇泙瀹氫箟鐨勫睘鎬у��</param>
+        /// <param name="defaultValue">榛樿鍊�</param>
         /// <returns></returns>
-        public string GetOriginalState(string key)
+        public string GetOriginalState(string key, string defaultValue)
         {
             var originalState = status.Find((s) => s.key == key.ToString());
             if (originalState == null || string.IsNullOrEmpty(originalState.value))
             {
-                return "0";
+                return defaultValue;
             }
             return originalState.value;
         }
@@ -449,7 +451,7 @@
         public bool online {
             get
             {
-                if (spk == SPK.AirSwitchP3)
+                if (spk == SPK.AirSwitchP3|| spk == SPK.ElectricalTvHisense)
                 {
                     return _online;
                 }
@@ -860,6 +862,43 @@
                     }
                 }
             }
+            else if (spk == SPK.MusicStandard || spk == SPK.AvMusic)
+            {
+                list.Add(new FunctionAttributes
+                {
+                    key = FunctionAttributeKey.OnOff,
+                    curValue = string.Empty,
+                });
+                list.Add(new FunctionAttributes
+                {
+                    key = FunctionAttributeKey.Volume,
+                    curValue = string.Empty,
+                });
+                list.Add(new FunctionAttributes
+                {
+                    key = FunctionAttributeKey.SongName,
+                    curValue = string.Empty,
+                });
+
+            }
+            else if (spk == SPK.ElectricalTvHisense)
+            {
+                list.Add(new FunctionAttributes
+                {
+                    key = FunctionAttributeKey.OnOff,
+                    curValue = string.Empty,
+                });
+                list.Add(new FunctionAttributes
+                {
+                    key = FunctionAttributeKey.SetVolume,
+                    curValue = string.Empty,
+                });
+                list.Add(new FunctionAttributes
+                {
+                    key = FunctionAttributeKey.Signal,
+                    curValue = string.Empty,
+                });
+            }
             else
             {
                 list.AddRange(attributes);
@@ -867,6 +906,10 @@
 
             foreach (var attr in list)
             {
+                if(attr.key == FunctionAttributeKey.ColorfulBegin || attr.key == FunctionAttributeKey.ColorfulEnd || attr.key == FunctionAttributeKey.ColorfulTime)
+                {
+                    continue;
+                }
                 //绐楀笜鍚屾椂鍙戦�佸紑鍏宠窡鐧惧垎姣斾細鏈夐棶棰橈紝
                 if(spk == SPK.CurtainRoller || spk == SPK.CurtainTrietex || spk == SPK.CurtainDream)
                 {
@@ -936,6 +979,10 @@
 
                 switch (attr.key)
                 {
+                    case FunctionAttributeKey.SongName:
+                    case FunctionAttributeKey.Volume:
+                    case FunctionAttributeKey.SetVolume:
+                    case FunctionAttributeKey.Signal:
                     case FunctionAttributeKey.OnOff:
                     case FunctionAttributeKey.Brightness:
                     case FunctionAttributeKey.Mode:
@@ -1013,6 +1060,11 @@
         /// 鏇存柊鏃堕棿
         /// </summary>
         public DateTime refreshTime = DateTime.MinValue;
+        /// <summary>
+        /// 鏈�鍚庢洿鏂扮姸鎬佺殑鏃堕棿
+        /// </summary>
+        [Newtonsoft.Json.JsonIgnore]
+        public DateTime updateTime = DateTime.MinValue;
 
         /// <summary>
         /// 鑾峰彇鏈湴鎺у埗鏁版嵁
@@ -1573,6 +1625,32 @@
         /// </summary>
         public const string TotalElectricity = "total_electricity";
 
+        /// <summary>
+        /// 娴蜂俊tv闊抽噺
+        /// </summary>
+        public const string SetVolume = "set_volume";
+        /// <summary>
+        /// 娴蜂俊tv淇″彿婧�(0:LiveTV;2:PS;3:HDMI_1;4:HDMI_2;5:HDMI_3;6:HDMI_4;11:AV;)
+        /// </summary>
+        public const string Signal = "signal";
+
+        /// <summary>
+        /// 闊充箰闊抽噺
+        /// </summary>
+        public const string Volume = "volume";
+        /// <summary>
+        /// 姝屾洸鍚�
+        /// </summary>
+        public const string SongName = "song_name";
+        /// <summary>
+        /// 鍒楄〃鍚�
+        /// </summary>
+        public const string PlaylistName = "playlist_name";
+        /// <summary>
+        /// 鎾斁璺緞
+        /// </summary>
+        public const string Url = "url";
+
 
     }
     /// <summary>
@@ -1697,6 +1775,11 @@
         /// </summary>
         public const string Ev_Ipcam = "security.ipcam.ez";
         /// <summary>
+        /// 褰遍煶涓帶
+        /// </summary>
+        public const string AvZkAiks = "av.zk.aiks";
+       
+        /// <summary>
         /// 钀ょ煶瑙嗛闂ㄩ攣spk鍒楄〃
         /// </summary>
         /// <returns></returns>
@@ -1704,6 +1787,20 @@
         {
             var list = new List<string>();
             list.Add(VideoDoorLock);
+            return list;
+        }
+
+      
+        /// <summary>
+        /// 褰遍煶涓帶spk鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        public static List<string> GetVideoControlsSPKList()
+        {
+            var list = new List<string>
+            {
+                AvZkAiks
+            };
             return list;
         }
 
@@ -2102,6 +2199,7 @@
             spkList.Add(SensorEnvironment2);
             spkList.Add(SensorEnvironment3);
             spkList.Add(SensorHcho);
+            spkList.Add(SensorLight);
             return spkList;
         }
         /// <summary>
@@ -2118,6 +2216,7 @@
             spkList.Add(SensorTVOC);
             spkList.Add(SensorHumidity);
             spkList.Add(SensorHcho);
+            spkList.Add(SensorLight);
             return spkList;
         }
 
@@ -2131,6 +2230,7 @@
             spkList.Add(SensorEnvironment); spkList.Add(SensorEnvironmentHailin);
             spkList.Add(SensorEnvironment2);
             spkList.Add(SensorEnvironment3);
+         
             return spkList;
         }
 
@@ -2138,6 +2238,10 @@
         #endregion
 
         #region 瀹剁數
+        /// <summary>
+        /// 娴蜂俊鐢佃
+        /// </summary>
+        public const string ElectricalTvHisense = "electrical.tv.hisense";
         /// <summary>
         /// 瀹剁數銆佹彃搴�
         /// </summary>
@@ -2255,8 +2359,8 @@
             spkList.Add(ElectricTuyaWeepRobot2);
             spkList.Add(ElectricTuyaWaterValve);
             spkList.Add(ElectricTuyaWaterValve2);
-            //spkList.Add(AirSwitch);
-            //spkList.Add(AirSwitchP3);
+            spkList.Add(AirSwitch);
+            spkList.Add(ElectricalTvHisense);
             return spkList;
         }
 

--
Gitblit v1.8.0