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 ~ 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; } /// /// 每个等级的颜色值 /// 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; 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; } /// /// 每个等级的名称 /// 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; 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; } /// /// 当前等级 /// 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 < 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; } /// /// 当前等级 /// 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; } } }