using System; using Shared; using HDL_ON.Entity; using HDL_ON.UI.CSS; using System.Collections.Generic; namespace HDL_ON.UI { 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 showSensors; /// /// 当前查询类型 /// QueryType curQueryType = QueryType.NowDay; List tipColorList = new List() { 0xFF80AEFF,0xFFFFD154,0xFFFF9D54,0xFFFE6A6A,0xFFB183C3,0xFFADE764, }; List tipColorStringList = new List() { "#80AEFF","#FFD154","#FF9D54","#FE6A6A","#B183C3","#ADE764", }; public EnvironmentalSensorPage(Sensor ss) { bodyView = this; sensor = ss; showSensors = new List(); 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); contentView.AddChidren(new Button() { Height = Application.GetRealHeight(12) }); FrameLayout diagramView = new FrameLayout() { Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(343), Height = Application.GetRealHeight(420), BackgroundColor = CSS_Color.MainBackgroundColor, Radius = (uint)Application.GetRealWidth(12), BorderColor = 0x00000000, BorderWidth = 0, }; contentView.AddChidren(diagramView); #region 选择数据日期范围 showDataTypeView = new FrameLayout() { X = Application.GetRealWidth(183), Y = Application.GetRealHeight(12), Width = Application.GetRealWidth(144), Height = Application.GetRealHeight(24), BackgroundImagePath = "FunctionIcon/EnvironmentalScience/SensorHistoryBg1.png", }; diagramView.AddChidren(showDataTypeView); btnShowHistroyData_Day = new Button() { Width = Application.GetRealWidth(48), TextAlignment = TextAlignment.Center, TextColor = CSS_Color.PromptingColor2, SelectedTextColor = CSS_Color.MainColor, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, IsSelected = true, TextID = StringId.day, }; showDataTypeView.AddChidren(btnShowHistroyData_Day); btnShowHistroyData_Week = new Button() { X = Application.GetRealWidth(48), Width = Application.GetRealWidth(48), TextAlignment = TextAlignment.Center, TextColor = CSS_Color.PromptingColor2, SelectedTextColor = CSS_Color.MainColor, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, TextID = StringId.week, }; showDataTypeView.AddChidren(btnShowHistroyData_Week); btnShowHistroyData_Month = new Button() { X = Application.GetRealWidth(48 * 2), Width = Application.GetRealWidth(48), TextAlignment = TextAlignment.Center, TextColor = CSS_Color.PromptingColor2, SelectedTextColor = CSS_Color.MainColor, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, Text = DateTime.Now.Month.ToString() + Language.StringByID(StringId.month), }; showDataTypeView.AddChidren(btnShowHistroyData_Month); #endregion historyDataView = new FrameLayout() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(52), Width = Application.GetRealWidth(343 - 32), Height = Application.GetRealHeight(270), }; diagramView.AddChidren(historyDataView); myEchartsView = new MyEchartsViewOn(); historyDataView.AddChidren(myEchartsView); #region 底部等级提示 HorizontalScrolViewLayout tipValuesView = new HorizontalScrolViewLayout() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(348), Width = Application.GetRealWidth(303), Height = Application.GetRealHeight(30), }; diagramView.AddChidren(tipValuesView); Button btnColorTip = new Button() { Gravity = Gravity.CenterHorizontal, Y = tipValuesView.Bottom, Width = Application.GetRealWidth(303), Height = Application.GetRealHeight(7), UnSelectedImagePath = "FunctionIcon/EnvironmentalScience/SensorColorTipBg.png", }; diagramView.AddChidren(btnColorTip); HorizontalScrolViewLayout tipTextView = new HorizontalScrolViewLayout() { Gravity = Gravity.CenterHorizontal, Y = btnColorTip.Bottom, Width = Application.GetRealWidth(303), Height = Application.GetRealHeight(30), }; diagramView.AddChidren(tipTextView); switch (sensor.functionType) { case FunctionType.PM25: tipValuesView.AddChidren(new Button() { Width = Application.GetRealWidth(101), Text = "35", TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); tipValuesView.AddChidren(new Button() { Width = Application.GetRealWidth(101), Text = "75", TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); tipValuesView.AddChidren(new Button() { Width = Application.GetRealWidth(101), Text = "115", TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); tipTextView.AddChidren(new Button() { Width = Application.GetRealWidth(75), TextID = StringId.Great, TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); tipTextView.AddChidren(new Button() { Width = Application.GetRealWidth(75), TextID = StringId.Good, TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); tipTextView.AddChidren(new Button() { Width = Application.GetRealWidth(75), TextID = StringId.MildPollution, TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); tipTextView.AddChidren(new Button() { Width = Application.GetRealWidth(75), TextID = StringId.HeavyPollution, TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, 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.CO2: tipValuesView.AddChidren(new Button() { Width = Application.GetRealWidth(101), Text = "1000", TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); tipValuesView.AddChidren(new Button() { Width = Application.GetRealWidth(101), Text = "2000", TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); tipValuesView.AddChidren(new Button() { Width = Application.GetRealWidth(101), Text = "5000", TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); tipTextView.AddChidren(new Button() { Width = Application.GetRealWidth(75), TextID = StringId.SensorReferenceTipCO2Level1, TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); tipTextView.AddChidren(new Button() { Width = Application.GetRealWidth(75), TextID = StringId.SensorReferenceTipCO2Level2, TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); tipTextView.AddChidren(new Button() { Width = Application.GetRealWidth(75), TextID = StringId.SensorReferenceTipCO2Level3, TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); tipTextView.AddChidren(new Button() { Width = Application.GetRealWidth(75), TextID = StringId.SensorReferenceTipCO2Level4, TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); break; case FunctionType.Temp: tipValuesView.AddChidren(new Button() { Width = Application.GetRealWidth(50), Text = "18°C", TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); tipValuesView.AddChidren(new Button() { Width = Application.GetRealWidth(50), Text = "20°C", TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); tipValuesView.AddChidren(new Button() { Width = Application.GetRealWidth(50), Text = "25°C", TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); tipValuesView.AddChidren(new Button() { Width = Application.GetRealWidth(50), Text = "27°C", TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); tipValuesView.AddChidren(new Button() { Width = Application.GetRealWidth(50), Text = "30°C", TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); tipValuesView.AddChidren(new Button() { Width = Application.GetRealWidth(50), Text = "33°C", TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); //_intervalValue.Add("~ 18°C"); //_intervalValue.Add("18 ~ 20°C"); //_intervalValue.Add("20 ~ 25°C"); //_intervalValue.Add("25 ~ 27°C"); //_intervalValue.Add("27 ~ 30°C"); //_intervalValue.Add("30 ~ 33°C"); //_intervalValue.Add("33°C ~"); tipTextView.AddChidren(new Button() { Width = Application.GetRealWidth(43), TextID = StringId.ExtremelyCold, TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); tipTextView.AddChidren(new Button() { Width = Application.GetRealWidth(43), TextID = StringId.ExtremelyCold, TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); tipTextView.AddChidren(new Button() { Width = Application.GetRealWidth(43), TextID = StringId.Cold, TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); tipTextView.AddChidren(new Button() { Width = Application.GetRealWidth(43), TextID = StringId.Comfortable, TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); tipTextView.AddChidren(new Button() { Width = Application.GetRealWidth(43), TextID = StringId.TepidFever, TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); tipTextView.AddChidren(new Button() { Width = Application.GetRealWidth(43), TextID = StringId.Heat_SensorTip, TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); tipTextView.AddChidren(new Button() { Width = Application.GetRealWidth(43), TextID = StringId.ExtremeHeat, TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); //_levelTextList.Add(StringId.ExtremelyCold); //_levelTextList.Add(StringId.); //_levelTextList.Add(StringId.); //_levelTextList.Add(StringId.); //_levelTextList.Add(StringId.); //_levelTextList.Add(StringId.); //_levelTextList.Add(StringId.ExtremeHeat); break; case FunctionType.TVOC: tipValuesView.AddChidren(new Button() { Width = Application.GetRealWidth(101), Text = "0.6", TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); tipValuesView.AddChidren(new Button() { Width = Application.GetRealWidth(101), Text = "2", TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); tipValuesView.AddChidren(new Button() { Width = Application.GetRealWidth(101), Text = "5", TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); tipTextView.AddChidren(new Button() { Width = Application.GetRealWidth(75), TextID = StringId.SensorReferenceTVOCTipLevel1, TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); tipTextView.AddChidren(new Button() { Width = Application.GetRealWidth(75), TextID = StringId.SensorReferenceTVOCTipLevel2, TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); tipTextView.AddChidren(new Button() { Width = Application.GetRealWidth(75), TextID = StringId.SensorReferenceTVOCTipLevel3, TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); tipTextView.AddChidren(new Button() { Width = Application.GetRealWidth(75), TextID = StringId.SensorReferenceTVOCTipLevel4, TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); break; case FunctionType.Humidity: tipValuesView.AddChidren(new Button() { Width = Application.GetRealWidth(151), Text = "70", TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); tipValuesView.AddChidren(new Button() { Width = Application.GetRealWidth(151), Text = "40", TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); tipTextView.AddChidren(new Button() { Width = Application.GetRealWidth(101), TextID = StringId.SensorReferenceTVOCTipLevel1, TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); tipTextView.AddChidren(new Button() { Width = Application.GetRealWidth(101), TextID = StringId.SensorReferenceTVOCTipLevel2, TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); tipTextView.AddChidren(new Button() { Width = Application.GetRealWidth(101), TextID = StringId.SensorReferenceTVOCTipLevel3, TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, }); break; } #endregion contentView.AddChidren(new Button() { Height = Application.GetRealHeight(12) }); #region 当前房间传感器信息栏 FrameLayout selfInfoView = new FrameLayout() { Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(343), Height = Application.GetRealWidth(100), BackgroundColor = CSS_Color.MainBackgroundColor, Radius = (uint)Application.GetRealWidth(12), BorderColor = 0x00000000, BorderWidth = 0, }; contentView.AddChidren(selfInfoView); Button btnTipColor = new Button() { X = Application.GetRealWidth(8), Y = Application.GetRealWidth(16), Width = Application.GetRealWidth(12), Height = Application.GetRealWidth(12), BackgroundColor = tipColorList[0], Radius = (uint)Application.GetRealWidth(2), BorderColor = 0x00000000, BorderWidth = 0, }; selfInfoView.AddChidren(btnTipColor); Button btnSeltSensorName = new Button() { X = Application.GetRealWidth(28), Y = Application.GetRealWidth(10), Width = Application.GetRealWidth(250), Height = Application.GetRealWidth(24), TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, Text = sensor.name, IsBold = true, }; selfInfoView.AddChidren(btnSeltSensorName); Button btnFromFoorAndRoom = new Button() { X = Application.GetRealWidth(16), Y = btnSeltSensorName.Bottom, Width = Application.GetRealWidth(270), Height = Application.GetRealHeight(21), TextColor = CSS_Color.PromptingColor1, TextAlignment = TextAlignment.CenterLeft, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, Text = sensor.GetRoomListName() }; selfInfoView.AddChidren(btnFromFoorAndRoom); var btnSetting = new Button() { X = Application.GetRealWidth(291), Y = Application.GetRealWidth(6), Width = Application.GetMinRealAverage(32), Height = Application.GetMinRealAverage(32), UnSelectedImagePath = "Public/FuncInfoSetIcon.png", }; selfInfoView.AddChidren(btnSetting); Button btnSeltSensorValue = new Button() { X = Application.GetRealWidth(16), Y = Application.GetRealWidth(47), Width = Application.GetRealWidth(200), Height = Application.GetRealWidth(43), TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, IsBold = true, TextSize = CSS_FontSize.HeadlineFontSize, }; 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); //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; }; var infoView = new FunctionBaseInfoSetPage(sensor, backAction); MainPage.BasePageView.AddChidren(infoView); infoView.LoadPage(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; #endregion #region 其它区域传感器信息栏 contentView.AddChidren(new Button() { Height = Application.GetRealHeight(12) }); bool initTitleButton = true; foreach (var tempSensor in DB_ResidenceData.functionList.sensorsEnvironmentalScience) { if (tempSensor.sid == sensor.sid) { continue; } if (tempSensor.functionType != sensor.functionType) { continue; } contentView.ScrollEnabled = true; if (initTitleButton) { Button btnOthreTitle = new Button() { X = Application.GetRealWidth(16), Width = Application.GetRealWidth(200), Height = Application.GetRealWidth(38), TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.SubheadingFontSize, TextID = StringId.OtherArea, }; contentView.AddChidren(btnOthreTitle); initTitleButton = false; } #region 其它传感器信息栏 FrameLayout otherInfoView = new FrameLayout() { Gravity = Gravity.CenterVertical, Width = Application.GetRealWidth(343), Height = Application.GetRealWidth(100), BackgroundColor = CSS_Color.MainBackgroundColor, Radius = (uint)Application.GetRealWidth(12), BorderColor = 0x00000000, BorderWidth = 0, }; contentView.AddChidren(otherInfoView); Button btnTipColor1 = new Button() { X = Application.GetRealWidth(8), Y = Application.GetRealWidth(16), Width = Application.GetRealWidth(12), Height = Application.GetRealWidth(12), BackgroundColor = tipColorList[0], Radius = (uint)Application.GetRealWidth(2), BorderWidth = 0, BorderColor = 0x00000000, }; otherInfoView.AddChidren(btnTipColor1); Button btnSensorName = new Button() { X = Application.GetRealWidth(28), Y = Application.GetRealWidth(10), Width = Application.GetRealWidth(250), Height = Application.GetRealWidth(24), TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, Text = sensor.name, IsBold = true, }; otherInfoView.AddChidren(btnSensorName); Button btnFromFoorAndRoom1 = new Button() { X = Application.GetRealWidth(16), Y = btnSeltSensorName.Bottom, Width = Application.GetRealWidth(270), Height = Application.GetRealHeight(21), TextColor = CSS_Color.PromptingColor1, TextAlignment = TextAlignment.CenterLeft, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, Text = tempSensor.GetRoomListName() }; otherInfoView.AddChidren(btnFromFoorAndRoom1); var btnSetting1 = new Button() { X = Application.GetRealWidth(291), Y = Application.GetRealWidth(6), Width = Application.GetMinRealAverage(32), Height = Application.GetMinRealAverage(32), UnSelectedImagePath = "Public/FuncInfoSetIcon.png", }; otherInfoView.AddChidren(btnSetting1); btnSetting1.MouseUpEventHandler = (sender, e) => { Action backAction = () => { btnSeltSensorName.Text = tempSensor.name; }; var infoView = new FunctionBaseInfoSetPage(tempSensor, backAction); MainPage.BasePageView.AddChidren(infoView); infoView.LoadPage(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; Button btnSensorValue = new Button() { X = Application.GetRealWidth(16), Y = Application.GetRealWidth(47), Width = Application.GetRealWidth(200), Height = Application.GetRealWidth(43), TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, IsBold = true, TextSize = CSS_FontSize.HeadlineFontSize, }; otherInfoView.AddChidren(btnSensorValue); var btnShowData1 = 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", }; 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 { public enum QueryType { NowDay = 0,//当天 NowMonth = 1,//指定月 NowYear = 2,//今年 LatelySevenDay = 3//最近七天 } /// /// 读取传感器历史数据 /// void LoadMothed_GetSensorHistoryData() { string echartRootJsonString; EchartsOption echartRootJson = new EchartsOption(); var seriesList = new List(); echartRootJson.xAxis.data = new List(); var loadPage = new Loading() { LodingBackgroundColor = 0x88888888, }; historyDataView.AddChidren(loadPage); new System.Threading.Thread(() => { try { Application.RunOnMainThread(() => { loadPage.Start("Loading..."); }); var curMonth = 0; if(curQueryType == QueryType.NowMonth) { curMonth = DateTime.Now.Month; } int i = 0; foreach (var sr in DB_ResidenceData.functionList.sensorsEnvironmentalScience) { if (sr.functionType != sensor.functionType) { continue; } if (showSensors.Find((obj) => obj.sid == sr.sid) == null) { i++; continue; } var revertObj = new DAL.Server.HttpServerRequest().GetSensorHistory(sr.bus_Data.SubnetID, sr.bus_Data.DeviceID, 5, (int)(sr.functionType) % 256, (int)curQueryType, sr.bus_Data.LoopID, curMonth, DB_ResidenceData.residenceData.residenceGatewayMAC); if (revertObj != null) { if (revertObj.StateCode == "SUCCESS") { var revertData = Newtonsoft.Json.JsonConvert.DeserializeObject>(revertObj.ResponseData.ToString()); var sItem = new EchartSeriesItem { name = sr.GetRoomListName(), data = new List(), 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 (curQueryType == QueryType.NowMonth && revertData[j].CreatedOnUtc.Day > DateTime.Now.Day ) { continue; } if (revertData[j].TargetValue.ToString() != "NaN") { ass = Convert.ToInt32(revertData[j].TargetValue); } else { ass = 0; } sItem.data.Add(ass); switch (curQueryType) { 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); }); } } i++; } //echartRootJson.title.text = "温度(℃)";lineStyle //echartRootJson.color = new List { "#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; curQueryType = QueryType.NowDay; 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 = QueryType.NowMonth; 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 = QueryType.LatelySevenDay; LoadMothed_GetSensorHistoryData(); }; } void LoadEvent_SwitchOtherRoomSensorData() { } } public class SensorPushHistoryRes { /// /// 实际目标值 /// public float TargetValue { get; set; } /// /// 查询的时间集群 /// public DateTime CreatedOnUtc { get; set; } } }