From 2d5cd35af7437ad4015d38594d8c721dc6166b11 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期二, 29 八月 2023 09:22:38 +0800
Subject: [PATCH] Merge branch 'wjc' of http://59.41.255.150:6688/r/~wxr/OnPro into wjc

---
 HDL_ON/Entity/Function/Function.cs |  262 ++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 243 insertions(+), 19 deletions(-)

diff --git a/HDL_ON/Entity/Function/Function.cs b/HDL_ON/Entity/Function/Function.cs
index d17fa05..2ef2075 100644
--- a/HDL_ON/Entity/Function/Function.cs
+++ b/HDL_ON/Entity/Function/Function.cs
@@ -171,6 +171,9 @@
                 string iconPath = spk.Replace(".", "");
                 switch (spk)
                 {
+                    case SPK.AirSwitchP3:
+                        iconPath = "electricalbreaker";
+                        break;
                     case SPK.PanelSocket:
                         iconPath = "electricalsocket";
                         break;
@@ -442,20 +445,52 @@
         /// </summary>
         public bool collect = false;
 
-        private bool _online = false;
-        /// <summary>
-        /// 鏄惁鍦ㄧ嚎
-        /// </summary>
-        public bool online
-        {
+        private bool _online;
+        public bool online {
             get
             {
+                if (spk == SPK.AirSwitchP3)
+                {
+                    return _online;
+                }
                 return true;
             }
             set
             {
                 _online = value;
             }
+        }
+        ///// <summary>
+        ///// 鏄惁鍦ㄧ嚎
+        ///// </summary>
+        //public bool online
+        //{
+        //    get
+        //    {
+        //        if(spk == SPK.AirSwitchP3)
+        //        {
+        //            return _online;
+        //        }
+        //        return true;
+        //    }
+        //    set
+        //    {
+        //        _online = value;
+        //    }
+        //}
+
+        public bool isOnline()
+        {
+            if (spk == SPK.AirSwitchP3)
+            {
+                return online;
+            }
+            return true;
+        }
+
+        public void setOnine(bool isOnline)
+        {
+            online = isOnline;
         }
 
         /// <summary>
@@ -727,9 +762,9 @@
         /// <summary>
         /// 淇濆瓨鎴块棿缁戝畾淇℃伅
         /// </summary>
-        public void UpdataRoomIds()
+        public async void UpdataRoomIds()
         {
-            new System.Threading.Thread(() =>
+            new System.Threading.Thread( () =>
             {
                 var pack = ApiUtlis.Ins.HttpRequest.UpdataDevcieBindRoomInfo(this);
                 //鐩存帴淇濆瓨鏈湴锛�
@@ -810,10 +845,10 @@
                     {
                         foreach (var temp in gc.sids)
                         {
-                            var light = FunctionList.List.GetLightList().Find((obj) => obj.sid == temp.sid);
-                            if (light != null)
+                            var tempDevice = FunctionList.List.GetLightList().Find((obj) => obj.sid == temp.sid);
+                            if (tempDevice != null)
                             {
-                                foreach (var attr in light.attributes)
+                                foreach (var attr in tempDevice.attributes)
                                 {
                                     if (list.Find((obj) => obj.key == attr.key) == null)
                                     {
@@ -825,6 +860,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);
@@ -832,6 +904,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)
                 {
@@ -847,33 +923,64 @@
                     sFunc.type = "5";
                 }
 
-                string us = "";
                 switch (attr.key)
                 {
                     case FunctionAttributeKey.SetTemp:
+                        var tt = GetAttribute(FunctionAttributeKey.TempType);
+                        if (tt == null)
+                        {
+                            attr.unit = "掳C";
+                        }
+                        else
+                        {
+                            if (tt.unit == string.Empty)
+                            {
+                                attr.unit = "掳C";
+                            }
+                            else
+                            {
+                                if (tt.unit == "C")
+                                {
+                                    attr.unit = "掳C";
+                                }
+                                else if (tt.unit == "F")
+                                {
+                                    attr.unit = "掳F";
+                                }
+                                else
+                                {
+                                    attr.unit = tt.unit;
+                                }
+                            }
+                        }
+                        break;
                     case FunctionAttributeKey.RoomTemp:
-                        us = "掳C";
+                        attr.unit = "掳C";
                         var tempType = attributes.Find((obj) => obj.key == FunctionAttributeKey.TempType);
                         if (tempType != null)
                         {
-                            us = tempType.curValue.ToString();
+                            attr.unit = tempType.curValue.ToString();
                         }
                         break;
                     case FunctionAttributeKey.Percent:
                     case FunctionAttributeKey.Brightness:
-                        us = "%";
+                        attr.unit = "%";
                         break;
                     case FunctionAttributeKey.CCT:
-                        us = "K";
+                        attr.unit = "K";
                         break;
                     case FunctionAttributeKey.Angle:
-                        us = "掳";
+                        attr.unit = "掳";
                         break;
                 }
 
 
                 switch (attr.key)
                 {
+                    case FunctionAttributeKey.SongName:
+                    case FunctionAttributeKey.Volume:
+                    case FunctionAttributeKey.SetVolume:
+                    case FunctionAttributeKey.Signal:
                     case FunctionAttributeKey.OnOff:
                     case FunctionAttributeKey.Brightness:
                     case FunctionAttributeKey.Mode:
@@ -931,13 +1038,13 @@
                                 vv = 26;
                             }
                             sFunc.status.Add(new SceneFunctionStatus() {
-                                UintString = us,
+                                UintString = attr.unit,
                                 key = attr.key, value = Convert.ToInt32(vv).ToString(), max = attr.max, min = attr.min }) ;
                         }
                         else
                         {
                             sFunc.status.Add(new SceneFunctionStatus() {
-                                UintString = us,
+                                UintString = attr.unit,
                                 key = attr.key, value = attr.curValue.ToString(), max = attr.max, min = attr.min });
                         }
                         break;
@@ -1085,6 +1192,10 @@
         /// 浜戠璐熻矗鐢熸垚
         /// </summary>
         public string deviceId = "0";
+        /// <summary>
+        /// 鍦ㄧ嚎鐘舵��
+        /// </summary>
+        public bool online = true;
         public List<AttributesStatus> status = new List<AttributesStatus>();
     }
     /// <summary>
@@ -1155,6 +1266,79 @@
     /// </summary>
     public static class FunctionAttributeKey
     {
+        #region 涓夌浉绌哄紑灞炴��
+        /// <summary>
+        /// A鐩稿姛鐜�
+        /// </summary>
+        public const string PowerA = "power_a";
+        /// <summary>
+        /// B鐩稿姛鐜�
+        /// </summary>
+        public const string PowerB = "power_b";
+        /// <summary>
+        /// C鐩稿姛鐜�
+        /// </summary>
+        public const string PowerC = "power_c";
+        /// <summary>
+        /// A鐩哥數鍘�
+        /// </summary>
+        public const string VoltageA = "voltage_a";
+        /// <summary>
+        /// B鐩哥數鍘�
+        /// </summary>
+        public const string VoltageB = "voltage_b";
+        /// <summary>
+        /// C鐩哥數鍘�
+        /// </summary>
+        public const string VoltageC = "voltage_c";
+        /// <summary>
+        /// A鐩哥數娴�
+        /// </summary>
+        public const string CurrentA = "current_a";
+        /// <summary>
+        /// B鐩哥數娴�
+        /// </summary>
+        public const string CurrentB = "current_b";
+        /// <summary>
+        /// C鐩哥數娴�
+        /// </summary>
+        public const string CurrentC = "current_c";
+        /// <summary>
+        /// A鐩告俯搴�
+        /// </summary>
+        public const string TempA = "temp_a";
+        /// <summary>
+        /// B鐩告俯搴�
+        /// </summary>
+        public const string TempB = "temp_b";
+        /// <summary>
+        /// C鐩告俯搴�
+        /// </summary>
+        public const string TempC = "temp_c";
+        /// <summary>
+        /// 杩囨祦鍊�
+        /// </summary>
+        public const string MaxCurrent = "max_current";
+        /// <summary>
+        /// 杩囨俯鍊�
+        /// </summary>
+        public const string MaxTemp = "max_temp";
+        /// <summary>
+        /// A鐩哥數閲�
+        /// </summary>
+        public const string ElectricityA = "electricity_a";
+        /// <summary>
+        /// B鐩哥數閲�
+        /// </summary>
+        public const string ElectricityB = "electricity_b";
+        /// <summary>
+        /// C鐩哥數閲�
+        /// </summary>
+        public const string ElectricityC = "electricity_c";
+
+        #endregion
+
+
         public const string _null = "";
         /// <summary>
         /// 瀹夐槻甯冮槻鐘舵��
@@ -1434,6 +1618,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>
@@ -1561,6 +1771,7 @@
         /// 褰遍煶涓帶
         /// </summary>
         public const string AvZkAiks = "av.zk.aiks";
+       
         /// <summary>
         /// 钀ょ煶瑙嗛闂ㄩ攣spk鍒楄〃
         /// </summary>
@@ -1571,6 +1782,8 @@
             list.Add(VideoDoorLock);
             return list;
         }
+
+      
         /// <summary>
         /// 褰遍煶涓帶spk鍒楄〃
         /// </summary>
@@ -1786,6 +1999,8 @@
         {
             var spkList = new List<string>();
             spkList.Add(ElectricEnergy);
+            spkList.Add(AirSwitch);
+            spkList.Add(AirSwitchP3);
             return spkList;
         }
         #endregion
@@ -2014,6 +2229,10 @@
 
         #region 瀹剁數
         /// <summary>
+        /// 娴蜂俊鐢佃
+        /// </summary>
+        public const string ElectricalTvHisense = "electrical.tv.hisense";
+        /// <summary>
         /// 瀹剁數銆佹彃搴�
         /// </summary>
         public const string ElectricSocket = "electrical.socket";
@@ -2074,6 +2293,10 @@
         /// 鏅鸿兘绌哄紑
         /// </summary>
         public const string AirSwitch = "electrical.breaker";
+        /// <summary>
+        /// 涓夌浉鏅鸿兘绌哄紑
+        /// </summary>
+        public const string AirSwitchP3 = "electrical.breakerP3";
 
         #region 娑傞甫
         /// <summary>
@@ -2127,6 +2350,7 @@
             spkList.Add(ElectricTuyaWaterValve);
             spkList.Add(ElectricTuyaWaterValve2);
             spkList.Add(AirSwitch);
+            spkList.Add(ElectricalTvHisense);
             return spkList;
         }
 

--
Gitblit v1.8.0