From cbc156bc38d8b8eae7aef60cb186ab2b52fa701f Mon Sep 17 00:00:00 2001
From: wxr <wxr@hdlchina.com.cn>
Date: 星期二, 16 七月 2024 13:59:56 +0800
Subject: [PATCH] 增加全部挂断

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

diff --git a/HDL_ON/Entity/Function/Sensor.cs b/HDL_ON/Entity/Function/Sensor.cs
index 581343d..1cf5bab 100644
--- a/HDL_ON/Entity/Function/Sensor.cs
+++ b/HDL_ON/Entity/Function/Sensor.cs
@@ -1,5 +1,6 @@
 锘縰sing System;
 using System.Collections.Generic;
+using Newtonsoft.Json.Linq;
 using Shared;
 
 namespace HDL_ON.Entity
@@ -62,10 +63,14 @@
                     case SPK.SensorHumidity:
                         attr = function.GetAttribute(FunctionAttributeKey.Humidity);
                         break;
+                    case SPK.SensorPm10:
+                        attr = function.GetAttribute(FunctionAttributeKey.Pm10);
+                        break;
+                        
                 }
             }
             double value = 0.0;
-            double.TryParse( attr.state,out value);
+            double.TryParse(attr.state, out value);
 
             return Convert.ToDouble(value);
         }
@@ -79,17 +84,15 @@
             function.SetAttrState(FunctionAttributeKey.Value, value);
         }
 
+
         /// <summary>
         /// 姣忎釜绛夌骇瀵瑰尯闂村��
         /// </summary>
         public List<string> GetIntervalValue(Function function)
         {
-            var _intervalValue = new List<string>();
-
-
+            List<string> _intervalValue = new List<string>();
             if (function.attrKeyConfigs.Count > 0)
             {
-
                 foreach (var attrKey in function.attrKeyConfigs)
                 {
                     if (function.spk.Replace(".", "").Contains(attrKey.key.Replace(".", "")))
@@ -98,17 +101,20 @@
                         {
                             _intervalValue.Add(info.start + " ~ " + info.end);
                         }
+                        return _intervalValue;
                     }
                 }
-                if (_intervalValue.Count > 0)
-                    return _intervalValue;
             }
 
-
-            string spk = function.spk;
-            switch (spk)
+            switch (function.spk)
             {
                 case SPK.SensorPm25:
+                    _intervalValue.Add("0 ~ 50");
+                    _intervalValue.Add("51 ~ 100");
+                    _intervalValue.Add("101 ~ 150");
+                    _intervalValue.Add("151 ~");
+                    break;
+                case SPK.SensorPm10:
                     _intervalValue.Add("0 ~ 35");
                     _intervalValue.Add("36 ~ 75");
                     _intervalValue.Add("76 ~ 115");
@@ -150,18 +156,17 @@
             return _intervalValue;
         }
 
-        public string Unit(Function  function)
+        public string Unit(Function function)
         {
             string unit = "";
 
             if (function.attrKeyConfigs.Count > 0)
             {
-
                 foreach (var attrKey in function.attrKeyConfigs)
                 {
                     if (function.spk.Replace(".", "").Contains(attrKey.key.Replace(".", "")))
                     {
-                        if (string.IsNullOrEmpty(attrKey.unit))
+                        if (!string.IsNullOrEmpty(attrKey.unit))
                             return attrKey.unit;
                     }
                 }
@@ -170,13 +175,13 @@
             switch (function.spk)
             {
                 case SPK.SensorPm25:
-                    unit = "ug/m虏";
+                    unit = "ug/m鲁";
                     break;
                 case SPK.SensorTemperature:
-                    unit =  "掳C";
+                    unit = "掳C";
                     break;
                 case SPK.SensorTVOC:
-                    unit = "PPB";
+                    unit = "mg/m鲁";
                     break;
                 case SPK.SensorCO2:
                     unit = "PPM";
@@ -200,7 +205,6 @@
             var _levelColorList = new List<uint>();
             if (function.attrKeyConfigs.Count > 0)
             {
-
                 foreach (var attrKey in function.attrKeyConfigs)
                 {
                     if (function.spk.Replace(".", "").Contains(attrKey.key.Replace(".", "")))
@@ -209,14 +213,12 @@
                         {
                             _levelColorList.Add(Convert.ToUInt32(info.color, 16));
                         }
+                        return _levelColorList;
                     }
                 }
-                if (_levelColorList.Count > 0)
-                    return _levelColorList;
             }
 
-            string spk = function.spk;
-            switch (spk)
+            switch (function.spk)
             {
                 case SPK.SensorPm25:
                     _levelColorList.Add(0xFFADE764);
@@ -240,6 +242,7 @@
                     _levelColorList.Add(0xFFFF3D3D);
                     break;
                 case SPK.SensorTVOC:
+                case SPK.SensorPm10:
                     _levelColorList.Add(0xFFADE764);
                     _levelColorList.Add(0xFFFFD154);
                     _levelColorList.Add(0xFFFF9D54);
@@ -272,10 +275,8 @@
         public List<string> GetLevelTextList(Function function)
         {
             var _levelTextList = new List<string>();
-
             if (function.attrKeyConfigs.Count > 0)
             {
-
                 foreach (var attrKey in function.attrKeyConfigs)
                 {
                     if (function.spk.Replace(".", "").Contains(attrKey.key.Replace(".", "")))
@@ -284,16 +285,16 @@
                         {
                             _levelTextList.Add(info.desc);
                         }
+                        return _levelTextList;
                     }
                 }
-                if (_levelTextList.Count > 0)
-                    return _levelTextList;
             }
 
-            string spk = function.spk;
-            switch (spk)
+
+            switch (function.spk)
             {
                 case SPK.SensorPm25:
+                case SPK.SensorPm10:
                     _levelTextList.Add(Language.StringByID(StringId.Great));
                     _levelTextList.Add(Language.StringByID(StringId.Good));
                     _levelTextList.Add(Language.StringByID(StringId.MildPollution));
@@ -321,9 +322,9 @@
                     _levelTextList.Add(Language.StringByID(StringId.SensorReferenceTVOCTipLevel4));
                     break;
                 case SPK.SensorHumidity:
-                    _levelTextList.Add(Language.StringByID(StringId.SensorReferenceHumidityTipLevel1));
+                    _levelTextList.Add(Language.StringByID(StringId.SensorReferenceHumidityTipLevel1));//娼箍
                     _levelTextList.Add(Language.StringByID(StringId.SensorReferenceHumidityTipLevel2));
-                    _levelTextList.Add(Language.StringByID(StringId.SensorReferenceHumidityTipLevel3));
+                    _levelTextList.Add(Language.StringByID(StringId.SensorReferenceHumidityTipLevel3));//骞茬嚗
                     break;
                 case SPK.SensorHcho:
                     _levelTextList.Add(Language.StringByID(StringId.Class_I_BuildingStandard));
@@ -338,6 +339,69 @@
             }
             return _levelTextList;
         }
+
+        /// <summary>
+        /// 鑾峰彇
+        /// </summary>
+        /// <param name="function"></param>
+        /// <returns></returns>
+        public uint GetCurColor(Function function)
+        {
+            var spk = function.spk;
+            var values = GetValues(function);
+            uint level = 0x00000000;
+            if (function.attrKeyConfigs.Count > 0)
+            {
+
+                foreach (var attrKey in function.attrKeyConfigs)
+                {
+                    if (function.spk.Replace(".", "").Contains(attrKey.key.Replace(".", "")))
+                    {
+                        foreach (var info in attrKey.configs)
+                        {
+                            if ((Convert.ToInt32(info.start) >= values) && (Convert.ToInt32(info.end) < values))
+                            {
+                                return Convert.ToUInt32(info.color, 16);
+                            }
+                        }
+                    }
+                }
+            }
+
+            return level;
+        }
+
+        /// <summary>
+        /// 鑾峰彇鏂囨湰
+        /// </summary>
+        /// <param name="function"></param>
+        /// <returns></returns>
+        public string GetCurText(Function function)
+        {
+            var spk = function.spk;
+            var values = GetValues(function);
+            var level = "";
+            if (function.attrKeyConfigs.Count > 0)
+            {
+
+                foreach (var attrKey in function.attrKeyConfigs)
+                {
+                    if (function.spk.Replace(".", "").Contains(attrKey.key.Replace(".", "")))
+                    {
+                        foreach (var info in attrKey.configs)
+                        {
+                            if ((Convert.ToInt32(info.start) >= values) && (Convert.ToInt32(info.end) < values))
+                            {
+                                return info.desc;
+                            }
+                        }
+                    }
+                }
+            }
+
+            return level;
+        }
+
         /// <summary>
         /// 褰撳墠绛夌骇
         /// </summary>
@@ -346,6 +410,37 @@
             var spk = function.spk;
             var values = GetValues(function);
             int level = 1;
+
+
+
+            if (function.attrKeyConfigs.Count > 0)
+            {
+
+                foreach (var attrKey in function.attrKeyConfigs)
+                {
+                    if (function.spk.Replace(".", "").Contains(attrKey.key.Replace(".", "")))
+                    {
+                        level = 1;
+                        if(attrKey.configs.Count == 0)
+                        {
+                            break;
+                        }
+                        foreach (var info in attrKey.configs)
+                        {
+                            if ((Convert.ToDouble(info.start) <= values) && (Convert.ToDouble(info.end) >= values))
+                            {
+                                return level;
+                            }
+                            level++;
+
+                        }
+                    }
+                }
+                    return 1;
+            }
+
+
+
             switch (spk)
             {
                 case SPK.SensorPm25:
@@ -410,6 +505,10 @@
                     else
                         level = 3;
                     break;
+                default:
+                    level = 1;
+                    break;
+
             }
             return level;
         }

--
Gitblit v1.8.0