From e13ff34658898c9f506681aa75244fead1fb2153 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期日, 06 六月 2021 14:17:10 +0800
Subject: [PATCH] 2021-6-6-2
---
HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs | 355 +++++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 248 insertions(+), 107 deletions(-)
diff --git a/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs b/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs
index bf2804b..01603a3 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs
@@ -3,38 +3,61 @@
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
using System.Collections.Generic;
+using HDL_ON.DAL.Server;
+using HDL_ON.UI.UI2.EnvironmentalScience;
namespace HDL_ON.UI
{
- public class EnvironmentalSensorPage : FrameLayout
+ public partial class EnvironmentalSensorPage : FrameLayout
{
EnvironmentalSensorPage bodyView;
+ FrameLayout showDataTypeView;
+ Button btnShowHistroyData_Day;
+ Button btnShowHistroyData_Week;
+ Button btnShowHistroyData_Month;
- Sensor sensor;
+ FrameLayout historyDataView;
+
+ MyEchartsViewOn myEchartsView;
+
+ Sensor sensorTemp = new Sensor();
+
+ Function function;
+ List<Function> showFunctions;
+ /// <summary>
+ /// 褰撳墠鏌ヨ绫诲瀷
+ /// </summary>
+ string curQueryType = "hour";
List<uint> tipColorList = new List<uint>()
{
0xFF80AEFF,0xFFFFD154,0xFFFF9D54,0xFFFE6A6A,0xFFB183C3,0xFFADE764,
};
- public EnvironmentalSensorPage(Sensor ss)
+ List<string> tipColorStringList = new List<string>()
+ {
+ "#80AEFF","#FFD154","#FF9D54","#FE6A6A","#B183C3","#ADE764",
+ };
+
+ public EnvironmentalSensorPage(Function ss)
{
bodyView = this;
- sensor = ss;
+ function = ss;
+ showFunctions = new List<Function>();
+ showFunctions.Add(ss);
}
-
public void LoadPage()
{
-
bodyView.BackgroundColor = CSS_Color.BackgroundColor;
VerticalScrolViewLayout contentView = new VerticalScrolViewLayout()
{
Y = Application.GetRealHeight(64),
Height = Application.GetRealHeight(600),
+ ScrollEnabled = false
};
bodyView.AddChidren(contentView);
@@ -44,7 +67,7 @@
{
Gravity = Gravity.CenterHorizontal,
Width = Application.GetRealWidth(343),
- Height = Application.GetRealHeight(420),
+ Height = Application.GetRealWidth(420),
BackgroundColor = CSS_Color.MainBackgroundColor,
Radius = (uint)Application.GetRealWidth(12),
BorderColor = 0x00000000,
@@ -53,7 +76,7 @@
contentView.AddChidren(diagramView);
#region 閫夋嫨鏁版嵁鏃ユ湡鑼冨洿
- FrameLayout showDataTypeView = new FrameLayout()
+ showDataTypeView = new FrameLayout()
{
X = Application.GetRealWidth(183),
Y = Application.GetRealHeight(12),
@@ -63,7 +86,7 @@
};
diagramView.AddChidren(showDataTypeView);
- Button btnShowHistroyData_Day = new Button()
+ btnShowHistroyData_Day = new Button()
{
Width = Application.GetRealWidth(48),
TextAlignment = TextAlignment.Center,
@@ -75,7 +98,7 @@
};
showDataTypeView.AddChidren(btnShowHistroyData_Day);
- Button btnShowHistroyData_Week = new Button()
+ btnShowHistroyData_Week = new Button()
{
X = Application.GetRealWidth(48),
Width = Application.GetRealWidth(48),
@@ -87,8 +110,7 @@
};
showDataTypeView.AddChidren(btnShowHistroyData_Week);
-
- Button btnShowHistroyData_Month = new Button()
+ btnShowHistroyData_Month = new Button()
{
X = Application.GetRealWidth(48 * 2),
Width = Application.GetRealWidth(48),
@@ -96,13 +118,12 @@
TextColor = CSS_Color.PromptingColor2,
SelectedTextColor = CSS_Color.MainColor,
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
- TextID = StringId.month,
+ Text = DateTime.Now.Month.ToString() + Language.StringByID(StringId.month),
};
showDataTypeView.AddChidren(btnShowHistroyData_Month);
#endregion
-
- FrameLayout historyDataView = new FrameLayout()
+ historyDataView = new FrameLayout()
{
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealHeight(52),
@@ -111,51 +132,15 @@
};
diagramView.AddChidren(historyDataView);
- List<string> xStrings = new List<string>() ;
- List<string> yStrings = new List<string>();
- Random random = new Random();
- for (int i = 0; i < 24; i++)
- {
- xStrings.Add(i.ToString());
+ myEchartsView = new MyEchartsViewOn();
- switch (sensor.functionType)
- {
- case FunctionType.PM10:
- yStrings.Add( Math.Round(random.NextDouble() * 130, 0).ToString());
- break;
- case FunctionType.PM25:
- yStrings.Add( Math.Round(random.NextDouble() * 130, 0).ToString());
- break;
- case FunctionType.Noise:
- break;
- case FunctionType.WindPower:
- break;
- case FunctionType.CO2:
- yStrings.Add( Math.Round(random.NextDouble() * 6000, 0).ToString());
- break;
- case FunctionType.Temp:
- yStrings.Add( Math.Round(random.NextDouble() * 40, 0).ToString());
- break;
- case FunctionType.TVOC:
- yStrings.Add( Math.Round(random.NextDouble() * 10, 1).ToString());
- break;
- case FunctionType.Humidity:
- yStrings.Add( Math.Round(random.NextDouble() * 100, 0).ToString());
- break;
- }
-
- }
-
-
- MyEchartsView myEchartsView = new MyEchartsView();
historyDataView.AddChidren(myEchartsView);
- myEchartsView.Show(sensor.name, xStrings.ToArray(), yStrings.ToArray());
#region 搴曢儴绛夌骇鎻愮ず
HorizontalScrolViewLayout tipValuesView = new HorizontalScrolViewLayout()
{
Gravity = Gravity.CenterHorizontal,
- Y = Application.GetRealHeight(348),
+ Y = Application.GetRealWidth(348),
Width = Application.GetRealWidth(303),
Height = Application.GetRealHeight(30),
};
@@ -180,12 +165,11 @@
};
diagramView.AddChidren(tipTextView);
-
- switch (sensor.functionType)
+ switch (function.spk)
{
- case FunctionType.PM10:
- case FunctionType.PM25:
- tipValuesView.AddChidren(new Button() {
+ case SPK.SensorPm25:
+ tipValuesView.AddChidren(new Button()
+ {
Width = Application.GetRealWidth(101),
Text = "35",
TextAlignment = TextAlignment.Center,
@@ -241,21 +225,17 @@
TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
});
break;
- //case FunctionType.PM25:
- //_intervalValue.Add("0 ~ 35");
- //_intervalValue.Add("36 ~ 75");
- //_intervalValue.Add("76 ~ 115");
- //_intervalValue.Add("115 ~");
- //_levelTextList.Add(StringId.Great);
- //_levelTextList.Add(StringId.Good);
- //_levelTextList.Add(StringId.MildPollution);
- //_levelTextList.Add(StringId.HeavyPollution);
- //break;
- case FunctionType.Noise:
- break;
- case FunctionType.WindPower:
- break;
- case FunctionType.CO2:
+ //case SPK.SensorPm25:
+ //_intervalValue.Add("0 ~ 35");
+ //_intervalValue.Add("36 ~ 75");
+ //_intervalValue.Add("76 ~ 115");
+ //_intervalValue.Add("115 ~");
+ //_levelTextList.Add(StringId.Great);
+ //_levelTextList.Add(StringId.Good);
+ //_levelTextList.Add(StringId.MildPollution);
+ //_levelTextList.Add(StringId.HeavyPollution);
+ //break;
+ case SPK.SensorCO2:
tipValuesView.AddChidren(new Button()
{
Width = Application.GetRealWidth(101),
@@ -313,7 +293,7 @@
TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
});
break;
- case FunctionType.Temp:
+ case SPK.SensorTemperature:
tipValuesView.AddChidren(new Button()
{
Width = Application.GetRealWidth(50),
@@ -380,7 +360,7 @@
tipTextView.AddChidren(new Button()
{
Width = Application.GetRealWidth(43),
- TextID = StringId.ExtremelyCold,
+ TextID = StringId.SlightlyCold,
TextAlignment = TextAlignment.Center,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
@@ -433,7 +413,7 @@
//_levelTextList.Add(StringId.);
//_levelTextList.Add(StringId.ExtremeHeat);
break;
- case FunctionType.TVOC:
+ case SPK.SensorTVOC:
tipValuesView.AddChidren(new Button()
{
Width = Application.GetRealWidth(101),
@@ -491,11 +471,11 @@
TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
});
break;
- case FunctionType.Humidity:
+ case SPK.SensorHumidity:
tipValuesView.AddChidren(new Button()
{
Width = Application.GetRealWidth(151),
- Text = "70",
+ Text = "40%",
TextAlignment = TextAlignment.Center,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
@@ -503,7 +483,7 @@
tipValuesView.AddChidren(new Button()
{
Width = Application.GetRealWidth(151),
- Text = "40",
+ Text = "70%",
TextAlignment = TextAlignment.Center,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
@@ -511,7 +491,7 @@
tipTextView.AddChidren(new Button()
{
Width = Application.GetRealWidth(101),
- TextID = StringId.SensorReferenceTVOCTipLevel1,
+ TextID = StringId.SensorReferenceHumidityTipLevel1,
TextAlignment = TextAlignment.Center,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
@@ -519,7 +499,7 @@
tipTextView.AddChidren(new Button()
{
Width = Application.GetRealWidth(101),
- TextID = StringId.SensorReferenceTVOCTipLevel2,
+ TextID = StringId.SensorReferenceHumidityTipLevel2,
TextAlignment = TextAlignment.Center,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
@@ -527,7 +507,7 @@
tipTextView.AddChidren(new Button()
{
Width = Application.GetRealWidth(101),
- TextID = StringId.SensorReferenceTVOCTipLevel3,
+ TextID = StringId.SensorReferenceHumidityTipLevel3,
TextAlignment = TextAlignment.Center,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
@@ -545,7 +525,7 @@
Gravity = Gravity.CenterHorizontal,
Width = Application.GetRealWidth(343),
Height = Application.GetRealWidth(100),
- BackgroundColor= CSS_Color.MainBackgroundColor,
+ BackgroundColor = CSS_Color.MainBackgroundColor,
Radius = (uint)Application.GetRealWidth(12),
BorderColor = 0x00000000,
BorderWidth = 0,
@@ -574,13 +554,12 @@
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.TextFontSize,
- Text = sensor.name,
+ Text = function.name,
IsBold = true,
};
selfInfoView.AddChidren(btnSeltSensorName);
-
- Button btnFromFoorAndRoom = new Button()
+ Button btnFromFoorAndRoom = new Button()
{
X = Application.GetRealWidth(16),
Y = btnSeltSensorName.Bottom,
@@ -589,7 +568,7 @@
TextColor = CSS_Color.PromptingColor1,
TextAlignment = TextAlignment.CenterLeft,
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
- Text = sensor.GetRoomListName()
+ Text = function.GetRoomListName()
};
selfInfoView.AddChidren(btnFromFoorAndRoom);
@@ -616,7 +595,8 @@
};
selfInfoView.AddChidren(btnSeltSensorValue);
- var btnShowData = new Button()
+ Button btnShowData;
+ btnShowData = new Button()
{
X = Application.GetRealWidth(291),
Y = Application.GetRealWidth(62),
@@ -624,17 +604,35 @@
Height = Application.GetMinRealAverage(32),
UnSelectedImagePath = "FunctionIcon/EnvironmentalScience/DiagramIcon.png",
SelectedImagePath = "FunctionIcon/EnvironmentalScience/DiagramIconOn.png",
+ IsSelected = true,
};
selfInfoView.AddChidren(btnShowData);
-
+ //btnShowData.MouseUpEventHandler = (sender, e) => {
+ // btnShowData.IsSelected = !btnShowData.IsSelected;
+ // if(btnShowData.IsSelected)
+ // {
+ // if (!showSensors.Contains(sensor))
+ // {
+ // showSensors.Add(sensor);
+ // }
+ // }
+ // else
+ // {
+ // if (showSensors.Contains(sensor))
+ // {
+ // showSensors.Remove(sensor);
+ // }
+ // }
+ // LoadMothed_GetSensorHistoryData();
+ //};
btnSetting.MouseUpEventHandler = (sender, e) =>
{
Action backAction = () =>
{
- btnSeltSensorName.Text = sensor.name;
+ btnSeltSensorName.Text = function.name;
};
- var infoView = new FunctionBaseInfoSetPage(sensor, backAction);
+ var infoView = new FunctionBaseInfoSetPage(function, backAction);
MainPage.BasePageView.AddChidren(infoView);
infoView.LoadPage();
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
@@ -646,17 +644,19 @@
bool initTitleButton = true;
- foreach (var tempSensor in DB_ResidenceData.residenceData.functionList.sensorsEnvironmentalScience)
+ foreach (var tempSensor in FunctionList.List.GetEnvirSensorsList())
{
- if(tempSensor.sid == sensor.sid)
+ if (tempSensor.sid == function.sid)
{
continue;
}
- if(tempSensor.functionType != sensor.functionType)
+ if (tempSensor.spk != function.spk)
{
continue;
}
- if(initTitleButton)
+ contentView.ScrollEnabled = true;
+
+ if (initTitleButton)
{
Button btnOthreTitle = new Button()
{
@@ -707,11 +707,10 @@
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.TextFontSize,
- Text = sensor.name,
+ Text = function.name,
IsBold = true,
};
otherInfoView.AddChidren(btnSensorName);
-
Button btnFromFoorAndRoom1 = new Button()
{
@@ -771,20 +770,162 @@
SelectedImagePath = "FunctionIcon/EnvironmentalScience/DiagramIconOn.png",
};
otherInfoView.AddChidren(btnShowData1);
-
+ btnShowData1.MouseUpEventHandler = (sender, e) => {
+ btnShowData1.IsSelected = !btnShowData1.IsSelected;
+ if (btnShowData1.IsSelected)
+ {
+ if (!showFunctions.Contains(function))
+ {
+ showFunctions.Add(function);
+ }
+ }
+ else
+ {
+ if (showFunctions.Contains(function))
+ {
+ showFunctions.Remove(function);
+ }
+ }
+ LoadMothed_GetSensorHistoryData();
+ };
#endregion
-
-
-
}
-
#endregion
+ new TopViewDiv(bodyView, Language.StringByID(sensorTemp.GetFunctionTypeNameId(function.spk))).LoadTopView();
-
-
- new TopViewDiv(bodyView, Language.StringByID(sensor.functionTypeNameId)).LoadTopView();
-
+ LoadMothed_GetSensorHistoryData();
+ LoadEvent_ChangeSensorHistoryShowType();
}
}
-}
+
+
+ //------------
+ public partial class EnvironmentalSensorPage
+ {
+ /// <summary>
+ /// 璇诲彇浼犳劅鍣ㄥ巻鍙叉暟鎹�
+ /// </summary>
+ void LoadMothed_GetSensorHistoryData( )
+ {
+ var loadPage = new Loading() {
+ LodingBackgroundColor = 0x88888888,
+ };
+ historyDataView.AddChidren(loadPage);
+
+ new System.Threading.Thread(() =>
+ {
+ try
+ {
+ Application.RunOnMainThread(() => {
+ loadPage.Start(Language.StringByID(StringId.PleaseWait));
+ });
+ int i = 0;
+
+ var ebl = new EchartsOption_BrokenLine();
+
+ string yDataString = "";
+
+ foreach (var sr in FunctionList.List.GetEnvirSensorsList())
+ {
+ if (sr.spk != function.spk)
+ {
+ continue;
+ }
+ if (showFunctions.Find((obj) => obj.sid == sr.sid) == null)
+ {
+ i++;
+ continue;
+ }
+
+ var sensorType = sr.spk.Split(".")[1];
+ var revertObj = new HttpServerRequest().GetSensorHistory(curQueryType, sr.deviceId,"value");
+ if (revertObj != null)
+ {
+ if (revertObj.Code == StateCode.SUCCESS)
+ {
+ var revertData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<EnvironmentalSensorHistor>>(revertObj.Data.ToString());
+
+ if (i == 0)
+ {
+ List<string> vs = new List<string>();
+ foreach(var data in revertData)
+ {
+ vs.Add(data.fieldName);
+ }
+ ebl.InitXdataText(vs);
+ }
+ yDataString += ebl.InitYdataText(sr.name, revertData, tipColorStringList[i]);
+ }
+ }
+ i++;
+ }
+
+
+ Application.RunOnMainThread(() =>
+ {
+ myEchartsView.ShowWithOption(ebl.InitOption());
+ });
+
+ }
+ catch (Exception ex)
+ {
+ MainPage.Log($"sensor history error : {ex.Message}");
+ }
+ finally
+ {
+ Application.RunOnMainThread(() => {
+ loadPage.Hide();
+ });
+ }
+ })
+ { IsBackground = true }.Start();
+ }
+
+ void LoadEvent_ChangeSensorHistoryShowType()
+ {
+ btnShowHistroyData_Day.MouseUpEventHandler = (sender, e) =>
+ {
+ showDataTypeView.BackgroundImagePath = "FunctionIcon/EnvironmentalScience/SensorHistoryBg1.png";
+ btnShowHistroyData_Day.IsSelected = true;
+ btnShowHistroyData_Month.IsSelected = false;
+ btnShowHistroyData_Week.IsSelected = false;
+ curQueryType = "hour";
+ LoadMothed_GetSensorHistoryData();
+ };
+
+ btnShowHistroyData_Month.MouseUpEventHandler = (sender, e) =>
+ {
+ showDataTypeView.BackgroundImagePath = "FunctionIcon/EnvironmentalScience/SensorHistoryBg3.png";
+ btnShowHistroyData_Day.IsSelected = false;
+ btnShowHistroyData_Month.IsSelected = true;
+ btnShowHistroyData_Week.IsSelected = false;
+ curQueryType = "month";
+ LoadMothed_GetSensorHistoryData();
+ };
+ btnShowHistroyData_Week.MouseUpEventHandler = (sender, e) =>
+ {
+ showDataTypeView.BackgroundImagePath = "FunctionIcon/EnvironmentalScience/SensorHistoryBg2.png";
+ btnShowHistroyData_Day.IsSelected = false;
+ btnShowHistroyData_Month.IsSelected = false;
+ btnShowHistroyData_Week.IsSelected = true;
+ curQueryType = "week";
+ LoadMothed_GetSensorHistoryData();
+ };
+
+ }
+
+
+ }
+
+ public class EnvironmentalSensorHistor
+ {
+ /// <summary>
+ /// </summary>
+ public string fieldName { get; set; }
+
+ /// <summary>
+ /// </summary>
+ public string fieldValue { get; set; }
+ }
+}
\ No newline at end of file
--
Gitblit v1.8.0