using System; using System.Collections.Generic; namespace HDL_ON.Entity { public class Sensor { /// /// 获取名称文本ID /// /// /// public int GetFunctionTypeNameId(string spk) { int nameId = 0; switch (spk) { 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; } return nameId; } /// /// /// public double GetValues(Function function) { var value = function.GetAttrState(FunctionAttributeKey.Value); return Convert.ToDouble(value); } /// /// /// /// /// public void SetValues(int value, Function function) { function.SetAttrState(FunctionAttributeKey.Value, value); } /// /// 每个等级对区间值 /// public List GetIntervalValue(string spk) { var _intervalValue = new List(); switch (spk) { 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; } /// /// 每个等级的颜色值 /// public List GetLevelColorList(string spk) { var _levelColorList = new List(); switch (spk) { 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 SPK.SensorHumidity: _levelColorList.Add(0xFF2172FF); _levelColorList.Add(0xFFADE764); _levelColorList.Add(0xFFFF3D3D); break; } return _levelColorList; } /// /// 每个等级的名称 /// public List GetLevelTextList(string spk) { var _levelTextList = new List(); switch (spk) { 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; } /// /// 当前等级 /// public int GetCurLevel(Function function) { var spk = function.spk; var values = GetValues(function); 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 < 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; } } }