From d4811b7d34b45ff6b21b97f11da128b5572ec526 Mon Sep 17 00:00:00 2001 From: wei <kaede@kaededeMacBook-Air.local> Date: 星期三, 03 三月 2021 16:03:03 +0800 Subject: [PATCH] 20210303-1 --- HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs | 351 +++++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 261 insertions(+), 90 deletions(-) diff --git a/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs b/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs index cb677ce..594196b 100644 --- a/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs +++ b/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs @@ -3,38 +3,59 @@ using HDL_ON.Entity; using HDL_ON.UI.CSS; using System.Collections.Generic; +using HDL_ON.DAL.Server; 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; + + FrameLayout historyDataView; + + MyEchartsViewOn myEchartsView; Sensor sensor; + + List<Sensor> showSensors; + /// <summary> + /// 褰撳墠鏌ヨ绫诲瀷 + /// </summary> + string curQueryType = "hour"; List<uint> tipColorList = new List<uint>() { 0xFF80AEFF,0xFFFFD154,0xFFFF9D54,0xFFFE6A6A,0xFFB183C3,0xFFADE764, }; + List<string> tipColorStringList = new List<string>() + { + "#80AEFF","#FFD154","#FF9D54","#FE6A6A","#B183C3","#ADE764", + }; + public EnvironmentalSensorPage(Sensor ss) { bodyView = this; sensor = ss; + showSensors = new List<Sensor>(); + showSensors.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); @@ -53,7 +74,7 @@ contentView.AddChidren(diagramView); #region 閫夋嫨鏁版嵁鏃ユ湡鑼冨洿 - FrameLayout showDataTypeView = new FrameLayout() + showDataTypeView = new FrameLayout() { X = Application.GetRealWidth(183), Y = Application.GetRealHeight(12), @@ -63,7 +84,7 @@ }; diagramView.AddChidren(showDataTypeView); - Button btnShowHistroyData_Day = new Button() + btnShowHistroyData_Day = new Button() { Width = Application.GetRealWidth(48), TextAlignment = TextAlignment.Center, @@ -75,7 +96,7 @@ }; showDataTypeView.AddChidren(btnShowHistroyData_Day); - Button btnShowHistroyData_Week = new Button() + btnShowHistroyData_Week = new Button() { X = Application.GetRealWidth(48), Width = Application.GetRealWidth(48), @@ -87,8 +108,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 +116,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,45 +130,9 @@ }; 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() @@ -180,12 +163,11 @@ }; diagramView.AddChidren(tipTextView); - - switch (sensor.functionType) + switch (sensor.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 +223,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 +291,7 @@ TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); break; - case FunctionType.Temp: + case SPK.SensorTemperature: tipValuesView.AddChidren(new Button() { Width = Application.GetRealWidth(50), @@ -433,7 +411,7 @@ //_levelTextList.Add(StringId.); //_levelTextList.Add(StringId.ExtremeHeat); break; - case FunctionType.TVOC: + case SPK.SensorTVOC: tipValuesView.AddChidren(new Button() { Width = Application.GetRealWidth(101), @@ -491,7 +469,7 @@ TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); break; - case FunctionType.Humidity: + case SPK.SensorHumidity: tipValuesView.AddChidren(new Button() { Width = Application.GetRealWidth(151), @@ -545,7 +523,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, @@ -579,8 +557,7 @@ }; selfInfoView.AddChidren(btnSeltSensorName); - - Button btnFromFoorAndRoom = new Button() + Button btnFromFoorAndRoom = new Button() { X = Application.GetRealWidth(16), Y = btnSeltSensorName.Bottom, @@ -616,7 +593,8 @@ }; selfInfoView.AddChidren(btnSeltSensorValue); - var btnShowData = new Button() + Button btnShowData; + btnShowData = new Button() { X = Application.GetRealWidth(291), Y = Application.GetRealWidth(62), @@ -624,9 +602,27 @@ 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) => { @@ -646,17 +642,19 @@ bool initTitleButton = true; - foreach (var tempSensor in DB_ResidenceData.residenceData.functionList.sensorsEnvironmentalScience) + foreach (var tempSensor in FunctionList.List.sensorsEnvironmentalScience) { - if(tempSensor.sid == sensor.sid) + if (tempSensor.sid == sensor.sid) { continue; } - if(tempSensor.functionType != sensor.functionType) + if (tempSensor.spk != sensor.spk) { continue; } - if(initTitleButton) + contentView.ScrollEnabled = true; + + if (initTitleButton) { Button btnOthreTitle = new Button() { @@ -711,7 +709,6 @@ IsBold = true, }; otherInfoView.AddChidren(btnSensorName); - Button btnFromFoorAndRoom1 = new Button() { @@ -771,20 +768,194 @@ SelectedImagePath = "FunctionIcon/EnvironmentalScience/DiagramIconOn.png", }; otherInfoView.AddChidren(btnShowData1); - + btnShowData1.MouseUpEventHandler = (sender, e) => { + btnShowData1.IsSelected = !btnShowData1.IsSelected; + if (btnShowData1.IsSelected) + { + if (!showSensors.Contains(sensor)) + { + showSensors.Add(sensor); + } + } + else + { + if (showSensors.Contains(sensor)) + { + showSensors.Remove(sensor); + } + } + LoadMothed_GetSensorHistoryData(); + }; #endregion - - - } - #endregion - - - new TopViewDiv(bodyView, Language.StringByID(sensor.functionTypeNameId)).LoadTopView(); + + LoadMothed_GetSensorHistoryData(); + LoadEvent_ChangeSensorHistoryShowType(); + } + } + + + //------------ + public partial class EnvironmentalSensorPage + { + /// <summary> + /// 璇诲彇浼犳劅鍣ㄥ巻鍙叉暟鎹� + /// </summary> + void LoadMothed_GetSensorHistoryData() + { + string echartRootJsonString; + EchartsOption echartRootJson = new EchartsOption(); + var seriesList = new List<EchartSeriesItem>(); + echartRootJson.xAxis.data = new List<string>(); + 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; + + foreach (var sr in FunctionList.List.sensorsEnvironmentalScience) + { + if (sr.spk != sensor.spk) + { + continue; + } + if (showSensors.Find((obj) => obj.sid == sr.sid) == null) + { + i++; + continue; + } + + var sensorType = sr.spk.Split(".")[0]; + var revertObj = new HttpServerRequest().GetSensorHistory(curQueryType, sr.deviceId,sensorType); + + if (revertObj != null) + { + if (revertObj.Code == StateCode.SUCCESS) + { + var revertData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<EnvironmentalSensorHistor>>(revertObj.Data.ToString()); + + var sItem = new EchartSeriesItem + { + name = sr.GetRoomListName(), + data = new List<int>(), + lineStyle = new EchartLineStyle() + { + color = tipColorStringList[i], +#if __IOS__ + width = 5, +#elif __ANDROID__ + width = 2, +#endif + }, + }; + + foreach (var d in revertData) + { + echartRootJson.xAxis.data.Add(d.fieldName); + echartRootJson.yAxis.data.Add(d.fieldValue); + } + seriesList.Add(sItem); + } + else + { + Application.RunOnMainThread(() => + { + new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.GetSensorHistoryFailed), true); + }); + } + } + i++; + } + + echartRootJson.series = seriesList; + + +#if __IOS__ + echartRootJson.xAxis.axisLabel.fontSize = 22; + echartRootJson.yAxis.axisLabel.fontSize = 22; +#else + echartRootJson.xAxis.axisLabel.fontSize = 8; + echartRootJson.yAxis.axisLabel.fontSize = 8; +#endif + echartRootJsonString = Newtonsoft.Json.JsonConvert.SerializeObject(echartRootJson); + Application.RunOnMainThread(() => + { + myEchartsView.ShowWithOptionJsonString(echartRootJsonString); + }); + + } + 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 = "week"; + 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 = "month"; + LoadMothed_GetSensorHistoryData(); + }; + + } + + void LoadEvent_SwitchOtherRoomSensorData() + { } } -} + + 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