From e13a9980ce617db1394a76944186c5d5bd595d5d Mon Sep 17 00:00:00 2001 From: wei <kaede@kaededeMacBook-Air.local> Date: 星期三, 02 六月 2021 14:37:12 +0800 Subject: [PATCH] 5月需求bug修复 --- HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs | 254 +++++++++++++++++++++++--------------------------- 1 files changed, 118 insertions(+), 136 deletions(-) diff --git a/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs b/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs index 9ef23cc..01603a3 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,14 @@ MyEchartsViewOn myEchartsView; - Sensor sensor; + Sensor sensorTemp = new Sensor(); - List<Sensor> showSensors; + Function function; + List<Function> showFunctions; + /// <summary> + /// 褰撳墠鏌ヨ绫诲瀷 + /// </summary> + string curQueryType = "hour"; List<uint> tipColorList = new List<uint>() { @@ -34,17 +41,16 @@ "#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); } public void LoadPage() { - bodyView.BackgroundColor = CSS_Color.BackgroundColor; VerticalScrolViewLayout contentView = new VerticalScrolViewLayout() @@ -61,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, @@ -112,7 +118,7 @@ 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 @@ -134,7 +140,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 +165,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 +225,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 +235,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 +293,7 @@ TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); break; - case FunctionType.Temp: + case SPK.SensorTemperature: tipValuesView.AddChidren(new Button() { Width = Application.GetRealWidth(50), @@ -359,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, @@ -412,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), @@ -470,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, @@ -482,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, @@ -490,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, @@ -498,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, @@ -506,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, @@ -553,7 +554,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 +568,7 @@ TextColor = CSS_Color.PromptingColor1, TextAlignment = TextAlignment.CenterLeft, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, - Text = sensor.GetRoomListName() + Text = function.GetRoomListName() }; selfInfoView.AddChidren(btnFromFoorAndRoom); @@ -606,15 +607,32 @@ 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 +644,16 @@ 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; } - contentView.ScrollEnabled = true; if (initTitleButton) @@ -690,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() { @@ -754,14 +770,31 @@ 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(sensor.functionTypeNameId)).LoadTopView(); + new TopViewDiv(bodyView, Language.StringByID(sensorTemp.GetFunctionTypeNameId(function.spk))).LoadTopView(); - LoadMothed_GetSensorHistoryData(QueryType.NowDay); + LoadMothed_GetSensorHistoryData(); LoadEvent_ChangeSensorHistoryShowType(); } } @@ -770,23 +803,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 +818,55 @@ 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 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.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 +890,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 +900,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 +909,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