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/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs | 412 +++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 289 insertions(+), 123 deletions(-) diff --git a/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs b/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs index 70ab625..de2bdaa 100644 --- a/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs +++ b/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs @@ -3,31 +3,66 @@ 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; + List<Function> sensorList; + /// <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); + sensorList = FunctionList.List.GetEnvirSensorsList(); + } + + + public EnvironmentalSensorPage(Function ss,List<Function> functions) + { + bodyView = this; + function = ss; + sensorList = functions; + showFunctions = new List<Function>(); + showFunctions.Add(ss); } public void LoadPage() { - bodyView.BackgroundColor = CSS_Color.BackgroundColor; VerticalScrolViewLayout contentView = new VerticalScrolViewLayout() @@ -44,7 +79,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 +88,7 @@ contentView.AddChidren(diagramView); #region 閫夋嫨鏁版嵁鏃ユ湡鑼冨洿 - FrameLayout showDataTypeView = new FrameLayout() + showDataTypeView = new FrameLayout() { X = Application.GetRealWidth(183), Y = Application.GetRealHeight(12), @@ -63,7 +98,7 @@ }; diagramView.AddChidren(showDataTypeView); - Button btnShowHistroyData_Day = new Button() + btnShowHistroyData_Day = new Button() { Width = Application.GetRealWidth(48), TextAlignment = TextAlignment.Center, @@ -75,7 +110,7 @@ }; showDataTypeView.AddChidren(btnShowHistroyData_Day); - Button btnShowHistroyData_Week = new Button() + btnShowHistroyData_Week = new Button() { X = Application.GetRealWidth(48), Width = Application.GetRealWidth(48), @@ -87,8 +122,7 @@ }; showDataTypeView.AddChidren(btnShowHistroyData_Week); - - Button btnShowHistroyData_Month = new Button() + btnShowHistroyData_Month = new Button() { X = Application.GetRealWidth(48 * 2), Width = Application.GetRealWidth(48), @@ -96,66 +130,29 @@ TextColor = CSS_Color.PromptingColor2, SelectedTextColor = CSS_Color.MainColor, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, - TextID = StringId.month, + Text = Language.StringByID(StringId.month),//DateTime.Now.Month.ToString() + }; showDataTypeView.AddChidren(btnShowHistroyData_Month); #endregion - - FrameLayout historyDataView = new FrameLayout() + historyDataView = new FrameLayout() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(52), Width = Application.GetRealWidth(343 - 32), - Height = Application.GetRealHeight(270), + Height = Application.GetRealWidth(270), }; 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 +177,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 +237,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 +305,7 @@ TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); break; - case FunctionType.Temp: + case SPK.SensorTemperature: tipValuesView.AddChidren(new Button() { Width = Application.GetRealWidth(50), @@ -380,7 +372,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 +425,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 +483,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 +495,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 +503,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 +511,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 +519,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 +537,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 +566,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 +580,7 @@ TextColor = CSS_Color.PromptingColor1, TextAlignment = TextAlignment.CenterLeft, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, - Text = sensor.GetRoomListName() + Text = function.GetRoomListName() }; selfInfoView.AddChidren(btnFromFoorAndRoom); @@ -616,25 +607,44 @@ }; selfInfoView.AddChidren(btnSeltSensorValue); - var btnShowData = new Button() - { - X = Application.GetRealWidth(291), - Y = Application.GetRealWidth(62), - Width = Application.GetMinRealAverage(32), - Height = Application.GetMinRealAverage(32), - UnSelectedImagePath = "FunctionIcon/EnvironmentalScience/DiagramIcon.png", - SelectedImagePath = "FunctionIcon/EnvironmentalScience/DiagramIconOn.png", - }; - selfInfoView.AddChidren(btnShowData); - + //Button btnShowData; + //btnShowData = new Button() + //{ + // X = Application.GetRealWidth(291), + // Y = Application.GetRealWidth(62), + // Width = Application.GetMinRealAverage(32), + // 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 +656,17 @@ bool initTitleButton = true; - foreach (var tempSensor in DB_ResidenceData.residenceData.functionList.sensorsEnvironmentalScience) - { - if(tempSensor.sid == sensor.sid) - { - continue; - } - if(tempSensor.functionType != sensor.functionType) - { - continue; - } + foreach (var tempSensor in sensorList) + { + if (tempSensor.sid == function.sid) + { + continue; + } + if (tempSensor.spk != function.spk) + { + continue; + } contentView.ScrollEnabled = true; if (initTitleButton) @@ -678,7 +688,7 @@ #region 鍏跺畠浼犳劅鍣ㄤ俊鎭爮 FrameLayout otherInfoView = new FrameLayout() { - Gravity = Gravity.CenterVertical, + Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(343), Height = Application.GetRealWidth(100), BackgroundColor = CSS_Color.MainBackgroundColor, @@ -710,11 +720,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() { @@ -743,7 +752,11 @@ { Action backAction = () => { - btnSeltSensorName.Text = tempSensor.name; + MainPage.Log("45678i"); + Application.RunOnMainThread(() => + { + btnSeltSensorName.Text = tempSensor.name; + }); }; var infoView = new FunctionBaseInfoSetPage(tempSensor, backAction); MainPage.BasePageView.AddChidren(infoView); @@ -774,20 +787,173 @@ SelectedImagePath = "FunctionIcon/EnvironmentalScience/DiagramIconOn.png", }; otherInfoView.AddChidren(btnShowData1); - + btnShowData1.MouseUpEventHandler = (sender, e) => { + btnShowData1.IsSelected = !btnShowData1.IsSelected; + if (btnShowData1.IsSelected) + { + if (!showFunctions.Contains(tempSensor)) + { + showFunctions.Add(tempSensor); + } + } + else + { + if (showFunctions.Contains(tempSensor)) + { + showFunctions.Remove(tempSensor); + } + } + LoadMothed_GetSensorHistoryData(); + }; #endregion - - + contentView.AddChidren(new Button() + { + Height = Application.GetRealHeight(12), + }); } - #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 showFunctions) + { + if (sr.spk != function.spk) + { + continue; + } + if (showFunctions.Find((obj) => obj.sid == sr.sid) == null) + { + i++; + continue; + } + + var sensorType = sr.spk.Split(".")[1]; + var queryType = sr.GetAttrState("spk").ToString(); + if(queryType == "0") + { + queryType = "value"; + } + + var revertObj = new HttpServerRequest().GetSensorHistory(curQueryType, sr.deviceId, queryType); + 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