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 AcstSubPage : FrameLayout
|
{
|
static AcstSubPage bodyView;
|
|
Button btnTempValues;
|
Button btnHumiValues;
|
|
Button btnSetTempValues;
|
DiyImageSeekBar tempBar;
|
Button btnPowerControl;
|
|
Function function;
|
|
uint curColor;
|
|
string imageFolder = "blue";
|
|
public static void UpdateStatus(Function temp)
|
{
|
if(bodyView == null)
|
{
|
return;
|
}
|
Application.RunOnMainThread(() => {
|
bodyView.btnTempValues.Text = temp.GetAttrState(AcstSub_AttrEnum.room_temp.ToString());
|
bodyView.btnHumiValues.Text = temp.GetAttrState(AcstSub_AttrEnum.room_humidity.ToString());
|
|
|
int setTempValue = 0;
|
double dd = 0;
|
double.TryParse(temp.GetAttrState(AcstSub_AttrEnum.set_temp.ToString(), "--"), out dd);
|
setTempValue = Convert.ToInt32(dd);
|
if (setTempValue != 0)
|
bodyView.btnSetTempValues.Text = setTempValue.ToString();
|
|
bodyView.btnSetTempValues.Width = bodyView.btnSetTempValues.GetTextWidth() + Application.GetRealWidth(10);
|
|
//int progress = 0;
|
//int.TryParse(temp.GetAttrState(AcstSub_AttrEnum.set_temp.ToString()), out progress);
|
bodyView.tempBar.Progress = setTempValue - 16;
|
if(temp.trait_on_off.curValue.ToString() == "on")
|
{
|
bodyView.btnPowerControl.IsSelected = true;
|
bodyView.tempBar.ProgressBarColor = bodyView.curColor;
|
bodyView.tempBar.IsOffline = false;
|
|
}
|
else
|
{
|
bodyView.btnPowerControl.IsSelected = false;
|
bodyView.tempBar.ProgressBarColor = CSS_Color.DividingLineColor;
|
bodyView.tempBar.IsOffline = true;
|
}
|
});
|
|
}
|
|
public AcstSubPage(Function temp, string path)
|
{
|
function = temp;
|
imageFolder = path;
|
switch (imageFolder)
|
{
|
case "blue":
|
curColor = CSS.CSS_Color.MainColor;
|
break;
|
case "orange":
|
curColor = 0xFFFFB848;
|
break;
|
case "purple":
|
curColor = 0xFF9175F3;
|
break;
|
}
|
bodyView = this;
|
}
|
|
public void LoadPage()
|
{
|
new TopViewDiv(bodyView, function.GetRoomListName()).LoadTopView();
|
|
var contentView = new FrameLayout()
|
{
|
Gravity = Gravity.CenterHorizontal,
|
Y = Application.GetRealHeight(79),
|
Width = Application.GetRealWidth(343),
|
Height = Application.GetRealHeight(570),
|
BackgroundColor = CSS.CSS_Color.MainBackgroundColor,
|
Radius = (uint)Application.GetRealWidth(6),
|
};
|
bodyView.AddChidren(contentView);
|
|
|
#region 温湿度数据
|
var tempHumiView = new FrameLayout()
|
{
|
Y = Application.GetRealWidth(58),
|
Gravity = Gravity.CenterHorizontal,
|
Width = Application.GetRealWidth(303),
|
Height = Application.GetRealWidth(175),
|
BackgroundImagePath = $"FunctionIcon/Acst/{imageFolder}/TempAndHumiBack.png"
|
};
|
contentView.AddChidren(tempHumiView);
|
|
var tempValuesView = new FrameLayout()
|
{
|
X = Application.GetRealWidth(21),
|
Y = Application.GetRealWidth(17),
|
Width = Application.GetRealWidth(130),
|
Height = Application.GetRealWidth(132),
|
};
|
tempHumiView.AddChidren(tempValuesView);
|
btnTempValues = new Button()
|
{
|
Y = Application.GetRealWidth(45),
|
Height = Application.GetRealWidth(35),
|
IsBold = true,
|
TextSize = 30,
|
TextColor = CSS.CSS_Color.FirstLevelTitleColor,
|
TextAlignment = TextAlignment.TopRight,
|
Text = "---",
|
};
|
btnTempValues.Text = function.GetAttrState(AcstSub_AttrEnum.room_temp.ToString());
|
btnTempValues.Width = btnTempValues.GetTextWidth();
|
btnTempValues.Gravity = Gravity.CenterHorizontal;
|
tempValuesView.AddChidren(btnTempValues);
|
var btnTempValuesUint = new Button()
|
{
|
X = btnTempValues.Right,
|
Y = Application.GetRealWidth(48),
|
TextAlignment = TextAlignment.TopLeft,
|
Width = Application.GetRealWidth(30),
|
Height = Application.GetRealWidth(30),
|
TextSize = 10,
|
TextColor = CSS.CSS_Color.FirstLevelTitleColor,
|
Text = "°C"
|
};
|
tempValuesView.AddChidren(btnTempValuesUint);
|
|
|
|
var humiValuesView = new FrameLayout()
|
{
|
X = Application.GetRealWidth(130+21),
|
Y = Application.GetRealWidth(17),
|
Width = Application.GetRealWidth(130),
|
Height = Application.GetRealWidth(132),
|
};
|
tempHumiView.AddChidren(humiValuesView);
|
btnHumiValues = new Button()
|
{
|
Y = Application.GetRealWidth(45),
|
Height = Application.GetRealWidth(35),
|
IsBold = true,
|
TextSize = 30,
|
TextColor = CSS.CSS_Color.FirstLevelTitleColor,
|
Text = "---",
|
TextAlignment = TextAlignment.TopRight,
|
};
|
btnHumiValues.Text = function.GetAttrState(AcstSub_AttrEnum.room_humidity.ToString());
|
btnHumiValues.Width = btnTempValues.GetTextWidth();
|
btnHumiValues.Gravity = Gravity.CenterHorizontal;
|
humiValuesView.AddChidren(btnHumiValues);
|
var btnHumiValuesUint = new Button()
|
{
|
X = btnTempValues.Right,
|
Y = Application.GetRealWidth(48),
|
TextAlignment = TextAlignment.TopLeft,
|
Width = Application.GetRealWidth(30),
|
Height = Application.GetRealWidth(30),
|
TextSize = 10,
|
TextColor = CSS.CSS_Color.FirstLevelTitleColor,
|
Text = "%"
|
};
|
humiValuesView.AddChidren(btnHumiValuesUint);
|
|
|
EventHandler<MouseEventArgs> eventHandler = (sender, e) => {
|
var page = new AcstSubHistoryPage(function);
|
MainPage.BasePageView.AddChidren(page);
|
page.LoadPage();
|
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
|
};
|
var btnClick = new Button();
|
tempHumiView.AddChidren(btnClick);
|
btnClick.MouseUpEventHandler = eventHandler;
|
|
#endregion
|
|
|
btnSetTempValues = new Button()
|
{
|
Gravity = Gravity.CenterHorizontal,
|
Y = Application.GetRealHeight(260),
|
Width = Application.GetRealWidth(77),
|
Height = Application.GetRealHeight(90),
|
TextAlignment = TextAlignment.TopRight,
|
TextColor = CSS.CSS_Color.FirstLevelTitleColor,
|
IsBold = true,
|
TextSize = 60,
|
Text = function.GetAttrState(AcstSub_AttrEnum.set_temp.ToString(), "--")
|
};
|
contentView.AddChidren(btnSetTempValues);
|
int setTempValue = 0;
|
double dd = 0;
|
double.TryParse(function.GetAttrState(AcstSub_AttrEnum.set_temp.ToString(), "--"), out dd);
|
setTempValue = Convert.ToInt32(dd);
|
if (setTempValue != 0)
|
btnSetTempValues.Text = setTempValue.ToString();
|
//bodyView.btnSetTempValues.Width = bodyView.btnSetTempValues.GetTextWidth() + Application.GetRealWidth(10);
|
|
|
|
var btnSetTempUnit = new Button()
|
{
|
X = btnSetTempValues.Right + Application.GetRealWidth(3),
|
Y = Application.GetRealHeight(267),
|
Width = Application.GetRealWidth(30),
|
Height = Application.GetRealHeight(50),
|
TextSize = 23,
|
TextColor = CSS.CSS_Color.FirstLevelTitleColor,
|
Text = "°C",
|
TextAlignment = TextAlignment.TopLeft,
|
};
|
contentView.AddChidren(btnSetTempUnit);
|
|
|
|
var btnMinValuesText = new Button()
|
{
|
X = Application.GetRealWidth(35),
|
Y = Application.GetRealHeight(388),
|
Width = Application.GetRealWidth(30),
|
Height = Application.GetRealHeight(52),
|
Text = "16",
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = CSS_Color.PromptingColor1,
|
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
|
};
|
contentView.AddChidren(btnMinValuesText);
|
|
|
int progress = 0;
|
int.TryParse(function.GetAttrState(FunctionAttributeKey.SetTemp),out progress);
|
|
tempBar = new DiyImageSeekBar()
|
{
|
Gravity = Gravity.CenterHorizontal,
|
Y = Application.GetRealHeight(378),
|
Width = Application.GetRealWidth(238),
|
Height = Application.GetRealHeight(72),
|
SeekBarViewHeight = Application.GetRealHeight(14),
|
ThumbImagePath = "FunctionIcon/Acst/ThumbImage.png",
|
ThumbImageHeight = Application.GetRealHeight(51),
|
ProgressBarColor = function.trait_on_off.curValue.ToString() == "on" ? curColor : CSS_Color.DividingLineColor,
|
MaxValue = 14,
|
Progress = progress + 16,
|
SeekBarPadding = Application.GetRealWidth(20),
|
IsProgressTextShow = false,
|
ProgressChangeDelayTime = 0,
|
//Enable = function.trait_on_off.curValue.ToString() == "off",
|
//IsOffline = function.trait_on_off.curValue.ToString() == "off",
|
};
|
contentView.AddChidren(tempBar);
|
tempBar.OnProgressChangedEvent = (sender, e) => {
|
btnSetTempValues.Text = (e + 16).ToString();
|
};
|
tempBar.OnStopTrackingTouchEvent = (sender, e) => {
|
new System.Threading.Thread(() => {
|
var d = new Dictionary<string, string>();
|
d.Add(FunctionAttributeKey.SetTemp, (e+16).ToString());
|
Control.Ins.SendWriteCommand(function, d);
|
})
|
{ IsBackground = true }.Start();
|
|
};
|
|
var btnMaxValuesText = new Button()
|
{
|
X = tempBar.Right + Application.GetRealWidth(10),
|
Y = btnMinValuesText.Y,
|
Width = Application.GetRealWidth(45),
|
Height = Application.GetRealHeight(52),
|
Text = "30",
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = CSS_Color.PromptingColor1,
|
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
|
};
|
contentView.AddChidren(btnMaxValuesText);
|
|
|
|
|
|
btnPowerControl = new Button()
|
{
|
Y = Application.GetRealHeight(496),
|
Gravity = Gravity.CenterHorizontal,
|
Width = Application.GetRealWidth(46),
|
Height = Application.GetRealWidth(46),
|
UnSelectedImagePath = "FunctionIcon/Acst/grey/PowerOffIcon.png",
|
SelectedImagePath = $"FunctionIcon/Acst/{imageFolder}/PowerIcon.png",
|
TextAlignment = TextAlignment.Center,
|
IsSelected = function.trait_on_off.curValue.ToString() == "on"
|
};
|
contentView.AddChidren(btnPowerControl);
|
btnPowerControl.MouseUpEventHandler = (sender, e) => {
|
btnPowerControl.IsSelected = !btnPowerControl.IsSelected;
|
|
new System.Threading.Thread(() => {
|
Dictionary<string, string> d = new Dictionary<string, string>();
|
d.Add(FunctionAttributeKey.OnOff, btnPowerControl.IsSelected ? "on" : "off");
|
Control.Ins.SendWriteCommand(function, d);
|
})
|
{ IsBackground = true }.Start();
|
};
|
|
Control.Ins.SendReadCommand(function);
|
|
}
|
}
|
}
|