From 4d14154c36ac5692aadc036eed97fb9f1c410e2a Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期日, 23 五月 2021 14:46:03 +0800
Subject: [PATCH] Merge branch 'WJC' into temp-wxr
---
HDL_ON/Entity/Function/Sensor.cs | 527 +++++++++++++++++++++++-----------------------------------
1 files changed, 211 insertions(+), 316 deletions(-)
diff --git a/HDL_ON/Entity/Function/Sensor.cs b/HDL_ON/Entity/Function/Sensor.cs
index 598d621..585a617 100644
--- a/HDL_ON/Entity/Function/Sensor.cs
+++ b/HDL_ON/Entity/Function/Sensor.cs
@@ -3,358 +3,253 @@
namespace HDL_ON.Entity
{
- public class Sensor :Function
+ public class Sensor
{
- public Sensor()
- {
-
- }
- [Newtonsoft.Json.JsonIgnore]
- public int functionTypeNameId
- {
- get
- {
- int nameId = 0;
- switch (functionType)
- {
- case FunctionType.PM25:
- nameId = StringId.PM25;
- break;
- case FunctionType.CO2:
- nameId = StringId.CO2;
- break;
- case FunctionType.Temp:
- nameId = StringId.Temp;
- break;
- case FunctionType.TVOC:
- nameId = StringId.TVOC;
- break;
- case FunctionType.Humidity:
- nameId = StringId.Humidity;
- break;
- }
- return nameId;
- }
- }
-
- [Newtonsoft.Json.JsonIgnore]
- public FunctionAttributes trait_values;
/// <summary>
- /// 鍊�
+ /// 鑾峰彇鍚嶇О鏂囨湰ID
/// </summary>
- [Newtonsoft.Json.JsonIgnore]
- public double values
+ /// <param name="spk"></param>
+ /// <returns></returns>
+ public int GetFunctionTypeNameId(string spk)
{
- get
+ int nameId = 0;
+ switch (spk)
{
- if (trait_values == null)
- {
- trait_values = function.Find((obj) => obj.key == "values");
- //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂��
- if (trait_values == null)
- {
- trait_values = new FunctionAttributes()
- {
- key = "values",
- value = new List<string> { "29" },
- max = 10000,
- min = 0,
- };
- trait_values.curValue = trait_values.min;
- }
-#if DEBUG
- //if ( Convert.ToInt32(trait_values.value) == 0)
- {
- double level = 1;
- Random random = new Random();
- switch (functionType)
- {
- case FunctionType.PM25:
- level = Math.Round(random.NextDouble() * 130, 0);
- break;
- case FunctionType.CO2:
- level = Math.Round(random.NextDouble() * 6000, 0);
- break;
- case FunctionType.Temp:
- level = Math.Round(random.NextDouble() * 40, 0);
- break;
- case FunctionType.TVOC:
- level = Math.Round(random.NextDouble() * 10, 1);
- break;
- case FunctionType.Humidity:
- level = Math.Round(random.NextDouble() * 100, 0);
- break;
- }
- trait_values.curValue = level;
- }
-#endif
-
- }
- return Convert.ToDouble(trait_values.curValue);
+ 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;
}
- set
- {
- try
-
- {
- if (trait_values == null)
- {
- trait_values = function.Find((obj) => obj.key == "values");
- //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂��
- if (trait_values == null)
- {
- trait_values = new FunctionAttributes()
- {
- key = "values",
- value = new List<string> { "up" },
- max = 100,
- min = 0,
- };
- }
- trait_values.curValue = trait_values.min;
- }
- trait_values.curValue = value;
- MainPage.Log($"values 鏁版嵁鍒锋柊{value}.");
- }
- catch
- {
- MainPage.Log("values 鏁版嵁鍒锋柊澶辫触.");
- }
- }
+ return nameId;
+ }
+ /// <summary>
+ ///
+ /// </summary>
+ public double GetValues(Function function)
+ {
+ var value = function.GetAttrState(FunctionAttributeKey.Value);
+ return Convert.ToDouble(value);
+ }
+ /// <summary>
+ ///
+ /// </summary>
+ /// <param name="value"></param>
+ /// <param name="function"></param>
+ public void SetValues(int value, Function function)
+ {
+ function.SetAttrState(FunctionAttributeKey.Value, value);
}
- List<string> _intervalValue;
/// <summary>
/// 姣忎釜绛夌骇瀵瑰尯闂村��
/// </summary>
- [Newtonsoft.Json.JsonIgnore]
- public List<string> intervalValue
+ public List<string> GetIntervalValue(string spk)
{
- get
+ var _intervalValue = new List<string>();
+ switch (spk)
{
- if (_intervalValue == null)
- {
- _intervalValue = new List<string>();
- switch (functionType)
- {
- case FunctionType.PM25:
- _intervalValue.Add("0 ~ 35");
- _intervalValue.Add("36 ~ 75");
- _intervalValue.Add("76 ~ 115");
- _intervalValue.Add("115 ~");
- break;
- case FunctionType.CO2:
- _intervalValue.Add("0 ~ 1000");
- _intervalValue.Add("1001 ~ 2000");
- _intervalValue.Add("2001 ~ 5000");
- _intervalValue.Add("5001 ~");
- break;
- case FunctionType.Temp:
- _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 FunctionType.TVOC:
- _intervalValue.Add("0 ~ 0.6");
- _intervalValue.Add("0.61 ~ 2");
- _intervalValue.Add("2.01 ~ 5");
- _intervalValue.Add("5 ~");
- break;
- case FunctionType.Humidity:
- _intervalValue.Add("70 ~");
- _intervalValue.Add("71 ~ 40");
- _intervalValue.Add("0 ~ 39");
- break;
- }
- }
- return _intervalValue;
+ 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;
}
- List<uint> _levelColorList;
+
/// <summary>
/// 姣忎釜绛夌骇鐨勯鑹插��
/// </summary>
- [Newtonsoft.Json.JsonIgnore]
- public List<uint> levelColorList
+ public List<uint> GetLevelColorList(string spk)
{
- get
+ var _levelColorList = new List<uint>();
+ switch (spk)
{
- try
- {
- if (_levelColorList == null)
- {
- _levelColorList = new List<uint>();
- switch (functionType)
- {
- case FunctionType.PM25:
- _levelColorList.Add(0xFFADE764);
- _levelColorList.Add(0xFFFFD154);
- _levelColorList.Add(0xFFFF9D54);
- _levelColorList.Add(0xFFFF3D3D);
- break;
- case FunctionType.CO2:
- _levelColorList.Add(0xFFADE764);
- _levelColorList.Add(0xFFFFD154);
- _levelColorList.Add(0xFFFF9D54);
- _levelColorList.Add(0xFFFF3D3D);
- break;
- case FunctionType.Temp:
- _levelColorList.Add(0xFF2172FF);
- _levelColorList.Add(0xCC4484F4);
- _levelColorList.Add(0x7F4484F4);
- _levelColorList.Add(0xFFADE764);
- _levelColorList.Add(0xFFFFD154);
- _levelColorList.Add(0xFFFF9D54);
- _levelColorList.Add(0xFFFF3D3D);
- break;
- case FunctionType.TVOC:
- _levelColorList.Add(0xFFADE764);
- _levelColorList.Add(0xFFFFD154);
- _levelColorList.Add(0xFFFF9D54);
- _levelColorList.Add(0xFFFF3D3D);
+ 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 FunctionType.Humidity:
- _levelColorList.Add(0xFF2172FF);
- _levelColorList.Add(0xFFADE764);
- _levelColorList.Add(0xFFFF3D3D);
- break;
- }
- }
- }catch(Exception ex)
- {
- MainPage.Log($"sensor error 1 : {ex.Message}");
- }
- return _levelColorList;
+ break;
+ case SPK.SensorHumidity:
+ _levelColorList.Add(0xFF2172FF);
+ _levelColorList.Add(0xFFADE764);
+ _levelColorList.Add(0xFFFF3D3D);
+ break;
}
+ return _levelColorList;
+
}
- List<int> _levelTextList;
+
/// <summary>
/// 姣忎釜绛夌骇鐨勫悕绉�
/// </summary>
- [Newtonsoft.Json.JsonIgnore]
- public List<int> levelTextList
+ public List<int> GetLevelTextList(string spk)
{
- get
+ var _levelTextList = new List<int>();
+ switch (spk)
{
- if (_levelTextList == null)
- {
- _levelTextList = new List<int>();
- switch (functionType)
- {
- case FunctionType.PM25:
- _levelTextList.Add(StringId.Great);
- _levelTextList.Add(StringId.Good);
- _levelTextList.Add(StringId.MildPollution);
- _levelTextList.Add(StringId.HeavyPollution);
- break;
- case FunctionType.CO2:
- _levelTextList.Add(StringId.SensorReferenceTipCO2Level1);
- _levelTextList.Add(StringId.SensorReferenceTipCO2Level2);
- _levelTextList.Add(StringId.SensorReferenceTipCO2Level3);
- _levelTextList.Add(StringId.SensorReferenceTipCO2Level4);
- break;
- case FunctionType.Temp:
- _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 FunctionType.TVOC:
- _levelTextList.Add(StringId.SensorReferenceTVOCTipLevel1);
- _levelTextList.Add(StringId.SensorReferenceTVOCTipLevel2);
- _levelTextList.Add(StringId.SensorReferenceTVOCTipLevel3);
- _levelTextList.Add(StringId.SensorReferenceTVOCTipLevel4);
-
- break;
- case FunctionType.Humidity:
- _levelTextList.Add(StringId.SensorReferenceHumidityTipLevel1);
- _levelTextList.Add(StringId.SensorReferenceHumidityTipLevel2);
- _levelTextList.Add(StringId.SensorReferenceHumidityTipLevel3);
- break;
- }
- }
- return _levelTextList;
+ 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;
}
/// <summary>
/// 褰撳墠绛夌骇
/// </summary>
- [Newtonsoft.Json.JsonIgnore]
- public int curLevel
+ public int GetCurLevel(Function function)
{
- get
+ var spk = function.spk;
+ var values = GetValues(function);
+ int level = 1;
+ switch (spk)
{
- int level = 1;
- switch (functionType)
- {
- case FunctionType.PM25:
- 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 FunctionType.CO2:
- 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 FunctionType.Temp:
- 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 FunctionType.TVOC:
- 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 FunctionType.Humidity:
- if (values > 70)
- level = 1;
- else if (values > 40)
- level = 2;
- else if (values < 40)
- level = 3;
- break;
- }
- return level;
+ 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;
}
-
}
}
--
Gitblit v1.8.0