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 | 324 +++++++++++++++++++++++++++-------------------------- 1 files changed, 167 insertions(+), 157 deletions(-) diff --git a/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs b/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs index 9ef23cc..de2bdaa 100644 --- a/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs +++ b/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs @@ -3,6 +3,8 @@ 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 { @@ -20,9 +22,15 @@ MyEchartsViewOn myEchartsView; - Sensor sensor; + Sensor sensorTemp = new Sensor(); - List<Sensor> showSensors; + Function function; + List<Function> showFunctions; + List<Function> sensorList; + /// <summary> + /// 褰撳墠鏌ヨ绫诲瀷 + /// </summary> + string curQueryType = "hour"; List<uint> tipColorList = new List<uint>() { @@ -34,17 +42,27 @@ "#80AEFF","#FFD154","#FF9D54","#FE6A6A","#B183C3","#ADE764", }; - public EnvironmentalSensorPage(Sensor ss) + public EnvironmentalSensorPage(Function ss) { bodyView = this; - sensor = ss; - showSensors = new List<Sensor>(); - showSensors.Add(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() @@ -61,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, @@ -112,7 +130,7 @@ 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 @@ -122,7 +140,7 @@ Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(52), Width = Application.GetRealWidth(343 - 32), - Height = Application.GetRealHeight(270), + Height = Application.GetRealWidth(270), }; diagramView.AddChidren(historyDataView); @@ -134,7 +152,7 @@ HorizontalScrolViewLayout tipValuesView = new HorizontalScrolViewLayout() { Gravity = Gravity.CenterHorizontal, - Y = Application.GetRealHeight(348), + Y = Application.GetRealWidth(348), Width = Application.GetRealWidth(303), Height = Application.GetRealHeight(30), }; @@ -159,10 +177,9 @@ }; diagramView.AddChidren(tipTextView); - switch (sensor.functionType) + switch (function.spk) { - case FunctionType.PM10: - case FunctionType.PM25: + case SPK.SensorPm25: tipValuesView.AddChidren(new Button() { Width = Application.GetRealWidth(101), @@ -220,7 +237,7 @@ TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); break; - //case FunctionType.PM25: + //case SPK.SensorPm25: //_intervalValue.Add("0 ~ 35"); //_intervalValue.Add("36 ~ 75"); //_intervalValue.Add("76 ~ 115"); @@ -230,11 +247,7 @@ //_levelTextList.Add(StringId.MildPollution); //_levelTextList.Add(StringId.HeavyPollution); //break; - //case FunctionType.Noise: - // break; - case FunctionType.WindPower: - break; - case FunctionType.CO2: + case SPK.SensorCO2: tipValuesView.AddChidren(new Button() { Width = Application.GetRealWidth(101), @@ -292,7 +305,7 @@ TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); break; - case FunctionType.Temp: + case SPK.SensorTemperature: tipValuesView.AddChidren(new Button() { Width = Application.GetRealWidth(50), @@ -359,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, @@ -412,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), @@ -470,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, @@ -482,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, @@ -490,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, @@ -498,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, @@ -506,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, @@ -553,7 +566,7 @@ TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, - Text = sensor.name, + Text = function.name, IsBold = true, }; selfInfoView.AddChidren(btnSeltSensorName); @@ -567,7 +580,7 @@ TextColor = CSS_Color.PromptingColor1, TextAlignment = TextAlignment.CenterLeft, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, - Text = sensor.GetRoomListName() + Text = function.GetRoomListName() }; selfInfoView.AddChidren(btnFromFoorAndRoom); @@ -594,27 +607,44 @@ }; selfInfoView.AddChidren(btnSeltSensorValue); - 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); - + //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; @@ -626,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) @@ -658,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, @@ -690,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() { @@ -723,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); @@ -754,14 +787,36 @@ 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(sensor.functionTypeNameId)).LoadTopView(); + new TopViewDiv(bodyView, Language.StringByID(sensorTemp.GetFunctionTypeNameId(function.spk))).LoadTopView(); - LoadMothed_GetSensorHistoryData(QueryType.NowDay); + LoadMothed_GetSensorHistoryData(); LoadEvent_ChangeSensorHistoryShowType(); } } @@ -770,23 +825,11 @@ //------------ public partial class EnvironmentalSensorPage { - enum QueryType - { - NowDay = 0,//褰撳ぉ - NowMonth = 1,//鎸囧畾鏈� - NowYear = 2,//浠婂勾 - LatelySevenDay = 3//鏈�杩戜竷澶� - } - /// <summary> /// 璇诲彇浼犳劅鍣ㄥ巻鍙叉暟鎹� /// </summary> - void LoadMothed_GetSensorHistoryData(QueryType queryType) + 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, }; @@ -797,91 +840,61 @@ try { Application.RunOnMainThread(() => { - loadPage.Start("Loading..."); + loadPage.Start(Language.StringByID(StringId.PleaseWait)); }); - var curMonth = 0; - if(queryType == QueryType.NowMonth) - { - curMonth = DateTime.Now.Month; - } - for (int i = 0; i < showSensors.Count; i++) - { - var sr = showSensors[i]; - var revertObj = new DAL.Server.HttpServerRequest().GetSensorHistory(sr.bus_Data.SubnetID, sr.bus_Data.DeviceID, - 5, (int)(sr.functionType) % 256, (int)queryType, sr.bus_Data.LoopID, curMonth, - DB_ResidenceData.residenceData.residenceGatewayMAC); + 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.StateCode == "SUCCESS") + if (revertObj.Code == StateCode.SUCCESS) { - var revertData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<SensorPushHistoryRes>>(revertObj.ResponseData.ToString()); + var revertData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<EnvironmentalSensorHistor>>(revertObj.Data.ToString()); - var sItem = new EchartSeriesItem + if (i == 0) { - name = sr.GetRoomListName(), - data = new List<int>(), - lineStyle = new EchartLineStyle() + List<string> vs = new List<string>(); + foreach(var data in revertData) { - color = tipColorStringList[i], -#if __IOS__ - width = 5, -#elif __ANDROID__ - width = 2, -#endif - }, - }; - - int ass = 0; - for (int j = 0; j < revertData.Count; j++) - { - if (revertData[j].TargetValue.ToString() != "NaN") - { - ass = Convert.ToInt32(revertData[j].TargetValue); + vs.Add(data.fieldName); } - sItem.data.Add(ass); - switch (queryType) - { - case QueryType.NowDay: - echartRootJson.xAxis.data.Add(revertData[j].CreatedOnUtc.Hour.ToString()); - break; - case QueryType.LatelySevenDay: - echartRootJson.xAxis.data.Add(System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetDayName(revertData[j].CreatedOnUtc.DayOfWeek)); - break; - case QueryType.NowMonth: - echartRootJson.xAxis.data.Add(revertData[j].CreatedOnUtc.Day.ToString()); - break; - } + ebl.InitXdataText(vs); } - seriesList.Add(sItem); - } - else - { - Application.RunOnMainThread(() => - { - new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.GetSensorHistoryFailed), true); - }); + yDataString += ebl.InitYdataText(sr.name, revertData, tipColorStringList[i]); } } + i++; } - //echartRootJson.title.text = "娓╁害(鈩�)";lineStyle - //echartRootJson.color = new List<string> { "#80AEFF" };//, "FFD154", "FF9D54", "FE6A6A", "B183C3", "ADE764" - 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); + myEchartsView.ShowWithOption(ebl.InitOption()); }); + } catch (Exception ex) { @@ -905,7 +918,8 @@ btnShowHistroyData_Day.IsSelected = true; btnShowHistroyData_Month.IsSelected = false; btnShowHistroyData_Week.IsSelected = false; - LoadMothed_GetSensorHistoryData(QueryType.NowDay); + curQueryType = "hour"; + LoadMothed_GetSensorHistoryData(); }; btnShowHistroyData_Month.MouseUpEventHandler = (sender, e) => @@ -914,7 +928,8 @@ btnShowHistroyData_Day.IsSelected = false; btnShowHistroyData_Month.IsSelected = true; btnShowHistroyData_Week.IsSelected = false; - LoadMothed_GetSensorHistoryData(QueryType.NowMonth); + curQueryType = "month"; + LoadMothed_GetSensorHistoryData(); }; btnShowHistroyData_Week.MouseUpEventHandler = (sender, e) => { @@ -922,28 +937,23 @@ btnShowHistroyData_Day.IsSelected = false; btnShowHistroyData_Month.IsSelected = false; btnShowHistroyData_Week.IsSelected = true; - LoadMothed_GetSensorHistoryData(QueryType.LatelySevenDay); + curQueryType = "week"; + LoadMothed_GetSensorHistoryData(); }; } - void LoadEvent_SwitchOtherRoomSensorData() - { - } } - public class SensorPushHistoryRes + public class EnvironmentalSensorHistor { + /// <summary> + /// </summary> + public string fieldName { get; set; } /// <summary> - /// 瀹為檯鐩爣鍊� /// </summary> - public float TargetValue { get; set; } - - /// <summary> - /// 鏌ヨ鐨勬椂闂撮泦缇� - /// </summary> - public DateTime CreatedOnUtc { get; set; } + public string fieldValue { get; set; } } } \ No newline at end of file -- Gitblit v1.8.0