mac
2024-07-25 3f6685c77beeb12baf840733fb890860f4c26e7c
HDL_ON/Entity/Function/Sensor.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using Newtonsoft.Json.Linq;
using Shared;
namespace HDL_ON.Entity
@@ -62,6 +63,10 @@
                    case SPK.SensorHumidity:
                        attr = function.GetAttribute(FunctionAttributeKey.Humidity);
                        break;
                    case SPK.SensorPm10:
                        attr = function.GetAttribute(FunctionAttributeKey.Pm10);
                        break;
                }
            }
            double value = 0.0;
@@ -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");
@@ -156,7 +162,6 @@
            if (function.attrKeyConfigs.Count > 0)
            {
                foreach (var attrKey in function.attrKeyConfigs)
                {
                    if (function.spk.Replace(".", "").Contains(attrKey.key.Replace(".", "")))
@@ -170,13 +175,13 @@
            switch (function.spk)
            {
                case SPK.SensorPm25:
                    unit = "ug/m²";
                    unit = "ug/m³";
                    break;
                case SPK.SensorTemperature:
                    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));
@@ -426,7 +427,7 @@
                        }
                        foreach (var info in attrKey.configs)
                        {
                            if ((Convert.ToDouble(info.start) < values) && (Convert.ToDouble(info.end) >= values))
                            if ((Convert.ToDouble(info.start) <= values) && (Convert.ToDouble(info.end) >= values))
                            {
                                return level;
                            }
@@ -504,6 +505,10 @@
                    else
                        level = 3;
                    break;
                default:
                    level = 1;
                    break;
            }
            return level;
        }