From 43b0d5870d528f23ecd6aeceb6cfd4325188b46f Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期四, 01 七月 2021 15:50:43 +0800
Subject: [PATCH] Revert "1"

---
 HDL_ON/Entity/Function/Sensor.cs |  527 +++++++++++++++++++++++-----------------------------------
 1 files changed, 211 insertions(+), 316 deletions(-)

diff --git a/HDL_ON/Entity/Function/Sensor.cs b/HDL_ON/Entity/Function/Sensor.cs
old mode 100755
new mode 100644
index e482294..585a617
--- a/HDL_ON/Entity/Function/Sensor.cs
+++ b/HDL_ON/Entity/Function/Sensor.cs
@@ -3,358 +3,253 @@
 
 namespace HDL_ON.Entity
 {
-    public class Sensor :Function
+    public class Sensor
     {
-        public Sensor()
-        {
-
-        }
-        [Newtonsoft.Json.JsonIgnore]
-        public int functionTypeNameId
-        {
-            get
-            {
-                int nameId = 0;
-                switch (functionType)
-                {
-                    case FunctionType.PM25:
-                        nameId = StringId.PM25;
-                        break;
-                    case FunctionType.CO2:
-                        nameId = StringId.CO2;
-                        break;
-                    case FunctionType.Temp:
-                        nameId = StringId.Temp;
-                        break;
-                    case FunctionType.TVOC:
-                        nameId = StringId.TVOC;
-                        break;
-                    case FunctionType.Humidity:
-                        nameId = StringId.Humidity;
-                        break;
-                }
-                return nameId;
-            }
-        }
-
-        [Newtonsoft.Json.JsonIgnore]
-        public FunctionAttributes trait_values;
         /// <summary>
-        /// 鍊�
+        /// 鑾峰彇鍚嶇О鏂囨湰ID
         /// </summary>
-        [Newtonsoft.Json.JsonIgnore]
-        public double values
+        /// <param name="spk"></param>
+        /// <returns></returns>
+        public int GetFunctionTypeNameId(string spk)
         {
-            get
+            int nameId = 0;
+            switch (spk)
             {
-                if (trait_values == null)
-                {
-                    trait_values = attributes.Find((obj) => obj.key == "values");
-                    //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂��
-                    if (trait_values == null)
-                    {
-                        trait_values = new FunctionAttributes()
-                        {
-                            key = "values",
-                            value = new List<string> { "29" },
-                            max = 10000,
-                            min = 0,
-                        };
-                        trait_values.curValue = trait_values.min;
-                    }
-#if DEBUG
-                    //if ( Convert.ToInt32(trait_values.value)  == 0)
-                    {
-                        double level = 1;
-                        Random random = new Random();
-                        switch (functionType)
-                        {
-                            case FunctionType.PM25:
-                                level = Math.Round(random.NextDouble() * 130, 0);
-                                break;
-                            case FunctionType.CO2:
-                                level = Math.Round(random.NextDouble() * 6000, 0);
-                                break;
-                            case FunctionType.Temp:
-                                level = Math.Round(random.NextDouble() * 40, 0);
-                                break;
-                            case FunctionType.TVOC:
-                                level = Math.Round(random.NextDouble() * 10, 1);
-                                break;
-                            case FunctionType.Humidity:
-                                level = Math.Round(random.NextDouble() * 100, 0);
-                                break;
-                        }
-                        trait_values.curValue = level;
-                    }
-#endif
-
-                }
-                return Convert.ToDouble(trait_values.curValue);
+                case SPK.SensorPm25:
+                    nameId = StringId.PM25;
+                    break;
+                case SPK.SensorCO2:
+                    nameId = StringId.CO2;
+                    break;
+                case SPK.SensorTemperature:
+                    nameId = StringId.Temp;
+                    break;
+                case SPK.SensorTVOC:
+                    nameId = StringId.TVOC;
+                    break;
+                case SPK.SensorHumidity:
+                    nameId = StringId.Humidity;
+                    break;
             }
-            set
-            {
-                try
-
-                 {
-                    if (trait_values == null)
-                    {
-                        trait_values = attributes.Find((obj) => obj.key == "values");
-                        //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂��
-                        if (trait_values == null)
-                        {
-                            trait_values = new FunctionAttributes()
-                            {
-                                key = "values",
-                                value = new List<string> { "up" },
-                                max = 100,
-                                min = 0,
-                            };
-                        }
-                        trait_values.curValue = trait_values.min;
-                    }
-                    trait_values.curValue = value;
-                    MainPage.Log($"values 鏁版嵁鍒锋柊{value}.");
-                }
-                catch
-                {
-                    MainPage.Log("values 鏁版嵁鍒锋柊澶辫触.");
-                }
-            }
+            return nameId;
+        }
+        /// <summary>
+        /// 
+        /// </summary>
+        public double GetValues(Function function)
+        {
+            var value = function.GetAttrState(FunctionAttributeKey.Value);
+            return Convert.ToDouble(value);
+        }
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="value"></param>
+        /// <param name="function"></param>
+        public void SetValues(int value, Function function)
+        {
+            function.SetAttrState(FunctionAttributeKey.Value, value);
         }
 
-        List<string> _intervalValue;
         /// <summary>
         /// 姣忎釜绛夌骇瀵瑰尯闂村��
         /// </summary>
-        [Newtonsoft.Json.JsonIgnore]
-        public List<string> intervalValue
+        public List<string> GetIntervalValue(string spk)
         {
-            get
+            var _intervalValue = new List<string>();
+            switch (spk)
             {
-                if (_intervalValue == null)
-                {
-                    _intervalValue = new List<string>();
-                    switch (functionType)
-                    {
-                        case FunctionType.PM25:
-                            _intervalValue.Add("0 ~ 35");
-                            _intervalValue.Add("36 ~ 75");
-                            _intervalValue.Add("76 ~ 115");
-                            _intervalValue.Add("115 ~");
-                            break;
-                        case FunctionType.CO2:
-                            _intervalValue.Add("0 ~ 1000");
-                            _intervalValue.Add("1001 ~ 2000");
-                            _intervalValue.Add("2001 ~ 5000");
-                            _intervalValue.Add("5001 ~");
-                            break;
-                        case FunctionType.Temp:
-                            _intervalValue.Add("~ 18掳C");
-                            _intervalValue.Add("18 ~ 20掳C");
-                            _intervalValue.Add("20 ~ 25掳C");
-                            _intervalValue.Add("25 ~ 27掳C");
-                            _intervalValue.Add("27 ~ 30掳C");
-                            _intervalValue.Add("30 ~ 33掳C");
-                            _intervalValue.Add("33掳C ~");
-                            break;
-                        case FunctionType.TVOC:
-                            _intervalValue.Add("0 ~ 0.6");
-                            _intervalValue.Add("0.61 ~ 2");
-                            _intervalValue.Add("2.01 ~ 5");
-                            _intervalValue.Add("5 ~");
-                            break;
-                        case FunctionType.Humidity:
-                            _intervalValue.Add("70 ~");
-                            _intervalValue.Add("71 ~ 40");
-                            _intervalValue.Add("0 ~ 39");
-                            break;
-                    }
-                }
-                return _intervalValue;
+                case SPK.SensorPm25:
+                    _intervalValue.Add("0 ~ 35");
+                    _intervalValue.Add("36 ~ 75");
+                    _intervalValue.Add("76 ~ 115");
+                    _intervalValue.Add("115 ~");
+                    break;
+                case SPK.SensorCO2:
+                    _intervalValue.Add("0 ~ 1000");
+                    _intervalValue.Add("1001 ~ 2000");
+                    _intervalValue.Add("2001 ~ 5000");
+                    _intervalValue.Add("5001 ~");
+                    break;
+                case SPK.SensorTemperature:
+                    _intervalValue.Add("~ 18掳C");
+                    _intervalValue.Add("18 ~ 20掳C");
+                    _intervalValue.Add("20 ~ 25掳C");
+                    _intervalValue.Add("25 ~ 27掳C");
+                    _intervalValue.Add("27 ~ 30掳C");
+                    _intervalValue.Add("30 ~ 33掳C");
+                    _intervalValue.Add("33掳C ~");
+                    break;
+                case SPK.SensorTVOC:
+                    _intervalValue.Add("0 ~ 0.6");
+                    _intervalValue.Add("0.61 ~ 2");
+                    _intervalValue.Add("2.01 ~ 5");
+                    _intervalValue.Add("5 ~");
+                    break;
+                case SPK.SensorHumidity:
+                    _intervalValue.Add("70 ~");
+                    _intervalValue.Add("71 ~ 40");
+                    _intervalValue.Add("0 ~ 39");
+                    break;
             }
+            return _intervalValue;
         }
-        List<uint> _levelColorList;
+
         /// <summary>
         /// 姣忎釜绛夌骇鐨勯鑹插��
         /// </summary>
-        [Newtonsoft.Json.JsonIgnore]
-        public List<uint> levelColorList
+        public List<uint> GetLevelColorList(string spk)
         {
-            get
+            var _levelColorList = new List<uint>();
+            switch (spk)
             {
-                try
-                {
-                if (_levelColorList == null)
-                {
-                    _levelColorList = new List<uint>();
-                    switch (functionType)
-                    {
-                        case FunctionType.PM25:
-                            _levelColorList.Add(0xFFADE764);
-                            _levelColorList.Add(0xFFFFD154);
-                            _levelColorList.Add(0xFFFF9D54);
-                            _levelColorList.Add(0xFFFF3D3D);
-                            break;
-                        case FunctionType.CO2:
-                            _levelColorList.Add(0xFFADE764);
-                            _levelColorList.Add(0xFFFFD154);
-                            _levelColorList.Add(0xFFFF9D54);
-                            _levelColorList.Add(0xFFFF3D3D);
-                            break;
-                        case FunctionType.Temp:
-                            _levelColorList.Add(0xFF2172FF);
-                            _levelColorList.Add(0xCC4484F4);
-                            _levelColorList.Add(0x7F4484F4);
-                            _levelColorList.Add(0xFFADE764);
-                            _levelColorList.Add(0xFFFFD154);
-                            _levelColorList.Add(0xFFFF9D54);
-                            _levelColorList.Add(0xFFFF3D3D);
-                            break;
-                        case FunctionType.TVOC:
-                            _levelColorList.Add(0xFFADE764);
-                            _levelColorList.Add(0xFFFFD154);
-                            _levelColorList.Add(0xFFFF9D54);
-                            _levelColorList.Add(0xFFFF3D3D);
+                case SPK.SensorPm25:
+                    _levelColorList.Add(0xFFADE764);
+                    _levelColorList.Add(0xFFFFD154);
+                    _levelColorList.Add(0xFFFF9D54);
+                    _levelColorList.Add(0xFFFF3D3D);
+                    break;
+                case SPK.SensorCO2:
+                    _levelColorList.Add(0xFFADE764);
+                    _levelColorList.Add(0xFFFFD154);
+                    _levelColorList.Add(0xFFFF9D54);
+                    _levelColorList.Add(0xFFFF3D3D);
+                    break;
+                case SPK.SensorTemperature:
+                    _levelColorList.Add(0xFF2172FF);
+                    _levelColorList.Add(0xCC4484F4);
+                    _levelColorList.Add(0x7F4484F4);
+                    _levelColorList.Add(0xFFADE764);
+                    _levelColorList.Add(0xFFFFD154);
+                    _levelColorList.Add(0xFFFF9D54);
+                    _levelColorList.Add(0xFFFF3D3D);
+                    break;
+                case SPK.SensorTVOC:
+                    _levelColorList.Add(0xFFADE764);
+                    _levelColorList.Add(0xFFFFD154);
+                    _levelColorList.Add(0xFFFF9D54);
+                    _levelColorList.Add(0xFFFF3D3D);
 
-                            break;
-                        case FunctionType.Humidity:
-                            _levelColorList.Add(0xFF2172FF);
-                            _levelColorList.Add(0xFFADE764);
-                            _levelColorList.Add(0xFFFF3D3D);
-                            break;
-                    }
-                }
-                }catch(Exception ex)
-                {
-                    MainPage.Log($"sensor error 1 : {ex.Message}");
-                }
-                return _levelColorList;
+                    break;
+                case SPK.SensorHumidity:
+                    _levelColorList.Add(0xFF2172FF);
+                    _levelColorList.Add(0xFFADE764);
+                    _levelColorList.Add(0xFFFF3D3D);
+                    break;
             }
+            return _levelColorList;
+
         }
-        List<int> _levelTextList;
+
         /// <summary>
         /// 姣忎釜绛夌骇鐨勫悕绉�
         /// </summary>
-        [Newtonsoft.Json.JsonIgnore]
-        public List<int> levelTextList
+        public List<int> GetLevelTextList(string spk)
         {
-            get
+            var _levelTextList = new List<int>();
+            switch (spk)
             {
-                if (_levelTextList == null)
-                {
-                    _levelTextList = new List<int>();
-                    switch (functionType)
-                    {
-                        case FunctionType.PM25:
-                            _levelTextList.Add(StringId.Great);
-                            _levelTextList.Add(StringId.Good);
-                            _levelTextList.Add(StringId.MildPollution);
-                            _levelTextList.Add(StringId.HeavyPollution);
-                            break;
-                        case FunctionType.CO2:
-                            _levelTextList.Add(StringId.SensorReferenceTipCO2Level1);
-                            _levelTextList.Add(StringId.SensorReferenceTipCO2Level2);
-                            _levelTextList.Add(StringId.SensorReferenceTipCO2Level3);
-                            _levelTextList.Add(StringId.SensorReferenceTipCO2Level4);
-                            break;
-                        case FunctionType.Temp:
-                            _levelTextList.Add(StringId.ExtremelyCold);
-                            _levelTextList.Add(StringId.Cold);
-                            _levelTextList.Add(StringId.SlightlyCold);
-                            _levelTextList.Add(StringId.Comfortable);
-                            _levelTextList.Add(StringId.TepidFever);
-                            _levelTextList.Add(StringId.Heat_SensorTip);
-                            _levelTextList.Add(StringId.ExtremeHeat);
-
-
-                            break;
-                        case FunctionType.TVOC:
-                            _levelTextList.Add(StringId.SensorReferenceTVOCTipLevel1);
-                            _levelTextList.Add(StringId.SensorReferenceTVOCTipLevel2);
-                            _levelTextList.Add(StringId.SensorReferenceTVOCTipLevel3);
-                            _levelTextList.Add(StringId.SensorReferenceTVOCTipLevel4);
-
-                            break;
-                        case FunctionType.Humidity:
-                            _levelTextList.Add(StringId.SensorReferenceHumidityTipLevel1);
-                            _levelTextList.Add(StringId.SensorReferenceHumidityTipLevel2);
-                            _levelTextList.Add(StringId.SensorReferenceHumidityTipLevel3);
-                            break;
-                    }
-                }
-                return _levelTextList;
+                case SPK.SensorPm25:
+                    _levelTextList.Add(StringId.Great);
+                    _levelTextList.Add(StringId.Good);
+                    _levelTextList.Add(StringId.MildPollution);
+                    _levelTextList.Add(StringId.HeavyPollution);
+                    break;
+                case SPK.SensorCO2:
+                    _levelTextList.Add(StringId.SensorReferenceTipCO2Level1);
+                    _levelTextList.Add(StringId.SensorReferenceTipCO2Level2);
+                    _levelTextList.Add(StringId.SensorReferenceTipCO2Level3);
+                    _levelTextList.Add(StringId.SensorReferenceTipCO2Level4);
+                    break;
+                case SPK.SensorTemperature:
+                    _levelTextList.Add(StringId.ExtremelyCold);
+                    _levelTextList.Add(StringId.Cold);
+                    _levelTextList.Add(StringId.SlightlyCold);
+                    _levelTextList.Add(StringId.Comfortable);
+                    _levelTextList.Add(StringId.TepidFever);
+                    _levelTextList.Add(StringId.Heat_SensorTip);
+                    _levelTextList.Add(StringId.ExtremeHeat);
+                    break;
+                case SPK.SensorTVOC:
+                    _levelTextList.Add(StringId.SensorReferenceTVOCTipLevel1);
+                    _levelTextList.Add(StringId.SensorReferenceTVOCTipLevel2);
+                    _levelTextList.Add(StringId.SensorReferenceTVOCTipLevel3);
+                    _levelTextList.Add(StringId.SensorReferenceTVOCTipLevel4);
+                    break;
+                case SPK.SensorHumidity:
+                    _levelTextList.Add(StringId.SensorReferenceHumidityTipLevel1);
+                    _levelTextList.Add(StringId.SensorReferenceHumidityTipLevel2);
+                    _levelTextList.Add(StringId.SensorReferenceHumidityTipLevel3);
+                    break;
             }
+            return _levelTextList;
         }
         /// <summary>
         /// 褰撳墠绛夌骇
         /// </summary>
-        [Newtonsoft.Json.JsonIgnore]
-        public int curLevel
+        public int GetCurLevel(Function function)
         {
-            get
+            var spk = function.spk;
+            var values = GetValues(function);
+            int level = 1;
+            switch (spk)
             {
-                int level = 1;
-                switch (functionType)
-                {
-                    case FunctionType.PM25:
-                        if (values < 35)
-                            level = 1;
-                        else if (values < 75)
-                            level = 2;
-                        else if (values < 115)
-                            level = 3;
-                        else if (values > 115)
-                            level = 4;
-                        break;
-                    case FunctionType.CO2:
-                        if (values < 1000)
-                            level = 1;
-                        else if (values < 2000)
-                            level = 2;
-                        else if (values < 5000)
-                            level = 3;
-                        else if (values > 5000)
-                            level = 4;
-                        break;
-                    case FunctionType.Temp:
-                        if (values < 18)
-                            level = 1;
-                        else if (values < 20)
-                            level = 2;
-                        else if (values < 25)
-                            level = 3;
-                        else if (values < 27)
-                            level = 4;
-                        else if (values < 30)
-                            level = 5;
-                        else if (values < 33)
-                            level = 6;
-                        else if (values > 33)
-                            level = 7;
-                        break;
-                    case FunctionType.TVOC:
-                        if (values < 0.6)
-                            level = 1;
-                        else if (values < 2)
-                            level = 2;
-                        else if (values < 5)
-                            level = 3;
-                        else if (values > 5)
-                            level = 4;
-                        break;
-                    case FunctionType.Humidity:
-                        if (values > 70)
-                            level = 1;
-                        else if (values > 40)
-                            level = 2;
-                        else if (values < 40)
-                            level = 3;
-                        break;
-                }
-                return level;
+                case SPK.SensorPm25:
+                    if (values < 35)
+                        level = 1;
+                    else if (values < 75)
+                        level = 2;
+                    else if (values < 115)
+                        level = 3;
+                    else if (values > 115)
+                        level = 4;
+                    break;
+                case SPK.SensorCO2:
+                    if (values < 1000)
+                        level = 1;
+                    else if (values < 2000)
+                        level = 2;
+                    else if (values < 5000)
+                        level = 3;
+                    else if (values > 5000)
+                        level = 4;
+                    break;
+                case SPK.SensorTemperature:
+                    if (values < 18)
+                        level = 1;
+                    else if (values < 20)
+                        level = 2;
+                    else if (values < 25)
+                        level = 3;
+                    else if (values < 27)
+                        level = 4;
+                    else if (values < 30)
+                        level = 5;
+                    else if (values < 33)
+                        level = 6;
+                    else if (values > 33)
+                        level = 7;
+                    break;
+                case SPK.SensorTVOC:
+                    if (values < 0.6)
+                        level = 1;
+                    else if (values < 2)
+                        level = 2;
+                    else if (values < 5)
+                        level = 3;
+                    else if (values > 5)
+                        level = 4;
+                    break;
+                case SPK.SensorHumidity:
+                    if (values > 70)
+                        level = 1;
+                    else if (values > 40)
+                        level = 2;
+                    else if (values < 40)
+                        level = 3;
+                    break;
             }
+            return level;
         }
-
     }
 }

--
Gitblit v1.8.0