From 6d73bf6e816570291865674bef8bce8972e4de3f Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期三, 01 十二月 2021 16:32:57 +0800 Subject: [PATCH] 2021-12-01-01 --- HDL_ON/Entity/Function/Sensor.cs | 105 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 104 insertions(+), 1 deletions(-) diff --git a/HDL_ON/Entity/Function/Sensor.cs b/HDL_ON/Entity/Function/Sensor.cs index 341392a..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> @@ -285,5 +312,81 @@ } 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