using System;
using System.Collections.Generic;
using HDL_ON.DriverLayer;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
using Shared;
namespace HDL_ON.UI
{
public class EnvironmentalPage : FrameLayout
{
#region 控件集合
static EnvironmentalPage bodyView;
///
/// 楼层显示
///
Button btnRoom;
///
/// 房间选择下拉图标
///
Button btnFoorDownIcon;
///
/// 房间选择触发区域
///
Button btnRoomClickRow;
///
/// 传感器列表区域
///
FrameLayout sensorListView;
VerticalScrolViewLayout sensorListContentView;
///
/// 天气名称文本
///
Button btnWatherText;
///
/// 湿度数据文本
///
Button btnHumidityText;
///
/// pm25数据文本
///
Button btnPm25Values;
///
/// 风速数据文本
///
Button btnFanSpeedValues;
#endregion
#region 区域变量
Room room;
Sensor sensorTemp = new Sensor();
#endregion
public EnvironmentalPage()
{
bodyView = this;
}
///
/// 加载界面
///
/// 收藏按钮
/// 功能名称信息按钮
/// 功能楼层信息按钮
public void LoadPage()
{
bodyView.BackgroundColor = CSS_Color.BackgroundColor;
#region 顶部天气部分
var topWeatherView = new FrameLayout()
{
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealHeight(73),
Width = Application.GetRealWidth(361),
Height = Application.GetRealWidth(166),
BackgroundImagePath = "FunctionIcon/EnvirSensor/0.png",
};
bodyView.AddChidren(topWeatherView);
LoadEvent_ChangeWeatherIcon(topWeatherView);
var btnLocationText = new Button()
{
X = Application.GetRealWidth(27),
Width = Application.GetRealWidth(74),
Height = Application.GetRealWidth(44),
TextAlignment = TextAlignment.CenterLeft,
TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
TextColor = CSS_Color.FirstLevelTitleColor,
Text = MainPage.cityInfo.location,
};
topWeatherView.AddChidren(btnLocationText);
var btnTemp = new Button()
{
X = Application.GetRealWidth(21),
Y = Application.GetRealWidth(53),
Width = Application.GetRealWidth(78),
Height = Application.GetRealWidth(68),
TextSize = 60,
IsBold = true,
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
Text = MainPage.cityInfo.temperature,
};
topWeatherView.AddChidren(btnTemp);
var btnTempUint = new Button()
{
X = Application.GetRealWidth(109),
Y = Application.GetRealWidth(60),
Width = Application.GetRealWidth(20),
Height = Application.GetRealWidth(20),
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
TextColor = CSS_Color.TextualColor,
Text = "°C",
};
topWeatherView.AddChidren(btnTempUint);
btnWatherText = new Button()
{
X = Application.GetRealWidth(109),
Y = Application.GetRealWidth(82),
Width = Application.GetRealWidth(200),
Height = Application.GetRealWidth(20),
TextColor = CSS_Color.TextualColor,
TextSize = CSS_FontSize.TextFontSize,
TextAlignment = TextAlignment.CenterLeft,
Text = MainPage.cityInfo.weather
};
topWeatherView.AddChidren(btnWatherText);
var btnTempUpperLimit = new Button()
{
X = Application.GetRealWidth(107),
Y = Application.GetRealWidth(101),
Width = Application.GetRealWidth(16),
Height = Application.GetRealWidth(16),
UnSelectedImagePath = "FunctionIcon/EnvirSensor/UpperLimit.png",
};
topWeatherView.AddChidren(btnTempUpperLimit);
var btnTempUpperLimitText = new Button()
{
X = btnTempUpperLimit.Right,
Y = Application.GetRealWidth(101),
Width = Application.GetRealWidth(42),
Height = Application.GetRealWidth(20),
TextColor = CSS_Color.TextualColor,
TextAlignment = TextAlignment.CenterLeft,
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
Text = $"{MainPage.cityInfo.highestTemperature}°C",
};
topWeatherView.AddChidren(btnTempUpperLimitText);
var btnTempLowerLimit = new Button()
{
X = Application.GetRealWidth(156),
Y = Application.GetRealWidth(101),
Width = Application.GetRealWidth(16),
Height = Application.GetRealWidth(16),
UnSelectedImagePath = "FunctionIcon/EnvirSensor/LowerLimit.png",
};
topWeatherView.AddChidren(btnTempLowerLimit);
var btnTempLowerLimitText = new Button()
{
X = btnTempLowerLimit.Right,
Y = Application.GetRealWidth(101),
Width = Application.GetRealWidth(42),
Height = Application.GetRealWidth(20),
TextColor = CSS_Color.TextualColor,
TextAlignment = TextAlignment.CenterLeft,
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
Text = $"{MainPage.cityInfo.lowestTemperature}°C",
};
topWeatherView.AddChidren(btnTempLowerLimitText);
var btnValue = new Button()
{
X = Application.GetRealWidth(27),
Y = Application.GetRealWidth(119),
Width = Application.GetRealWidth(300),
Height = Application.GetRealWidth(34),
TextAlignment = TextAlignment.CenterLeft,
TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
TextColor = CSS_Color.TextualColor,
};
topWeatherView.AddChidren(btnValue);
var valueText = Language.StringByID(StringId.EnvirSensorValueTip);
btnValue.Text = valueText.Replace("{0}", $"{MainPage.cityInfo.humidity}").Replace("{1}", $"{MainPage.cityInfo.pm25}").Replace("{2}", $"{MainPage.cityInfo.windLevel}");
#endregion
#region contentView
FrameLayout contentView = new FrameLayout()
{
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealWidth(239),
Height = Application.GetRealHeight(450),
};
bodyView.AddChidren(contentView);
#region 房间顶部切换显示区域
room = new Room() { roomName = Language.StringByID(StringId.All) };
btnFoorDownIcon = new Button()
{
Width = Application.GetMinRealAverage(16),
Height = Application.GetMinRealAverage(16),
X = Application.GetRealWidth(16),
Y = Application.GetRealHeight(18),
UnSelectedImagePath = "Public/DownIcon.png",
};
contentView.AddChidren(btnFoorDownIcon);
btnRoom = new Button()
{
X = btnFoorDownIcon.Right,
Y = Application.GetRealHeight(18),
Width = Application.GetRealWidth(200),
Height = Application.GetMinRealAverage(16),
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
TextAlignment = TextAlignment.CenterLeft,
Text = room.roomName,
};
contentView.AddChidren(btnRoom);
btnRoomClickRow = new Button()
{
Height = Application.GetRealHeight(40),
};
contentView.AddChidren(btnRoomClickRow);
#endregion
sensorListContentView = new VerticalScrolViewLayout()
{
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealHeight(50),
Height = Application.GetRealHeight(400),
Radius = (uint)Application.GetRealWidth(12),
BorderColor = 0x00000000,
BorderWidth = 0,
};
contentView.AddChidren(sensorListContentView);
sensorListView = new FrameLayout();
sensorListContentView.AddChidren(sensorListView);
LoadSenesorList();
#endregion
//LoadEventList();
LoadDialog_ChangeRoom();
new TopViewDiv(bodyView, Language.StringByID(StringId.EnvironmentalScience)).LoadTopView();
}
///
/// 加载传感器列表
///
void LoadSenesorList()
{
sensorListView.RemoveAll();
int index = 0;
foreach (var sensor in FunctionList.List.GetEnvirSensorsList())
{
if(SPK.EvironmentSensorList().Contains(sensor.spk))
{
foreach (var seTemp in sensor.attributes)
{
var newTemp = new Function()
{
name = sensor.name,
sid = sensor.sid,
deviceId = sensor.deviceId,
roomIds = sensor.roomIds,
attributes = new List { new FunctionAttributes { key = "value", state = seTemp.state, curValue = seTemp.curValue }
, new FunctionAttributes {key = "spk",state = seTemp.key,curValue = seTemp.key }
//,new FunctionAttributes { key = "spk"}
}
};
switch (seTemp.key)
{
case "co2":
newTemp.spk = SPK.SensorCO2;
newTemp.SetAttrState("spk", "co2");
break;
case "pm25":
newTemp.spk = SPK.SensorPm25;
newTemp.SetAttrState("spk", "pm25");
break;
case "humidity":
newTemp.spk = SPK.SensorHumidity;
newTemp.SetAttrState("spk", "humidity");
break;
case "temperature":
newTemp.spk = SPK.SensorTemperature;
newTemp.SetAttrState("spk", "temperature");
break;
case "tvoc":
newTemp.spk = SPK.SensorTVOC;
newTemp.SetAttrState("spk", "tvoc");
break;
default:
continue;
break;
}
if (room.roomId == "" || sensor.roomIds.Contains(room.roomId))
{
LoadSensorDiv(newTemp, index);
index++;
}
}
}
else
{
if (room.roomId == "" || sensor.roomIds.Contains(room.roomId))
{
LoadSensorDiv(sensor, index);
index++;
}
}
new System.Threading.Thread(() =>
{
Control.Ins.SendReadCommand(sensor);
})
{ IsBackground = true }.Start();
}
sensorListView.Height = Application.GetRealWidth(124 * (index + 1) / 2);
}
///
/// 加载传感器列表
///
void LoadSensorDiv(Function sensor,int index)
{
var levelColorList = sensorTemp.GetLevelColorList(sensor.spk);
var levelTextList = sensorTemp.GetLevelTextList(sensor.spk);
{
var sensorTag = sensor.spk + sensor.sid + sensor.deviceId;
FrameLayout sensorView = new FrameLayout()
{
X = Application.GetRealWidth(7),
Width = Application.GetRealWidth(182),
Height = Application.GetRealWidth(124),
Y = Application.GetRealWidth(124 * (index / 2)),
Tag = sensorTag
};
var imagePath = "";
var iconPath = "";
switch (sensor.spk)
{
case SPK.SensorCO2:
imagePath = "FunctionIcon/EnvirSensor/Co2Bg.png";
iconPath = "FunctionIcon/EnvirSensor/Co2Icon.png";
break;
case SPK.SensorPm25:
imagePath = "FunctionIcon/EnvirSensor/Pm25Bg.png";
iconPath = "FunctionIcon/EnvirSensor/Pm25Icon.png";
break;
case SPK.SensorTVOC:
imagePath = "FunctionIcon/EnvirSensor/TvocBg.png";
iconPath = "FunctionIcon/EnvirSensor/TvocIcon.png";
break;
case SPK.SensorHumidity:
imagePath = "FunctionIcon/EnvirSensor/HumidityBg.png";
iconPath = "FunctionIcon/EnvirSensor/HumidityIcon.png";
break;
case SPK.SensorTemperature:
imagePath = "FunctionIcon/EnvirSensor/TempBg.png";
iconPath = "FunctionIcon/EnvirSensor/TempIcon.png";
break;
case SPK.SensorHcho:
imagePath = "FunctionIcon/EnvirSensor/HchoBg.png";
iconPath = "FunctionIcon/EnvirSensor/HchoIcon.png";
break;
}
sensorView.BackgroundImagePath = imagePath;
if (index % 2 != 0)
{
sensorView.X = Application.GetRealWidth(189);
}
sensorListView.AddChidren(sensorView);
var btnIcon = new Button()
{
X = Application.GetRealWidth(23),
Y = Application.GetRealHeight(17),
Width = Application.GetRealWidth(32),
Height = Application.GetRealWidth(32),
UnSelectedImagePath = iconPath
};
sensorView.AddChidren(btnIcon);
btnIcon.MouseUpEventHandler = (sender, e) =>
{
#region
var esp = new EnvironmentalSensorPage(sensor);
MainPage.BasePageView.AddChidren(esp);
esp.LoadPage();
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
#endregion
};
var btnInfoIcon = new Button()
{
X = Application.GetRealWidth(139),
Y = Application.GetRealHeight(21),
Width = Application.GetRealWidth(24),
Height = Application.GetRealWidth(24),
UnSelectedImagePath = "FunctionIcon/EnvirSensor/InfoIcon.png",
};
sensorView.AddChidren(btnInfoIcon);
btnInfoIcon.MouseUpEventHandler = (sender, e) =>
{
LoadInfo(sensor);
};
var btnLevel = new Button()
{
X = Application.GetRealWidth(25),
Y = Application.GetRealWidth(59),
Width = Application.GetRealWidth(100),
Height = Application.GetRealWidth(32),
TextAlignment = TextAlignment.CenterLeft,
TextColor = sensorTemp.GetLevelColorList(sensor.spk)[sensorTemp.GetCurLevel(sensor) - 1],
TextSize = CSS_FontSize.SubheadingFontSize,
TextID = levelTextList[sensorTemp.GetCurLevel(sensor) - 1],
Tag = "SensorLevel",
};
sensorView.AddChidren(btnLevel);
btnLevel.MouseUpEventHandler = (sender, e) =>
{
#region
var esp = new EnvironmentalSensorPage(sensor);
MainPage.BasePageView.AddChidren(esp);
esp.LoadPage();
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
#endregion
};
var btnSensorValues = new Button()
{
X = Application.GetRealWidth(25),
Y = Application.GetRealWidth(83),
Width = Application.GetRealWidth(100),
Height = Application.GetRealWidth(27),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.PromptingColor1,
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
IsBold = true,
Text = sensor.GetAttrState(FunctionAttributeKey.Value),
Tag = "SensorValues"
};
sensorView.AddChidren(btnSensorValues);
btnSensorValues.MouseUpEventHandler = (sender, e) =>
{
#region
var esp = new EnvironmentalSensorPage(sensor);
MainPage.BasePageView.AddChidren(esp);
esp.LoadPage();
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
#endregion
};
}
}
///
/// 加载传感器等级相关信息
///
void LoadInfo(Function sensor)
{
var levelColorList = sensorTemp.GetLevelColorList(sensor.spk);
var levelTextList = sensorTemp.GetLevelTextList(sensor.spk);
Dialog dialog = new Dialog();
FrameLayout dialogBodyView = new FrameLayout();
dialog.AddChidren(dialogBodyView);
dialogBodyView.MouseUpEventHandler = (sender, e) =>
{
dialog.Close();
};
VerticalScrolViewLayout infoView = new VerticalScrolViewLayout()
{
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealHeight(667 - 94 - (levelColorList.Count * 44) - 20),
Width = Application.GetRealWidth(343),
Height = Application.GetRealHeight(94 + (levelColorList.Count * 44) + levelColorList.Count),
Radius = (uint)Application.GetRealWidth(12),
BackgroundColor = CSS_Color.MainBackgroundColor,
Animate = Animate.DownToUp,
ScrollEnabled = false,
AnimateSpeed = 0.3f,
};
dialogBodyView.AddChidren(infoView);
Button btnTitle = new Button()
{
Height = Application.GetRealHeight(50),
TextColor = CSS_Color.FirstLevelTitleColor,
IsBold = true,
TextSize = CSS_FontSize.SubheadingFontSize,
TextAlignment = TextAlignment.Center,
};
infoView.AddChidren(btnTitle);
switch (sensor.spk)
{
case SPK.SensorPm25:
btnTitle.Text = "PM2.5(ug/m²)";
break;
case SPK.SensorTemperature:
btnTitle.Text = Language.StringByID(StringId.Temp) + "(°C)";
break;
case SPK.SensorTVOC:
btnTitle.Text = "TVOC(PPB)";
break;
case SPK.SensorCO2:
btnTitle.Text = "CO2(PPM)";
break;
case SPK.SensorHumidity:
btnTitle.Text = Language.StringByID(StringId.Humidity) + "(%)";
break;
case SPK.SensorHcho:
btnTitle.Text = Language.StringByID(StringId.Formaldehyde) +"(mg/m3)";
break;
}
FrameLayout subTitleView = new FrameLayout()
{
Height = Application.GetRealHeight(44),
};
infoView.AddChidren(subTitleView);
subTitleView.AddChidren(new Button()
{
X = Application.GetRealWidth(20),
Width = Application.GetRealWidth(100),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.TextFontSize,
IsBold = true,
TextID = StringId.IntervalValue,
});
subTitleView.AddChidren(new Button()
{
Gravity = Gravity.CenterHorizontal,
Width = Application.GetRealWidth(100),
TextAlignment = TextAlignment.Center,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.TextFontSize,
IsBold = true,
TextID = StringId.LevelSensor,
});
subTitleView.AddChidren(new Button()
{
X = Application.GetRealWidth(223),
Width = Application.GetRealWidth(100),
TextAlignment = TextAlignment.CenterRight,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.TextFontSize,
IsBold = true,
TextID = StringId.ColorValue,
});
for (int index = 0; index < levelTextList.Count; index++)
{
infoView.AddChidren(new Button()
{
Gravity = Gravity.CenterHorizontal,
Width = Application.GetRealWidth(303),
Height = Application.GetRealWidth(1),
BackgroundColor = CSS_Color.DividingLineColor,
});
FrameLayout subInfoView = new FrameLayout()
{
Height = Application.GetRealHeight(44),
};
infoView.AddChidren(subInfoView);
subInfoView.AddChidren(new Button()
{
X = Application.GetRealWidth(20),
Width = Application.GetRealWidth(100),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.TextFontSize,
IsBold = true,
Text = sensorTemp.GetIntervalValue(sensor.spk)[index]
});
subInfoView.AddChidren(new Button()
{
Gravity = Gravity.CenterHorizontal,
Width = Application.GetRealWidth(100),
TextAlignment = TextAlignment.Center,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.TextFontSize,
IsBold = true,
TextID = levelTextList[index]
});
subInfoView.AddChidren(new Button()
{
X = Application.GetRealWidth(285),
Gravity = Gravity.CenterVertical,
Width = Application.GetRealWidth(38),
Height = Application.GetRealHeight(18),
Radius = (uint)Application.GetRealWidth(4),
BackgroundColor = levelColorList[index]
});
}
dialog.Show();
}
///
/// 房间列表点击事件
///
void LoadDialog_ChangeRoom()
{
EventHandler eventHandler = (sender, e) =>
{
var dialog = new Dialog();
var dialogBody = new FrameLayout();
dialog.AddChidren(dialogBody);
dialogBody.MouseUpEventHandler += (sender1, e1) =>
{
dialog.Close();
};
var dispalyView = new FrameLayout()
{
X = Application.GetRealWidth(10),
Y = Application.GetRealHeight(266),
Width = Application.GetRealWidth(160),
Height = Application.GetRealHeight(110),
BackgroundImagePath = "PersonalCenter/HomeList1bg.png",
};
dialogBody.AddChidren(dispalyView);
var contentView = new VerticalScrolViewLayout()
{
X = Application.GetRealWidth(8),
Y = Application.GetRealHeight(15),
Width = Application.GetRealWidth(150),
Height = Application.GetRealHeight(45 * 2),
ScrollEnabled = false
};
dispalyView.AddChidren(contentView);
if (SpatialInfo.CurrentSpatial.RoomList.Count < 2)
{
}
else if (SpatialInfo.CurrentSpatial.RoomList.Count < 3)
{
dispalyView = new FrameLayout()
{
X = Application.GetRealWidth(10),
Y = Application.GetRealHeight(266),
Width = Application.GetRealWidth(160),
Height = Application.GetRealHeight(155),
BackgroundImagePath = "PersonalCenter/HomeList2bg.png",
};
dialogBody.AddChidren(dispalyView);
contentView.Height = Application.GetRealHeight(45 * 3);
dispalyView.AddChidren(contentView);
}
else if (SpatialInfo.CurrentSpatial.RoomList.Count < 4)
{
dispalyView = new FrameLayout()
{
X = Application.GetRealWidth(10),
Y = Application.GetRealHeight(266),
Width = Application.GetRealWidth(160),
Height = Application.GetRealHeight(200),
BackgroundImagePath = "PersonalCenter/HomeList3bg.png",
};
dialogBody.AddChidren(dispalyView);
contentView.Height = Application.GetRealHeight(45 * 4);
dispalyView.AddChidren(contentView);
}
else
{
dispalyView = new FrameLayout()
{
X = Application.GetRealWidth(10),
Y = Application.GetRealHeight(266),
Width = Application.GetRealWidth(160),
Height = Application.GetRealHeight(245),
BackgroundImagePath = "PersonalCenter/HomeList4bg.png",
};
dialogBody.AddChidren(dispalyView);
contentView.Height = Application.GetRealHeight(45 * 5);
contentView.ScrollEnabled = true;
dispalyView.AddChidren(contentView);
}
var showListRoom = new List();
showListRoom.Add(new Room() { roomName = Language.StringByID(StringId.All) });
showListRoom.AddRange(SpatialInfo.CurrentSpatial.RoomList);
foreach (var roomTemp in showListRoom)
{
string roomName = roomTemp.roomName;
var btnRoomName = new Button()
{
Gravity = Gravity.CenterHorizontal,
Width = Application.GetRealWidth(112),
Height = Application.GetRealHeight(44),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
SelectedTextColor = CSS_Color.MainColor,
Text = roomName,
TextSize = CSS_FontSize.SubheadingFontSize,
IsSelected = btnRoom.Text == roomName,
IsMoreLines = true,
Tag = roomName
};
contentView.AddChidren(btnRoomName);
btnRoomName.MouseUpEventHandler += (senderH, en) =>
{
dialog.Close();
btnRoom.Text = roomName;
room = roomTemp;
LoadSenesorList();
};
}
dialog.Show();
};
btnRoomClickRow.MouseUpEventHandler = eventHandler;
//btnFoorDownIcon.MouseUpEventHandler = eventHandler;
}
#region event
public static void LoadEvent_UpdataStatus(Function updateTemp)
{
Application.RunOnMainThread(() =>
{
try
{
if (bodyView != null)
{
if (SPK.EvironmentSensorList().Contains(updateTemp.spk ))
{
foreach (var seTemp in updateTemp.attributes)
{
var newTemp = new Function()
{
name = updateTemp.name,
sid = updateTemp.sid,
deviceId = updateTemp.deviceId,
attributes = new List { new FunctionAttributes { key = "value", state = seTemp.state ,curValue = seTemp.curValue} },
};
switch (seTemp.key)
{
case "co2":
newTemp.spk = SPK.SensorCO2;
break;
case "pm25":
newTemp.spk = SPK.SensorPm25;
break;
case "humidity":
newTemp.spk = SPK.SensorHumidity;
break;
case "temperature":
newTemp.spk = SPK.SensorTemperature;
break;
case "tvoc":
newTemp.spk = SPK.SensorTVOC;
break;
case "hcho":
newTemp.spk = SPK.SensorHcho;
break;
}
if(!string.IsNullOrEmpty(newTemp.spk))
{
LoadEvent_UpdataStatus(newTemp);
}
}
}
for (int i = 0; i < bodyView.sensorListView.ChildrenCount; i++)
{
var sensorTag = updateTemp.spk + updateTemp.sid + updateTemp.deviceId;
var view = bodyView.sensorListView.GetChildren(i);
if (view.GetType() == typeof(FrameLayout))
{
if (view.Tag.ToString() != sensorTag)
{
continue;
}
for (int j = 0; j < (view as FrameLayout).ChildrenCount; j++)
{
var btn = (view as FrameLayout).GetChildren(j);
if (btn.GetType() == typeof(Button))
{
if (btn.Tag != null)
{
FunctionAttributes attr = updateTemp.GetAttribute(FunctionAttributeKey.Value);
if(attr == null)
{
switch(updateTemp.spk)
{
case SPK.SensorCO2:
attr = updateTemp.GetAttribute(FunctionAttributeKey.Co2);
break;
case SPK.SensorTemperature:
attr = updateTemp.GetAttribute(FunctionAttributeKey.Temperature);
break;
case SPK.SensorTVOC:
attr = updateTemp.GetAttribute(FunctionAttributeKey.Tvoc);
break;
case SPK.SensorPm25:
attr = updateTemp.GetAttribute(FunctionAttributeKey.Pm25);
break;
case SPK.SensorHcho:
attr = updateTemp.GetAttribute(FunctionAttributeKey.Hcho);
break;
case SPK.SensorHumidity:
attr = updateTemp.GetAttribute(FunctionAttributeKey.Humidity);
break;
}
}
var tag = btn.Tag.ToString();
if (tag == "SensorValues")
{
(btn as Button).Text = attr.state;// updateTemp.GetAttrState(FunctionAttributeKey.Value);
}
else if (tag == "SensorLevel")
{
(btn as Button).TextID = bodyView.sensorTemp.GetLevelTextList(updateTemp.spk)[bodyView.sensorTemp.GetCurLevel(updateTemp) - 1];
(btn as Button).TextColor = bodyView.sensorTemp.GetLevelColorList(updateTemp.spk)[bodyView.sensorTemp.GetCurLevel(updateTemp) - 1];
}
}
}
else if (btn.GetType() == typeof(ArcSeekBar))
{
(btn as ArcSeekBar).ProgressBarColor = bodyView.sensorTemp.GetLevelColorList(updateTemp.spk)[bodyView.sensorTemp.GetCurLevel(updateTemp) - 1];
(btn as ArcSeekBar).Progress = (96 / bodyView.sensorTemp.GetLevelColorList(updateTemp.spk).Count) * bodyView.sensorTemp.GetCurLevel(updateTemp);
}
}
}
}
}
}catch(Exception ex )
{
MainPage.Log($"更新环境传感器界面异常:{ex.Message}");
}
});
}
void LoadEvent_ChangeWeatherIcon(FrameLayout view)
{
switch (MainPage.cityInfo.weather)
{
case "晴":
case "Sunny":
case "晴天":
case "天晴":
case "Clear":
case "大部晴朗":
case "Mostly Sunny":
case "晴時多雲":
case "陽光充沛":
case "Mostly Clear":
view.BackgroundImagePath = "FunctionIcon/EnvirSensor/0.png";
break;
case "多云":
case "Cloudy":
case "多雲":
case "少云":
case "Partly Cloudy":
case "少雲":
view.BackgroundImagePath = "FunctionIcon/EnvirSensor/1.png";
break;
case "阴":
case "Overcast":
case "陰天":
view.BackgroundImagePath = "FunctionIcon/EnvirSensor/2.png";
break;
case "阵雨":
case "Showers":
case "陣雨":
case "驟雨":
case "局部阵雨":
case "Scattered Showers":
case "局地陣雨":
case "局部地區性驟雨":
case "小阵雨":
case "Light Showers":
case "小陣雨":
case "零散驟雨":
case "强阵雨":
case "Heavy Showers":
case "強陣雨":
case "間中有驟雨":
view.BackgroundImagePath = "FunctionIcon/EnvirSensor/3.png";
break;
case "阵雪":
case "Snow Showers":
case "陣雪":
case "驟雪":
case "小阵雪":
case "Light Snow Showers":
case "小陣雪":
case "零散驟雪":
view.BackgroundImagePath = "FunctionIcon/EnvirSensor/13.png";
break;
case "雾":
case "Fog":
case "霧":
case "薄霧":
case "冻雾":
case "Freezing Fog":
case "凍霧":
view.BackgroundImagePath = "FunctionIcon/EnvirSensor/18.png";
break;
case "沙尘暴":
case "Sandstorm":
case "沙塵暴":
case "强沙尘暴":
case "Heavy Sandstorm":
case "強沙塵暴":
view.BackgroundImagePath = "FunctionIcon/EnvirSensor/20.png";
break;
case "浮尘":
case "Dust":
case "浮塵":
case "尘卷风":
case "Dust Storm":
case "塵捲風":
case "扬沙":
case "Sand":
case "揚沙":
view.BackgroundImagePath = "FunctionIcon/EnvirSensor/29.png";
break;
case "霾":
case "Haze":
case "煙霞":
view.BackgroundImagePath = "FunctionIcon/EnvirSensor/45.png";
break;
case "雷阵雨":
case "Thundershower":
case "雷陣雨":
case "雷雨":
case "雷电":
case "Lightning":
case "雷電":
case "雷暴":
case "Thunderstorm":
view.BackgroundImagePath = "FunctionIcon/EnvirSensor/4.png";
break;
case "雷阵雨伴有冰雹":
case "Thundershower with Hail":
case "雷陣雨伴有冰雹":
case "雷雨伴有冰雹":
case "冰雹":
case "Hail":
case "冰针":
case "Needle Ice":
case "冰針":
case "冰粒":
case "Icy":
view.BackgroundImagePath = "FunctionIcon/EnvirSensor/5.png";
break;
case "雨夹雪":
case "Sleet":
case "雨夾雪":
view.BackgroundImagePath = "FunctionIcon/EnvirSensor/6.png";
break;
case "小雨":
case "Light Rain":
view.BackgroundImagePath = "FunctionIcon/EnvirSensor/3.png";
break;
case "中雨":
case "Rain":
case "小到中雨":
case "雨":
view.BackgroundImagePath = "FunctionIcon/EnvirSensor/3.png";
break;
case "大雨":
case "Heavy Rain":
case "中到大雨":
view.BackgroundImagePath = "FunctionIcon/EnvirSensor/3.png";
break;
case "暴雨":
case "Rainstorm":
case "豪雨":
case "大暴雨":
case "Heavy Rainstorm":
case "大豪雨":
case "特大暴雨":
case "Extreme Rainstorm":
case "超大豪雨":
case "大到暴雨":
view.BackgroundImagePath = "FunctionIcon/EnvirSensor/3.png";
break;
case "小雪":
case "Light Snow":
view.BackgroundImagePath = "FunctionIcon/EnvirSensor/13.png";
break;
case "雪":
case "中雪":
case "小到中雪":
case "Snow":
view.BackgroundImagePath = "FunctionIcon/EnvirSensor/13.png";
break;
case "大雪":
case "Heavy Snow":
view.BackgroundImagePath = "FunctionIcon/EnvirSensor/13.png";
break;
case "暴雪":
case "Blizzard":
view.BackgroundImagePath = "FunctionIcon/EnvirSensor/13.png";
break;
case "冻雨":
case "Freezing Rain":
case "凍雨":
view.BackgroundImagePath = "FunctionIcon/EnvirSensor/6.png";
break;
}
}
#endregion
}
}