From 9ab5bd54fadd8fc9c542b48c99a117a4e182669b Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期四, 14 十月 2021 16:37:56 +0800
Subject: [PATCH] 智能空开能源界面数据更新

---
 HDL_ON/Entity/Function/Sensor.cs |  157 +++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 147 insertions(+), 10 deletions(-)

diff --git a/HDL_ON/Entity/Function/Sensor.cs b/HDL_ON/Entity/Function/Sensor.cs
index 585a617..82ed611 100644
--- a/HDL_ON/Entity/Function/Sensor.cs
+++ b/HDL_ON/Entity/Function/Sensor.cs
@@ -38,7 +38,34 @@
         /// </summary>
         public double GetValues(Function function)
         {
-            var value = function.GetAttrState(FunctionAttributeKey.Value);
+            FunctionAttributes attr = function.GetAttribute(FunctionAttributeKey.Value);
+            if (attr == null)
+            {
+                switch (function.spk)
+                {
+                    case SPK.SensorCO2:
+                        attr = function.GetAttribute(FunctionAttributeKey.Co2);
+                        break;
+                    case SPK.SensorTemperature:
+                        attr = function.GetAttribute(FunctionAttributeKey.Temperature);
+                        break;
+                    case SPK.SensorTVOC:
+                        attr = function.GetAttribute(FunctionAttributeKey.Tvoc);
+                        break;
+                    case SPK.SensorPm25:
+                        attr = function.GetAttribute(FunctionAttributeKey.Pm25);
+                        break;
+                    case SPK.SensorHcho:
+                        attr = function.GetAttribute(FunctionAttributeKey.Hcho);
+                        break;
+                    case SPK.SensorHumidity:
+                        attr = function.GetAttribute(FunctionAttributeKey.Humidity);
+                        break;
+                }
+            }
+            double value = 0.0;
+            double.TryParse( attr.state,out value);
+
             return Convert.ToDouble(value);
         }
         /// <summary>
@@ -81,16 +108,22 @@
                     _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 ~");
+                    _intervalValue.Add("0 ~ 600");
+                    _intervalValue.Add("601 ~ 2000");
+                    _intervalValue.Add("2001 ~ 5000");
+                    _intervalValue.Add("5001 ~");
                     break;
                 case SPK.SensorHumidity:
                     _intervalValue.Add("70 ~");
                     _intervalValue.Add("71 ~ 40");
                     _intervalValue.Add("0 ~ 39");
                     break;
+                case SPK.SensorHcho:
+                    _intervalValue.Add("~ 0.08");
+                    _intervalValue.Add("0.08 ~ 0.1");
+                    _intervalValue.Add("0.1 ~ ");
+                    break;
+
             }
             return _intervalValue;
         }
@@ -135,6 +168,16 @@
                     _levelColorList.Add(0xFF2172FF);
                     _levelColorList.Add(0xFFADE764);
                     _levelColorList.Add(0xFFFF3D3D);
+                    break;
+                case SPK.SensorHcho:
+                    _levelColorList.Add(0xFF2172FF);
+                    _levelColorList.Add(0xFFADE764);
+                    _levelColorList.Add(0xFFFF3D3D);
+                    break;
+                default:
+                    _levelColorList.Add(0x00000000);
+                    _levelColorList.Add(0x00000000);
+                    _levelColorList.Add(0x00000000);
                     break;
             }
             return _levelColorList;
@@ -181,6 +224,16 @@
                     _levelTextList.Add(StringId.SensorReferenceHumidityTipLevel2);
                     _levelTextList.Add(StringId.SensorReferenceHumidityTipLevel3);
                     break;
+                case SPK.SensorHcho:
+                    _levelTextList.Add(StringId.Class_I_BuildingStandard);
+                    _levelTextList.Add(StringId.SecondaryBuildingStandard);
+                    _levelTextList.Add(StringId.ExceedingTheStandard);
+                    break;
+                default:
+                    _levelTextList.Add(99999999);
+                    _levelTextList.Add(99999999);
+                    _levelTextList.Add(99999999);
+                    break;
             }
             return _levelTextList;
         }
@@ -211,7 +264,7 @@
                         level = 2;
                     else if (values < 5000)
                         level = 3;
-                    else if (values > 5000)
+                    else if (values >= 5000)
                         level = 4;
                     break;
                 case SPK.SensorTemperature:
@@ -231,13 +284,13 @@
                         level = 7;
                     break;
                 case SPK.SensorTVOC:
-                    if (values < 0.6)
+                    if (values < 600)
                         level = 1;
-                    else if (values < 2)
+                    else if (values < 2000)
                         level = 2;
-                    else if (values < 5)
+                    else if (values < 5000)
                         level = 3;
-                    else if (values > 5)
+                    else if (values >= 5000)
                         level = 4;
                     break;
                 case SPK.SensorHumidity:
@@ -248,8 +301,92 @@
                     else if (values < 40)
                         level = 3;
                     break;
+                case SPK.SensorHcho:
+                    if (values <= 0.08)
+                        level = 1;
+                    else if (values <= 0.1)
+                        level = 2;
+                    else
+                        level = 3;
+                    break;
             }
             return level;
         }
+
+
+        /// <summary>
+        /// 褰撳墠绛夌骇
+        /// </summary>
+        public int GetCurLevel(string spk,double values)
+        {
+            int level = 1;
+            switch (spk)
+            {
+                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 < 600)
+                        level = 1;
+                    else if (values < 2000)
+                        level = 2;
+                    else if (values < 5000)
+                        level = 3;
+                    else if (values >= 5000)
+                        level = 4;
+                    break;
+                case SPK.SensorHumidity:
+                    if (values > 70)
+                        level = 1;
+                    else if (values > 40)
+                        level = 2;
+                    else if (values < 40)
+                        level = 3;
+                    break;
+                case SPK.SensorHcho:
+                    if (values <= 0.08)
+                        level = 1;
+                    else if (values <= 0.1)
+                        level = 2;
+                    else
+                        level = 3;
+                    break;
+            }
+            return level;
+        }
+
     }
 }

--
Gitblit v1.8.0