using System;
using System.Collections.Generic;
using Shared.SimpleControl;
namespace Shared.SimpleControl.Phone
{
///
/// 控制界面
///
public class ThermostatHostPage : FrameLayout
{
public static ThermostatHostPage curView;
static Thermostat thermostat;
static Button btnPM25Values;
static Button btnStrainer;
static Button btnCO2Values;
static Button btnTVOCValues;
static Button btnTempValues;
static Button btnHumidityValues;
static HorizontalScrolViewLayout modeListView;
static Button btnPower;
static FrameLayout sceneListView;
static VerticalScrolViewLayout extensionListView;
static FrameLayout pm25InnerView;
public static void UpdateStatus(Thermostat therm)
{
Application.RunOnMainThread (() => {
if (curView == null)
return;
if(therm.SubnetID == thermostat.SubnetID && therm.DeviceID == thermostat.DeviceID && therm.HostID == thermostat.HostID) {
thermostat = therm;
btnStrainer.Text = Language.StringByID (R.MyInternationalizationString.StrainerState) + thermostat.StrainerState +"%" ;
btnPM25Values.Text = thermostat.Indoor_PM25_Values.ToString();
btnCO2Values.Text = thermostat.Indoor_CO2_Values.ToString ();
btnTVOCValues.Text = thermostat.Indoor_TVOC_Values.ToString ();
btnTempValues.Text = Math.Round (thermostat.Indoor_Temperature_Values,1).ToString ();
btnHumidityValues.Text = thermostat.Indoor_Humidity_Values.ToString ();
///运行模式 1-制冷,2-制热,3-通风,4-除湿,5-制热除湿
ChangeModeIcon (thermostat.CurrentModeString);
btnPower.IsSelected = thermostat.Power == 1;
if (btnPower.IsSelected) {
pm25InnerView.BorderColor = 0xFFFE5E01;
} else {
pm25InnerView.BorderColor = 0xFFbcbcbc;
}
ChangeSceneIcon (thermostat.CurrentSceneString);
#region 更新用户主界面灯光点亮总数
int acOponeCount = 0;
foreach (var caac in Room.Thermostat_HostList) {
if (caac.Power == 1) {
acOponeCount++;
}
}
UserDeviceView.UpdataDeviceCountNumber (acOponeCount, R.MyInternationalizationString.Thermostat);
#endregion
}
});
}
static void ChangeModeIcon (string modeTag)
{
int changedNumber = Application.GetMinRealAverage (70);
bool changedState = false;
for (int i = 0; i < modeListView.ChildrenCount; i++) {
var view = modeListView.GetChildren (i);
if (view.GetType () == typeof (FrameLayout)) {
var frameView = ((FrameLayout)view);
if (frameView.Tag != null && frameView.Tag.ToString () == modeTag) {
changedNumber = Application.GetMinRealAverage (110);
changedState = true;
} else {
changedNumber = Application.GetMinRealAverage (70);
changedState = false;
}
for (int j = 0; j < frameView.ChildrenCount; j++) {
var btn = frameView.GetChildren (j);
if (btn.GetType () == typeof (Button)) {
var btn0 = ((Button)btn);
if (btn0.Tag != null && !string.IsNullOrEmpty (btn0.Tag.ToString ())) {
btn0.Width = changedNumber;
btn0.Height = changedNumber;
btn0.Gravity = Gravity.Center;
if (frameView.Tag != null && frameView.Tag.ToString () == modeTag) {
btn0.IsSelected = changedState;
} else {
btn0.IsSelected = changedState;
}
}
btn0.IsSelected = changedState;
}
}
}
}
}
static void ChangeSceneIcon (string sceneTag)
{
bool changedState = false;
for (int i = 0; i < sceneListView.ChildrenCount; i++) {
var view = sceneListView.GetChildren (i);
if (view.GetType () == typeof (FrameLayout)) {
var frameView = ((FrameLayout)view);
if (frameView.Tag != null && frameView.Tag.ToString () == sceneTag) {
changedState = true;
} else {
changedState = false;
}
for (int j = 0; j < frameView.ChildrenCount; j++) {
var btn = frameView.GetChildren (j);
if (btn.GetType () == typeof (Button)) {
((Button)btn).IsSelected = changedState;
}
}
}
}
}
public static void UpdateExtensionStatus (Thermostat cac)
{
Application.RunOnMainThread (() => {
if (curView == null)
return;
if (cac.SubnetID == thermostat.SubnetID && cac.DeviceID == thermostat.DeviceID ) {
for (int i = 0; i < extensionListView.ChildrenCount; i++) {
var view = extensionListView.GetChildren (i);
if (view.GetType () == typeof (FrameLayout)) {
var frameView = ((FrameLayout)view);
if (frameView.Tag != null && frameView.Tag.ToString () == cac.Type + "_" + cac.CommonLoopID) {
for (int j = 0; j < frameView.ChildrenCount; j++) {
var btn = frameView.GetChildren (j);
if (btn.GetType () == typeof (Button)) {
var btn0 = ((Button)btn);
if (btn0.Tag != null) {
if (btn0.Tag.ToString() == "ThermometerValues") {
btn0.Text = Math.Round (thermostat.Indoor_Temperature_Values, 0) + "°C";
} else if (btn0.Tag.ToString() == "RoomHumidityValues") {
btn0.Text = Math.Round (thermostat.Indoor_Humidity_Values, 0) + "%";
}
}
}
}
}
}
}
}
});
}
public void ShowPage (List hostSavePaths)
{
curView = this;
thermostat = Room.Thermostat_HostList [0];// Newtonsoft.Json.JsonConvert.DeserializeObject (CommonPage.MyEncodingUTF8.GetString (IO.FileUtils.ReadFile (hostSavePaths [0])));
#region 标题
var topView = new FrameLayout () {
Y = Application.GetRealHeight (36),
Height = Application.GetRealHeight (90),
Width = Application.GetRealWidth (640),
BackgroundColor = SkinStyle.Current.MainColor,
};
AddChidren (topView);
var btnTitle = new Button () {
TextAlignment = TextAlignment.Center,
Text = thermostat.Name,
TextColor = SkinStyle.Current.TextColor1,
TextSize = 19,
};
topView.AddChidren (btnTitle);
var logo = new Button () {
Width = Application.GetRealWidth (154),
Height = Application.GetRealHeight (90),
X = Application.GetRealWidth (486),
UnSelectedImagePath = MainPage.LogoString,
};
topView.AddChidren (logo);
var back = new Button () {
Height = Application.GetRealHeight (90),
Width = Application.GetRealWidth (85),
UnSelectedImagePath = "Item/Back.png",
SelectedImagePath = "Item/BackSelected.png",
};
topView.AddChidren (back);
back.MouseUpEventHandler += (sender, e) => {
(Parent as PageLayout).PageIndex -= 1;
curView = null;
};
#endregion
var bodyView = new FrameLayout () {
Y = topView.Bottom,
Height = this.Height - topView.Height,
BackgroundColor = SkinStyle.Current.MainColor,
};
AddChidren (bodyView);
#region 模拟量view
var analogueQuantityView = new FrameLayout () {
Height = Application.GetRealHeight (440),
BackgroundColor = SkinStyle.Current.ViewColor,
};
bodyView.AddChidren (analogueQuantityView);
var btnJinMaoLogo = new Button () {
X = Application.GetRealWidth (420),
Y = Application.GetRealHeight (10),
Width = Application.GetRealWidth (200),
Height = Application.GetRealHeight (30),
UnSelectedImagePath = "CapillaryAC/JinMaoLogo.png",
};
analogueQuantityView.AddChidren (btnJinMaoLogo);
#region pm2.5
var pm25View = new FrameLayout () {
Y = Application.GetRealHeight (30),
Width = Application.GetMinRealAverage (260),
Height = Application.GetMinRealAverage (260),
Radius = (uint)Application.GetMinRealAverage (130),
BorderColor = SkinStyle.Current.Transparent,
BorderWidth = 0,
BackgroundColor = SkinStyle.Current.MainColor,
Gravity = Gravity.CenterHorizontal,
};
analogueQuantityView.AddChidren (pm25View);
pm25InnerView = new FrameLayout () {
Gravity = Gravity.Center,
Radius = (uint)Application.GetMinRealAverage (105),
BorderColor = 0xFFbcbcbc,
BorderWidth = 2,
Width = Application.GetMinRealAverage (210),
Height = Application.GetMinRealAverage (210),
BackgroundColor = SkinStyle.Current.Transparent,
};
pm25View.AddChidren (pm25InnerView);
var btnPM25Title = new Button () {
Gravity = Gravity.CenterHorizontal,
Y = Application.GetMinRealAverage (40),
Width = Application.GetMinRealAverage (200),
Height = Application.GetMinRealAverage (60),
TextColor = 0xFFbdbdbd,
Text = "PM2.5",
TextAlignment = TextAlignment.Center,
BackgroundColor = SkinStyle.Current.Transparent,
};
pm25View.AddChidren (btnPM25Title);
btnPM25Values = new Button () {
Gravity = Gravity.CenterHorizontal,
Y = btnPM25Title.Bottom,
Width = Application.GetMinRealAverage (120),
Height = Application.GetMinRealAverage (60),
TextColor = SkinStyle.Current.TextColor1,
Text = thermostat.Indoor_PM25_Values.ToString (),
BackgroundColor = 0xFF292929,
TextSize = 24,
TextAlignment = TextAlignment.Center,
};
pm25View.AddChidren (btnPM25Values);
var btnPM25Unit = new Button () {
Y = pm25View.Height - Application.GetMinRealAverage (60),
Height = Application.GetMinRealAverage (40),
Width = Application.GetRealWidth (60),
Gravity = Gravity.CenterHorizontal,
TextColor = 0xFFbdbdbd,
Text = "μg",
TextAlignment = TextAlignment.Center,
BackgroundColor = SkinStyle.Current.MainColor,
};
pm25View.AddChidren (btnPM25Unit);
#endregion
btnStrainer = new Button () {
Height = Application.GetRealHeight (60),
Y = pm25View.Bottom,
Text = Language.StringByID (R.MyInternationalizationString.StrainerState) + thermostat.StrainerState,
TextAlignment = TextAlignment.Center,
TextColor = SkinStyle.Current.TextColor1,
};
analogueQuantityView.AddChidren (btnStrainer);
var btnCO2Title = new Button () {
X = Application.GetRealWidth (80),
Y = btnStrainer.Bottom,
TextColor = SkinStyle.Current.TextColor1,
Text = "CO2",
TextAlignment = TextAlignment.Center,
Width = Application.GetRealWidth (120),
Height = Application.GetRealHeight (25),
TextSize = 12,
};
analogueQuantityView.AddChidren (btnCO2Title);
var btnCO2Unit = new Button () {
TextColor = 0xFFbdbdbd,
X = Application.GetRealWidth (80),
Y = btnCO2Title.Bottom,
Text = "(PPM)",
TextAlignment = TextAlignment.Center,
Width = Application.GetRealWidth (120),
Height = Application.GetRealHeight (25),
TextSize = 12,
};
analogueQuantityView.AddChidren (btnCO2Unit);
btnCO2Values = new Button () {
TextColor = SkinStyle.Current.TextColor1,
X = Application.GetRealWidth (80),
Y = btnCO2Unit.Bottom,
Text = thermostat.Indoor_CO2_Values.ToString (),
TextAlignment = TextAlignment.Center,
Width = Application.GetRealWidth (120),
Height = Application.GetRealHeight (40),
TextSize = 18,
};
analogueQuantityView.AddChidren (btnCO2Values);
var btnTVOCTitle = new Button () {
X = Application.GetRealWidth (80 + 120),
Y = btnStrainer.Bottom,
TextColor = SkinStyle.Current.TextColor1,
Text = "TVOC",
TextAlignment = TextAlignment.Center,
Width = Application.GetRealWidth (120),
Height = Application.GetRealHeight (25),
TextSize = 12,
};
analogueQuantityView.AddChidren (btnTVOCTitle);
var btnTVOCUnit = new Button () {
TextColor = 0xFFbdbdbd,
X = Application.GetRealWidth (80 + 120),
Y = btnTVOCTitle.Bottom,
Text = "(PPM)",
TextAlignment = TextAlignment.Center,
Width = Application.GetRealWidth (120),
Height = Application.GetRealHeight (25),
TextSize = 12,
};
analogueQuantityView.AddChidren (btnTVOCUnit);
btnTVOCValues = new Button () {
TextColor = SkinStyle.Current.TextColor1,
X = Application.GetRealWidth (80 + 120),
Y = btnTVOCUnit.Bottom,
Text = thermostat.Indoor_TVOC_Values.ToString (),
TextAlignment = TextAlignment.Center,
Width = Application.GetRealWidth (120),
Height = Application.GetRealHeight (40),
TextSize = 18,
};
analogueQuantityView.AddChidren (btnTVOCValues);
var btnTempTitle = new Button () {
X = Application.GetRealWidth (80 + 120 + 120),
Y = btnStrainer.Bottom,
TextColor = SkinStyle.Current.TextColor1,
TextID =R.MyInternationalizationString.Temp,
TextAlignment = TextAlignment.Center,
Width = Application.GetRealWidth (120),
Height = Application.GetRealHeight (25),
TextSize = 12,
};
analogueQuantityView.AddChidren (btnTempTitle);
var btnTempUnit = new Button () {
TextColor = 0xFFbdbdbd,
X = Application.GetRealWidth (80 + 120 + 120),
Y = btnTempTitle.Bottom,
Text = "(°C)",
TextAlignment = TextAlignment.Center,
Width = Application.GetRealWidth (120),
Height = Application.GetRealHeight (25),
TextSize = 12,
};
analogueQuantityView.AddChidren (btnTempUnit);
btnTempValues = new Button () {
TextColor = SkinStyle.Current.TextColor1,
X = Application.GetRealWidth (80 + 120 + 120),
Y = btnTempUnit.Bottom,
Text = Math.Round (thermostat.Indoor_Humidity_Values, 1).ToString (),
TextAlignment = TextAlignment.Center,
Width = Application.GetRealWidth (120),
Height = Application.GetRealHeight (40),
TextSize = 18,
};
analogueQuantityView.AddChidren (btnTempValues);
var btnHumidityTitle = new Button () {
X = Application.GetRealWidth (80 + 120 + 120 + 120),
Y = btnStrainer.Bottom,
TextColor = SkinStyle.Current.TextColor1,
TextID = R.MyInternationalizationString.Humidity,
TextAlignment = TextAlignment.Center,
Width = Application.GetRealWidth (120),
Height = Application.GetRealHeight (25),
TextSize = 12,
};
analogueQuantityView.AddChidren (btnHumidityTitle);
var btnHumidityUnit = new Button () {
TextColor = 0xFFbdbdbd,
X = Application.GetRealWidth (80 + 120 + 120 + 120),
Y = btnHumidityTitle.Bottom,
Text = "(%)",
TextAlignment = TextAlignment.Center,
Width = Application.GetRealWidth (120),
Height = Application.GetRealHeight (25),
TextSize = 12,
};
analogueQuantityView.AddChidren (btnHumidityUnit);
btnHumidityValues = new Button () {
TextColor = SkinStyle.Current.TextColor1,
X = Application.GetRealWidth (80 + 120 + 120 + 120),
Y = btnHumidityUnit.Bottom,
Text = "70",
TextAlignment = TextAlignment.Center,
Width = Application.GetRealWidth (120),
Height = Application.GetRealHeight (40),
TextSize = 18,
};
analogueQuantityView.AddChidren (btnHumidityValues);
#endregion
modeListView = new HorizontalScrolViewLayout () {
Y = analogueQuantityView.Bottom + Application.GetRealHeight (10),
Height = Application.GetRealHeight (140),
BackgroundColor = SkinStyle.Current.ViewColor,
};
bodyView.AddChidren (modeListView);
#region Heating and dehumidification mode
var heatingDehumiModeView = new FrameLayout () {
Width = Application.GetRealWidth (128),
Tag = "HeatingAndDehumidification",
};
modeListView.AddChidren (heatingDehumiModeView);
var btnHeatingDehumiTip = new Button () {
Y = Application.GetRealHeight (5),
Gravity = Gravity.CenterHorizontal,
Width = Application.GetRealWidth (20),
Height = Application.GetRealHeight (12),
UnSelectedImagePath = "Item/Transparent.png",
SelectedImagePath = "CapillaryAC/Triangle.png"
};
heatingDehumiModeView.AddChidren (btnHeatingDehumiTip);
var btnHeatingDehumiText = new Button () {
Y = Application.GetRealHeight (128 - 15),
Height = Application.GetRealHeight (20),
TextAlignment = TextAlignment.Center,
TextID = R.MyInternationalizationString.HeatingAndHumidity,
SelectedTextColor = SkinStyle.Current.TextColor1,
TextColor = SkinStyle.Current.Transparent,
TextSize = 10
};
heatingDehumiModeView.AddChidren (btnHeatingDehumiText);
var btnHeatingDehumIcon = new Button () {
Gravity = Gravity.Center,
Width = Application.GetMinRealAverage (70),
Height = Application.GetMinRealAverage (70),
UnSelectedImagePath = "CapillaryAC/HeatingAndDehumidification.png",
SelectedImagePath = "CapillaryAC/HeatingAndDehumidification.png",
Tag = "HeatingAndDehumidification",
};
heatingDehumiModeView.AddChidren (btnHeatingDehumIcon);
#endregion
#region Cooling Mode
var coolingModeView = new FrameLayout () {
Width = Application.GetRealWidth (128),
Tag = "Cooling",
};
modeListView.AddChidren (coolingModeView);
var btnCoolingTip = new Button () {
Y = Application.GetRealHeight (5),
Gravity = Gravity.CenterHorizontal,
Width = Application.GetRealWidth (20),
Height = Application.GetRealHeight (12),
UnSelectedImagePath = "Item/Transparent.png",
SelectedImagePath = "CapillaryAC/Triangle.png"
};
coolingModeView.AddChidren (btnCoolingTip);
var btnCoolingText = new Button () {
Y = Application.GetRealHeight (128 - 15),
Height = Application.GetRealHeight (20),
TextAlignment = TextAlignment.Center,
TextID = R.MyInternationalizationString.Cool,
SelectedTextColor = SkinStyle.Current.TextColor1,
TextColor = SkinStyle.Current.Transparent,
TextSize = 10
};
coolingModeView.AddChidren (btnCoolingText);
var btnCoolingIcon = new Button () {
Gravity = Gravity.Center,
Width = Application.GetMinRealAverage (70),
Height = Application.GetMinRealAverage (70),
UnSelectedImagePath = "CapillaryAC/Cooling.png",
SelectedImagePath = "CapillaryAC/Cooling.png",
Tag = "Cooling",
};
coolingModeView.AddChidren (btnCoolingIcon);
#endregion
#region Heating Mode
var heatingModeView = new FrameLayout () {
Width = Application.GetRealWidth (128),
Tag = "Heating",
};
modeListView.AddChidren (heatingModeView);
var btnHeatingTip = new Button () {
Y = Application.GetRealHeight (5),
Gravity = Gravity.CenterHorizontal,
Width = Application.GetRealWidth (20),
Height = Application.GetRealHeight (12),
UnSelectedImagePath = "Item/Transparent.png",
SelectedImagePath = "CapillaryAC/Triangle.png"
};
heatingModeView.AddChidren (btnHeatingTip);
var btnHeatingText = new Button () {
Y = Application.GetRealHeight (128 - 15),
Height = Application.GetRealHeight (20),
TextAlignment = TextAlignment.Center,
TextID = R.MyInternationalizationString.Heating,
SelectedTextColor = SkinStyle.Current.TextColor1,
TextColor = SkinStyle.Current.Transparent,
TextSize = 10
};
heatingModeView.AddChidren (btnHeatingText);
var btnHeatingIcon = new Button () {
Gravity = Gravity.Center,
Width = Application.GetMinRealAverage (70),
Height = Application.GetMinRealAverage (70),
UnSelectedImagePath = "CapillaryAC/Heating.png",
SelectedImagePath = "CapillaryAC/Heating.png",
Tag = "Heating",
};
heatingModeView.AddChidren (btnHeatingIcon);
#endregion
#region Dehumidification Mode
var dehumidificationModeView = new FrameLayout () {
Width = Application.GetRealWidth (128),
Tag = "Dehumidification",
};
modeListView.AddChidren (dehumidificationModeView);
var btnDehumidificationTip = new Button () {
Y = Application.GetRealHeight (5),
Gravity = Gravity.CenterHorizontal,
Width = Application.GetRealWidth (20),
Height = Application.GetRealHeight (12),
UnSelectedImagePath = "Item/Transparent.png",
SelectedImagePath = "CapillaryAC/Triangle.png"
};
dehumidificationModeView.AddChidren (btnDehumidificationTip);
var btnDehumidificationText = new Button () {
Y = Application.GetRealHeight (128 - 15),
Height = Application.GetRealHeight (20),
TextAlignment = TextAlignment.Center,
TextID = R.MyInternationalizationString.Humidity,
SelectedTextColor = SkinStyle.Current.TextColor1,
TextColor = SkinStyle.Current.Transparent,
TextSize = 10
};
dehumidificationModeView.AddChidren (btnDehumidificationText);
var btnDehumidificationIcon = new Button () {
Gravity = Gravity.Center,
Width = Application.GetMinRealAverage (70),
Height = Application.GetMinRealAverage (70),
UnSelectedImagePath = "CapillaryAC/Dehumidification.png",
SelectedImagePath = "CapillaryAC/Dehumidification.png",
Tag = "Dehumidification",
};
dehumidificationModeView.AddChidren (btnDehumidificationIcon);
#endregion
#region Aeration Mode
var aerationModeView = new FrameLayout () {
Width = Application.GetRealWidth (128),
Tag = "Aeration",
};
modeListView.AddChidren (aerationModeView);
var btnAerationTip = new Button () {
Y = Application.GetRealHeight (5),
Gravity = Gravity.CenterHorizontal,
Width = Application.GetRealWidth (20),
Height = Application.GetRealHeight (12),
UnSelectedImagePath = "Item/Transparent.png",
SelectedImagePath = "CapillaryAC/Triangle.png"
};
aerationModeView.AddChidren (btnAerationTip);
var btnAerationText = new Button () {
Y = Application.GetRealHeight (128 - 15),
Height = Application.GetRealHeight (20),
TextAlignment = TextAlignment.Center,
TextID = R.MyInternationalizationString.Dehumidify,
SelectedTextColor = SkinStyle.Current.TextColor1,
TextColor = SkinStyle.Current.Transparent,
TextSize = 10
};
aerationModeView.AddChidren (btnAerationText);
var btnAerationIcon = new Button () {
Gravity = Gravity.Center,
Width = Application.GetMinRealAverage (70),
Height = Application.GetMinRealAverage (70),
UnSelectedImagePath = "CapillaryAC/Aeration.png",
SelectedImagePath = "CapillaryAC/Aeration.png",
Tag = "Aeration",
};
aerationModeView.AddChidren (btnAerationIcon);
#endregion
#region mode change function
EventHandler eventHandler_ModeChangeClick = (sender, e) => {
var thisButton = sender as Button;
/// 1-制冷,2-制热,3-通风,4-除湿,5-制热除湿
switch (thisButton.Tag.ToString ()) {
case "HeatingAndDehumidification":
thermostat.CurrentMode = 5;
break;
case "Cooling":
thermostat.CurrentMode = 1;
break;
case "Heating":
thermostat.CurrentMode = 2;
break;
case "Dehumidification":
thermostat.CurrentMode = 4;
break;
case "Aeration":
thermostat.CurrentMode = 3;
break;
}
ChangeModeIcon (thisButton.Tag.ToString ());
new System.Threading.Thread (() => {
thermostat.SetHost ();
}) { IsBackground = true }.Start ();
};
btnCoolingIcon.MouseUpEventHandler += eventHandler_ModeChangeClick;
btnHeatingIcon.MouseUpEventHandler += eventHandler_ModeChangeClick;
btnAerationIcon.MouseUpEventHandler += eventHandler_ModeChangeClick;
btnHeatingDehumIcon.MouseUpEventHandler += eventHandler_ModeChangeClick;
btnDehumidificationIcon.MouseUpEventHandler += eventHandler_ModeChangeClick;
ChangeModeIcon (thermostat.CurrentModeString);
#endregion
#region Extension List View
extensionListView = new VerticalScrolViewLayout () {
Y = modeListView.Bottom + Application.GetRealHeight(10),
Height = Application.GetRealHeight(270),
BackgroundColor = SkinStyle.Current.ViewColor,
};
bodyView.AddChidren (extensionListView);
foreach(var room in Room.Lists) {
if (string.IsNullOrEmpty(room.Name))
continue;
var cacList = room.DeviceList.FindAll ((obj) => obj.Type == DeviceType.Thermostat);
foreach (var devcieCommon in cacList) {
if (devcieCommon == null)
continue;
#region cacList
var capillaryAC_room = devcieCommon as Thermostat;
EventHandler openCapillaryACControlPageEvent = (button, mouseEventArgs) => {
ThermostatExtensionPage acView = new ThermostatExtensionPage ();
UserMiddle.DevicePageView.AddChidren (acView);
acView.ShowPage (capillaryAC_room);
UserMiddle.DevicePageView.PageIndex = UserMiddle.DevicePageView.ChildrenCount - 1;
};
var acRowView = new FrameLayout () {
Height = Application.GetRealHeight (120),
Tag = devcieCommon.Type + "_" + capillaryAC_room.CommonLoopID
};
extensionListView.AddChidren (acRowView);
acRowView.MouseUpEventHandler += openCapillaryACControlPageEvent;
var btnPoint = new Button () {
X = Application.GetRealWidth(35),
Gravity = Gravity.CenterVertical,
BackgroundColor = 0xFF5E5E5E,
Radius = (uint)Application.GetMinRealAverage(5),
Width = Application.GetMinRealAverage (10),
Height = Application.GetMinRealAverage(10),
};
acRowView.AddChidren (btnPoint);
var tempDeviceName = new Button () {
X = btnPoint.Right + Application.GetRealWidth (10),
//Height = Application.GetRealHeight (60),
TextAlignment = TextAlignment.CenterLeft,
Text = capillaryAC_room.Name,
TextColor = SkinStyle.Current.TextColor1,
SelectedTextColor = SkinStyle.Current.TextColor1,
};
acRowView.AddChidren (tempDeviceName);
tempDeviceName.MouseUpEventHandler += openCapillaryACControlPageEvent;
Button btnThermometerIcon = new Button () {
X = Application.GetRealWidth (370),
Gravity = Gravity.CenterVertical,
Width = Application.GetMinRealAverage (50),
Height = Application.GetMinRealAverage (50),
UnSelectedImagePath = "CapillaryAC/ThermometerIcon.png",
SelectedImagePath = "CapillaryAC/ThermometerIcon.png",
};
acRowView.AddChidren (btnThermometerIcon);
btnThermometerIcon.MouseUpEventHandler += openCapillaryACControlPageEvent;
var btnThermometerValues = new Button () {
X = btnThermometerIcon.Right,
Width = Application.GetRealWidth (80),
Text = Math.Round (capillaryAC_room.Indoor_Temperature_Values, 1) + "°C",
TextColor = SkinStyle.Current.TextColor1,
TextAlignment = TextAlignment.Center,
Tag = "ThermometerValues"
};
acRowView.AddChidren (btnThermometerValues);
Button btnHumidityIcon = new Button () {
X = btnThermometerValues.Right,
Gravity = Gravity.CenterVertical,
Width = Application.GetMinRealAverage (50),
Height = Application.GetMinRealAverage (50),
UnSelectedImagePath = "CapillaryAC/HumidityIcon.png",
SelectedImagePath = "CapillaryAC/HumidityIcon.png",
};
acRowView.AddChidren (btnHumidityIcon);
btnHumidityIcon.MouseUpEventHandler += openCapillaryACControlPageEvent;
var btnRoomHumidityValues = new Button () {
X = btnHumidityIcon.Right,
Width = Application.GetRealWidth (80),
Text = Math.Round (capillaryAC_room.Indoor_Humidity_Values, 0) + "%",
TextColor = SkinStyle.Current.TextColor1,
TextAlignment = TextAlignment.Center,
Tag = "RoomHumidityValues"
};
acRowView.AddChidren (btnRoomHumidityValues);
Control.ControlBytesSend (Command.ReadThermostatExtension, capillaryAC_room.SubnetID, capillaryAC_room.DeviceID, new byte [] { capillaryAC_room.ExtensionID });
var btnDeviceRowLine = new Button () {
Height = Application.GetRealHeight(5),
BackgroundColor = SkinStyle.Current.MainColor,
SelectedBackgroundColor = SkinStyle.Current.MainColor,
};
extensionListView.AddChidren (btnDeviceRowLine);
#endregion
}
}
#endregion
#region Scene List View
sceneListView = new FrameLayout () {
Y = extensionListView.Bottom + Application.GetRealHeight (10),
Height = Application.GetRealHeight (135),
BackgroundColor = SkinStyle.Current.ViewColor
};
bodyView.AddChidren (sceneListView);
btnPower = new Button () {
X = Application.GetRealWidth(40),
Gravity = Gravity.CenterVertical,
Width = Application.GetMinRealAverage(100),
Height = Application.GetMinRealAverage(100),
UnSelectedImagePath = "CapillaryAC/Switch.png",
SelectedImagePath = "CapillaryAC/SwitchOn.png",
};
sceneListView.AddChidren (btnPower);
btnPower.MouseUpEventHandler += (sender, e) => {
btnPower.IsSelected = !btnPower.IsSelected;
thermostat.Power = btnPower.IsSelected == true ? (byte)1 : (byte)0;
new System.Threading.Thread (() => {
thermostat.SetHost ();
}) { IsBackground = true }.Start ();
};
var atHomeView = new FrameLayout () {
X= Application.GetRealWidth(160),
Width = Application.GetRealWidth(160),
Tag = "atHome"
};
sceneListView.AddChidren (atHomeView);
var btnAtHomeIcon = new Button () {
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealHeight(10),
Width = Application.GetMinRealAverage(90),
Height = Application.GetMinRealAverage(90),
UnSelectedImagePath = "CapillaryAC/AtHomeModeIcon.png",
SelectedImagePath = "CapillaryAC/AtHomeModeIconOn.png",
Tag = "atHome"
};
atHomeView.AddChidren (btnAtHomeIcon);
var btnAtHomeText = new Button () {
Y = btnAtHomeIcon.Bottom,
Height = Application.GetRealHeight(40),
TextID = R.MyInternationalizationString.AtHomeMode,
TextAlignment = TextAlignment.Center,
TextColor = SkinStyle.Current.TextColor1,
SelectedTextColor = SkinStyle.Current.SelectedColor,
Tag = "atHome"
};
atHomeView.AddChidren (btnAtHomeText);
var awayHomeView = new FrameLayout () {
X= atHomeView.Right,
Width = Application.GetRealWidth(160),
Tag = "awayHome"
};
sceneListView.AddChidren (awayHomeView);
var btnAwayHomeIcon = new Button () {
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealHeight(10),
Width = Application.GetMinRealAverage(90),
Height = Application.GetMinRealAverage(90),
UnSelectedImagePath = "CapillaryAC/AwayHomeModeIcon.png",
SelectedImagePath = "CapillaryAC/AwayHomeModeIconOn.png",
Tag = "awayHome"
};
awayHomeView.AddChidren (btnAwayHomeIcon);
var btnAwayHomeText = new Button () {
Y = btnAwayHomeIcon.Bottom,
Height = Application.GetRealHeight(40),
TextID = R.MyInternationalizationString.AwayHomeMode,
TextAlignment = TextAlignment.Center,
TextColor = SkinStyle.Current.TextColor1,
SelectedTextColor = SkinStyle.Current.SelectedColor,
Tag = "awayHome"
};
awayHomeView.AddChidren (btnAwayHomeText);
var sleepView = new FrameLayout () {
X = awayHomeView.Right,
Width = Application.GetRealWidth (160),
Tag = "sleep"
};
sceneListView.AddChidren (sleepView);
var btnSleepIcon = new Button () {
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealHeight(10),
Width = Application.GetMinRealAverage(90),
Height = Application.GetMinRealAverage(90),
UnSelectedImagePath = "CapillaryAC/SleepModeIcon.png",
SelectedImagePath = "CapillaryAC/SleepModeIconOn.png",
Tag = "sleep"
};
sleepView.AddChidren (btnSleepIcon);
var btnSleepText = new Button () {
Y = btnSleepIcon.Bottom,
Height = Application.GetRealHeight(40),
TextID = R.MyInternationalizationString.SleepMode,
TextAlignment = TextAlignment.Center,
TextColor = SkinStyle.Current.TextColor1,
SelectedTextColor = SkinStyle.Current.SelectedColor,
Tag = "sleep"
};
sleepView.AddChidren (btnSleepText);
ChangeSceneIcon (thermostat.CurrentSceneString);
EventHandler eventHandler_SceneChangeClick = (sender, e) => {
var thisButton = sender as Button;
/// 1-在家,2-离家,3-睡眠
switch (thisButton.Tag.ToString ()) {
case "atHome":
thermostat.CurrentScene = 1;
break;
case "awayHome":
thermostat.CurrentScene = 2;
break;
case "sleep":
thermostat.CurrentScene = 3;
break;
}
new System.Threading.Thread (() => {
thermostat.SetHost ();
}) { IsBackground = true }.Start ();
ChangeSceneIcon (thisButton.Tag.ToString());
};
btnAtHomeIcon.MouseUpEventHandler += eventHandler_SceneChangeClick;
btnAwayHomeIcon.MouseUpEventHandler += eventHandler_SceneChangeClick;
btnSleepIcon.MouseUpEventHandler += eventHandler_SceneChangeClick;
#endregion
Control.ControlBytesSend (Command.ReadThermostatHost, thermostat.SubnetID, thermostat.DeviceID, new byte [] {thermostat.HostID });
}
}
}