From feaf4e79e8a75b277910b5cfb15b4c71d605841b Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期五, 26 三月 2021 10:37:23 +0800
Subject: [PATCH] 2021-3-26-1

---
 HDL_ON/Entity/FunctionList.cs |  143 +++++++++++------------------------------------
 1 files changed, 35 insertions(+), 108 deletions(-)

diff --git a/HDL_ON/Entity/FunctionList.cs b/HDL_ON/Entity/FunctionList.cs
index 7239051..fe72790 100644
--- a/HDL_ON/Entity/FunctionList.cs
+++ b/HDL_ON/Entity/FunctionList.cs
@@ -41,19 +41,8 @@
         /// <returns></returns>
         public List<Function> GetAcList()
         {
-            return Functions.FindAll((obj) => obj.spk == SPK.AcStandard || obj.spk == SPK.AcIr);
-        }
-
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <returns></returns>
-        public List<Function> GetList()
-        {
-            List<Function> list = new List<Function>();
-
-
-            return list;
+            var spkList = SPK.AcSpkList();
+            return Functions.FindAll((obj) => spkList.Contains(obj.spk));
         }
 
         /// <summary>
@@ -61,24 +50,16 @@
         /// </summary>
         public List<Function> GetLightList()
         {
-            return Functions.FindAll((obj) =>
-                        obj.spk == SPK.LightSwitch
-                     || obj.spk == SPK.LightDimming
-                     || obj.spk == SPK.LightRGB
-                     || obj.spk == SPK.LightRGBW
-                     || obj.spk == SPK.LightCCT);
+            var spkList = SPK.LightSpkList();
+            return Functions.FindAll((obj) => spkList.Contains(obj.spk));
         }
         /// <summary>
         /// 绐楀笜鍒楄〃
         /// </summary>
         public List<Function> GetCurtainList()
         {
-            return Functions.FindAll((obj) =>
-                       obj.spk == SPK.CurtainRoller
-                    || obj.spk == SPK.CurtainShades
-                    || obj.spk == SPK.CurtainSwitch
-                    || obj.spk == SPK.CurtainTrietex
-            );
+            var spkList = SPK.CurtainSpkList();
+            return Functions.FindAll((obj) => spkList.Contains(obj.spk));
         }
 
         /// <summary>
@@ -86,7 +67,8 @@
         /// </summary>
         public List<Function> GetFloorHeatingList()
         {
-            return Functions.FindAll((obj) => obj.spk == SPK.FloorHeatStandard);
+            var spkList = SPK.FhSpkList();
+            return Functions.FindAll((obj) => spkList.Contains(obj.spk));
         }
         #region 瀹剁數鍒楄〃 electricals
         /// <summary>
@@ -94,74 +76,11 @@
         /// </summary>
         public List<Function> GetElectricals()
         {
-
-            return Functions.FindAll((obj) => obj.spk == SPK.ElectricFan || obj.spk == SPK.ElectricTuyaFan
-                || obj.spk == SPK.ElectricSocket
-                || obj.spk == SPK.IrLearn
-                || obj.spk == SPK.TvIr
-                || obj.spk == SPK.ElectricTV
-                || obj.spk == SPK.ElectricTuyaAirCleaner
-                || obj.spk == SPK.ElectricTuyaWeepRobot
-                || obj.spk == SPK.ElectricTuyaWaterValve
-                || obj.spk == SPK.ClothesHanger);
+            var spkList = SPK.ElectricalSpkList();
+            return Functions.FindAll((obj) => spkList.Contains(obj.spk));
         }
-        /// <summary>
-        /// 閬ユ帶鍣ㄥ垪琛�
-        /// </summary>
-        /// <returns></returns>
-        public List<Function> GetIrLearinList()
-        {
-            return Functions.FindAll((obj) => obj.spk == SPK.IrLearn);
-        }
-        /// <summary>
-        /// 椋庢墖鍒楄〃
-        /// </summary>
-        public List<Function> GetFanList()
-        {
-            return Functions.FindAll((obj) => obj.spk == SPK.ElectricFan || obj.spk == SPK.ElectricTuyaFan);
-        }
-        /// <summary>
-        /// 鐢佃鍒楄〃
-        /// </summary>
-        public List<Function> GetTVList()
-        {
-            return Functions.FindAll((obj) => obj.spk == SPK.ElectricTV || obj.spk == SPK.TvIr);
-        }
-        /// <summary>
-        /// 瀹剁數鎻掑骇鍒楄〃
-        /// </summary>
-        public List<Function> GetElectricSocketList()
-        {
-            return Functions.FindAll((obj) => obj.spk == SPK.ElectricSocket);
-        }
-        /// <summary>
-        /// 绌烘皵鍑�鍖栧櫒鍒楄〃
-        /// </summary>
-        public List<Function> GetAirCleanerList()
-        {
-            return Functions.FindAll((obj) => obj.spk == SPK.ElectricTuyaAirCleaner);
-        }
-        /// <summary>
-        /// 鎵湴鏈哄櫒浜哄垪琛�
-        /// </summary>
-        public List<Function> GetWeepRobotList()
-        {
-            return Functions.FindAll((obj) => obj.spk == SPK.ElectricTuyaWeepRobot);
-        }
-        /// <summary>
-        /// 姘撮榾鍒楄〃
-        /// </summary>
-        public List<Function> GetWaterValveList()
-        {
-            return Functions.FindAll((obj) => obj.spk == SPK.ElectricTuyaWaterValve);
-        }
-        /// <summary>
-        /// 鍑夐湼鍒楄〃
-        /// </summary>
-        public List<Function> GetClothesHangerList ()
-        {
-            return Functions.FindAll((obj) => obj.spk == SPK.ClothesHanger);
-        }
+    
+      
         /// <summary>
         /// 绾㈠瀹濆垪琛�
         /// </summary>
@@ -176,23 +95,16 @@
         /// </summary>
         public List<Function> GetEnvirSensorsList()
         {
-            return Functions.FindAll((obj) => obj.spk == SPK.SensorPm25
-                    || obj.spk == SPK.SensorCO2
-                    || obj.spk == SPK.SensorTVOC
-                    || obj.spk == SPK.SensorTemperature
-                    || obj.spk == SPK.SensorHumidity
-                    );
+            var spkList = SPK.EnvironSpkList();
+            return Functions.FindAll((obj) => spkList.Contains(obj.spk));
         }
         /// <summary>
         /// 瀹夐槻璁惧鍒楄〃
         /// </summary>
         public List<Function> GetArmSensorList()
         {
-            return Functions.FindAll((obj) => obj.spk == SPK.SensorSmoke
-                    || obj.spk == SPK.SensorWater
-                    || obj.spk == SPK.SensorDoorWindow
-                    || obj.spk == SPK.SensorPir
-            );
+            var spkList = SPK.ArmSensorSpkList();
+            return Functions.FindAll((obj) => spkList.Contains(obj.spk));
         }
 
         public List<Scene> scenes = new List<Scene>();
@@ -201,7 +113,11 @@
         /// 鍔犺浇鍔熻兘鍒楄〃
         /// </summary>
         /// <param name="filePath"></param>
-        public void IniFunctionList(string filePath)
+        /// <param name="checkRepeat">
+        /// <para>鑰冭檻鍒版�ц兘闂杩藉姞姝ゅ彉閲�,鏄惁妫�娴嬮噸澶�,鍙function鏈夋晥</para>
+        /// <para>true:褰撻噸澶嶅瓨鍦ㄦ椂,鏇挎崲鎺�</para>
+        /// <para>false:鐩存帴鏃犳潯浠舵坊鍔�</para></param>
+        public void IniFunctionList(string filePath, bool checkRepeat = false)
         {
             // todo 澧炲姞璁惧锛屽鍔犲姛鑳借繘鍔熻兘鍒楄〃
             if (filePath.StartsWith("FunctionData_"))
@@ -214,10 +130,21 @@
                     FileUtlis.Files.DeleteFile(filePath);
                     return;
                 }
-
-
+                if (checkRepeat == true)
+                {
+                    //妫�娴嬮噸澶�
+                    for (int i = 0; i < Functions.Count; i++)
+                    {
+                        if (Functions[i].deviceId == tempFunction.deviceId)
+                        {
+                            //鍏堢Щ闄ゆ帀鍐嶅姞
+                            Functions.RemoveAt(i);
+                            Functions.Add(tempFunction);
+                            return;
+                        }
+                    }
+                }
                 Functions.Add(tempFunction);
-
             }
             if (filePath.StartsWith("SceneData_"))
             {

--
Gitblit v1.8.0