From 5de5a26d3825b3182a7d3a18ed1cbdbb78a3f9aa Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期四, 23 七月 2020 16:39:59 +0800 Subject: [PATCH] 2020-07-23 --- HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs | 296 +++++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 226 insertions(+), 70 deletions(-) diff --git a/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs b/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs index 70ab625..9ef23cc 100644 --- a/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs +++ b/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs @@ -6,23 +6,40 @@ 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; 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() @@ -53,7 +70,7 @@ contentView.AddChidren(diagramView); #region 閫夋嫨鏁版嵁鏃ユ湡鑼冨洿 - FrameLayout showDataTypeView = new FrameLayout() + showDataTypeView = new FrameLayout() { X = Application.GetRealWidth(183), Y = Application.GetRealHeight(12), @@ -63,7 +80,7 @@ }; diagramView.AddChidren(showDataTypeView); - Button btnShowHistroyData_Day = new Button() + btnShowHistroyData_Day = new Button() { Width = Application.GetRealWidth(48), TextAlignment = TextAlignment.Center, @@ -75,7 +92,7 @@ }; showDataTypeView.AddChidren(btnShowHistroyData_Day); - Button btnShowHistroyData_Week = new Button() + btnShowHistroyData_Week = new Button() { X = Application.GetRealWidth(48), Width = Application.GetRealWidth(48), @@ -87,8 +104,7 @@ }; showDataTypeView.AddChidren(btnShowHistroyData_Week); - - Button btnShowHistroyData_Month = new Button() + btnShowHistroyData_Month = new Button() { X = Application.GetRealWidth(48 * 2), Width = Application.GetRealWidth(48), @@ -101,8 +117,7 @@ showDataTypeView.AddChidren(btnShowHistroyData_Month); #endregion - - FrameLayout historyDataView = new FrameLayout() + historyDataView = new FrameLayout() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(52), @@ -111,45 +126,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 +159,12 @@ }; diagramView.AddChidren(tipTextView); - switch (sensor.functionType) { case FunctionType.PM10: case FunctionType.PM25: - tipValuesView.AddChidren(new Button() { + tipValuesView.AddChidren(new Button() + { Width = Application.GetRealWidth(101), Text = "35", TextAlignment = TextAlignment.Center, @@ -242,15 +221,15 @@ }); 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; + //_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: @@ -545,7 +524,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 +558,7 @@ }; selfInfoView.AddChidren(btnSeltSensorName); - - Button btnFromFoorAndRoom = new Button() + Button btnFromFoorAndRoom = new Button() { X = Application.GetRealWidth(16), Y = btnSeltSensorName.Bottom, @@ -616,7 +594,8 @@ }; selfInfoView.AddChidren(btnSeltSensorValue); - var btnShowData = new Button() + Button btnShowData; + btnShowData = new Button() { X = Application.GetRealWidth(291), Y = Application.GetRealWidth(62), @@ -624,6 +603,7 @@ Height = Application.GetMinRealAverage(32), UnSelectedImagePath = "FunctionIcon/EnvironmentalScience/DiagramIcon.png", SelectedImagePath = "FunctionIcon/EnvironmentalScience/DiagramIconOn.png", + IsSelected = true, }; selfInfoView.AddChidren(btnShowData); @@ -648,11 +628,11 @@ foreach (var tempSensor in DB_ResidenceData.residenceData.functionList.sensorsEnvironmentalScience) { - if(tempSensor.sid == sensor.sid) + if (tempSensor.sid == sensor.sid) { continue; } - if(tempSensor.functionType != sensor.functionType) + if (tempSensor.functionType != sensor.functionType) { continue; } @@ -777,17 +757,193 @@ #endregion - - - } - #endregion - - - new TopViewDiv(bodyView, Language.StringByID(sensor.functionTypeNameId)).LoadTopView(); + + LoadMothed_GetSensorHistoryData(QueryType.NowDay); + LoadEvent_ChangeSensorHistoryShowType(); + } + } + + + //------------ + public partial class EnvironmentalSensorPage + { + enum QueryType + { + NowDay = 0,//褰撳ぉ + NowMonth = 1,//鎸囧畾鏈� + NowYear = 2,//浠婂勾 + LatelySevenDay = 3//鏈�杩戜竷澶� + } + + /// <summary> + /// 璇诲彇浼犳劅鍣ㄥ巻鍙叉暟鎹� + /// </summary> + void LoadMothed_GetSensorHistoryData(QueryType queryType) + { + 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("Loading..."); + }); + 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); + + if (revertObj != null) + { + if (revertObj.StateCode == "SUCCESS") + { + var revertData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<SensorPushHistoryRes>>(revertObj.ResponseData.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 + }, + }; + + int ass = 0; + for (int j = 0; j < revertData.Count; j++) + { + if (revertData[j].TargetValue.ToString() != "NaN") + { + ass = Convert.ToInt32(revertData[j].TargetValue); + } + 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; + } + } + seriesList.Add(sItem); + } + else + { + Application.RunOnMainThread(() => + { + new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.GetSensorHistoryFailed), true); + }); + } + } + } + + //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); + }); + } + 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; + LoadMothed_GetSensorHistoryData(QueryType.NowDay); + }; + + btnShowHistroyData_Month.MouseUpEventHandler = (sender, e) => + { + showDataTypeView.BackgroundImagePath = "FunctionIcon/EnvironmentalScience/SensorHistoryBg3.png"; + btnShowHistroyData_Day.IsSelected = false; + btnShowHistroyData_Month.IsSelected = true; + btnShowHistroyData_Week.IsSelected = false; + LoadMothed_GetSensorHistoryData(QueryType.NowMonth); + }; + btnShowHistroyData_Week.MouseUpEventHandler = (sender, e) => + { + showDataTypeView.BackgroundImagePath = "FunctionIcon/EnvironmentalScience/SensorHistoryBg2.png"; + btnShowHistroyData_Day.IsSelected = false; + btnShowHistroyData_Month.IsSelected = false; + btnShowHistroyData_Week.IsSelected = true; + LoadMothed_GetSensorHistoryData(QueryType.LatelySevenDay); + }; + + } + + void LoadEvent_SwitchOtherRoomSensorData() + { } } -} + + public class SensorPushHistoryRes + { + + /// <summary> + /// 瀹為檯鐩爣鍊� + /// </summary> + public float TargetValue { get; set; } + + /// <summary> + /// 鏌ヨ鐨勬椂闂撮泦缇� + /// </summary> + public DateTime CreatedOnUtc { get; set; } + } +} \ No newline at end of file -- Gitblit v1.8.0