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<Sensor> showSensors;
|
/// <summary>
|
/// 当前查询类型
|
/// </summary>
|
QueryType curQueryType = QueryType.NowDay;
|
|
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);
|
|
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,
|
TextID = 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.PM10:
|
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.Noise:
|
// break;
|
case FunctionType.WindPower:
|
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.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//最近七天
|
}
|
|
/// <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("Loading...");
|
});
|
var curMonth = 0;
|
if(curQueryType == QueryType.NowMonth)
|
{
|
curMonth = DateTime.Now.Month;
|
}
|
int i = 0;
|
foreach (var tempSensor in DB_ResidenceData.residenceData.functionList.sensorsEnvironmentalScience)
|
{
|
if (tempSensor.sid == sensor.sid)
|
{
|
continue;
|
}
|
if (tempSensor.functionType != sensor.functionType)
|
{
|
continue;
|
}
|
var sr = DB_ResidenceData.residenceData.functionList.sensorsEnvironmentalScience[i];
|
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<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 (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<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;
|
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
|
{
|
|
/// <summary>
|
/// 实际目标值
|
/// </summary>
|
public float TargetValue { get; set; }
|
|
/// <summary>
|
/// 查询的时间集群
|
/// </summary>
|
public DateTime CreatedOnUtc { get; set; }
|
}
|
}
|