using System;
using System.Collections.Generic;
using com.hdl.on;
using HDL_ON.DriverLayer;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
using Shared;
namespace HDL_ON.UI
{
public class WaterHeaterJinmaoPage : FrameLayout
{
static WaterHeaterJinmaoPage bodyView;
VerticalScrolViewLayout contentView;
FrameLayout bottomView;
Function function;
///
/// 热水模式状态区域
///
FrameLayout modeFreeView;
///
/// 热水模式状态图标
///
Button modeFree_IconButton;
///
/// 热水模式状态文本
///
Button modeFree_TextButton;
///
/// 热水温度值
///
Button btnTempValues;
///
/// 热水温度单位
///
Button btnTempValuesUint;
///
/// 节能模式控制按钮
///
Button btnControlModeEconomic;
///
/// 节能模式控制区域
///
FrameLayout mode_EconomicView;
///
/// 节能模式图标按钮
///
Button mode_Economic_IconButton;
///
/// 节能模式文本按钮
///
Button mode_Economic_TextButton;
///
/// 速热模式控制按钮
///
Button btnControlModeQuickHeat;
///
/// 速热模式控制区域
///
FrameLayout mode_QuickHeatView;
///
/// 速热模式图标按钮
///
Button mode_QuickHeat_IconButton;
///
/// 速热模式文本按钮
///
Button mode_QuickHeat_TextButton;
///
/// 设置温度文本按钮
///
Button setTemp_ValuesButton;
///
/// 设置温度单位按钮
///
Button setTemp_UintButton;
///
/// 设置温度控制控件
///
DiyImageSeekBar setTemp_Bar;
///
/// 热水流量数据按钮
///
Button flow_ValuesButton;
///
/// 热水总流量数据按钮
///
Button flow_VolumeButton;
///
/// 热水流量比控件
///
DiyImageSeekBar flow_ValuesBar;
///
/// 热回收百分比数据按钮
///
Button flow_HeatRecoveryProgressButton;
///
/// 热回收数据按钮
///
Button flow_HeatRecoverytValuesButton;
///
/// 电直驱百分比数据按钮
///
Button flow_ElectricDriveProgressButton;
///
/// 电直驱数据按钮
///
Button flow_ElectricDriveValuesButton;
string volumeString = string.Empty;
string recyclVolumeString = string.Empty;
double volume = 0.00;
double recyclVolume = 0.00;
int recyclVolumePercent = 0;
///
/// 热回收节电量数据按钮
///
Button socialContribution_Info1_ValuesButton;
///
/// 热回收节电量单位按钮
///
Button socialContribution_Info1_UintButton;
///
/// CO2减排量数据按钮
///
Button socialContribution_Info2_ValuesButton;
///
/// CO2减排量单位按钮
///
Button socialContribution_Info2_UintButton;
///
/// 等效植树量数据按钮
///
Button socialContribution_Info3_UintButton;
///
/// 等效植树量单位按钮
///
Button socialContribution_Info3_ValuesButton;
///
/// 开关按钮
///
Button btnPowerControl;
public WaterHeaterJinmaoPage(Function deviceFunction)
{
bodyView = this;
function = deviceFunction;
this.BackgroundColor = CSS_Color.BackgroundColor;
}
public void LoadPage(Action action)
{
var topView = new TopViewDiv(bodyView, function.name);
topView.LoadTopView_FunctionTop(function, action);
contentView = new VerticalScrolViewLayout()
{
Y = topView.contentView.Height,
Height = Application.GetRealHeight(Application.DesignHeight - 94 - 5) - topView.contentView.Height,
};
bodyView.AddChidren(contentView);
bottomView = new FrameLayout()
{
Y = Application.GetRealHeight(Application.DesignHeight - 94),
Height = Application.GetRealHeight(94 + 16),
BackgroundColor = CSS_Color.MainBackgroundColor,
Radius = (uint)Application.GetRealHeight(16),
BorderColor = 0x00FFFFFF,
BorderWidth = 0,
};
bodyView.AddChidren(bottomView);
initContentView();
initBottomView();
initControlEvent();
UpdateStatus();
Control.Ins.SendReadCommand(function);
}
///
/// 加载内容区域
///
private void initContentView()
{
contentView.AddChidren(new Button() { Height = Application.GetRealHeight(16) });
#region 热水器状态
FrameLayout infoView = new FrameLayout()
{
Gravity = Gravity.CenterHorizontal,
Width = Application.GetRealWidth(343),
Height = Application.GetRealHeight(181),
BackgroundColor = CSS_Color.MainBackgroundColor,
Radius = (uint)Application.GetRealHeight(12),
BorderColor = 0x00FFFFFF,
BorderWidth = 0,
};
contentView.AddChidren(infoView);
modeFreeView = new FrameLayout()
{
X = 0 - Application.GetRealWidth(14),
Y = Application.GetRealWidth(12),
Width = Application.GetRealWidth(82 + 14),
Height = Application.GetRealWidth(28),
BackgroundColor = 0x15FC9C04,
Radius = (uint)Application.GetRealWidth(14),
BorderColor = 0x00FFFFFF,
BorderWidth = 0,
};
infoView.AddChidren(modeFreeView);
modeFree_IconButton = new Button()
{
X = Application.GetRealWidth(8 + 14),
Gravity = Gravity.CenterVertical,
Width = Application.GetRealWidth(12),
Height = Application.GetRealWidth(12),
UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/ModeFree_False.png",
};
modeFreeView.AddChidren(modeFree_IconButton);
modeFree_TextButton = new Button()
{
X = Application.GetRealWidth(8 + 14 + 4 + 12),
TextAlignment = TextAlignment.CenterLeft,
TextSize = 14,
TextColor = 0xFFFC9C04,
Text = "用电",
};
modeFreeView.AddChidren(modeFree_TextButton);
var infoView_Temp_View = new FrameLayout()
{
Gravity = Gravity.Center,
Width = Application.GetRealWidth(133),
Height = Application.GetRealWidth(133),
BackgroundImagePath = "FunctionIcon/Acst/WaterHeater/TempBg.png"
};
infoView.AddChidren(infoView_Temp_View);
btnTempValues = new Button()
{
Y = Application.GetRealWidth(34),
Gravity = Gravity.CenterVertical,
Height = Application.GetRealWidth(43),
IsBold = true,
TextSize = 32,
TextColor = CSS_Color.FirstLevelTitleColor,
TextAlignment = TextAlignment.TopCenter,
Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.temp.ToString(), "---"),
};
btnTempValues.Width = btnTempValues.GetTextWidth() + Application.GetRealWidth(6);
if (btnTempValues.Width > Application.GetRealWidth(80))
{
btnTempValues.TextSize = 28;
}
btnTempValues.Gravity = Gravity.CenterHorizontal;
infoView_Temp_View.AddChidren(btnTempValues);
btnTempValuesUint = new Button()
{
X = btnTempValues.Right,
Y = Application.GetRealWidth(40),
Height = Application.GetRealWidth(66),
TextAlignment = TextAlignment.TopLeft,
Width = Application.GetRealWidth(30),
TextSize = 10,
TextColor = CSS_Color.FirstLevelTitleColor,
Text = "°C"
};
infoView_Temp_View.AddChidren(btnTempValuesUint);
var infoView_Temp_Text = new Button()
{
Y = Application.GetRealWidth(80),
Height = Application.GetRealWidth(23),
TextAlignment = TextAlignment.Center,
TextSize = 12,
TextColor = 0xFF798394,
Text = "热水温度"
};
infoView_Temp_View.AddChidren(infoView_Temp_Text);
var infoView_HistoryButton = new Button();
infoView_Temp_View.AddChidren(infoView_HistoryButton);
infoView_HistoryButton.MouseUpEventHandler = (sender, e) =>
{
var page = new WetarHeaterJinmaoHistoryPage(function);
MainPage.BasePageView.AddChidren(page);
page.LoadPage();
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
};
#endregion
#region 热水器模式
var modeView = new HorizontalScrolViewLayout()
{
Height = Application.GetRealHeight(76),
ScrollEnabled = false,
};
contentView.AddChidren(modeView);
modeView.AddChidren(new Button()
{
Width = Application.GetRealWidth(16),
});
//节能
mode_EconomicView = new FrameLayout()
{
Width = Application.GetRealWidth(165),
Height = Application.GetRealWidth(52),
Gravity = Gravity.CenterVertical,
Radius = (uint)Application.GetRealHeight(12),
BorderColor = 0xFF00C22D,
BorderWidth = (uint)Application.GetRealWidth(1),
BackgroundColor = 0xFFEBFAEE
};
modeView.AddChidren(mode_EconomicView);
mode_Economic_IconButton = new Button()
{
Width = Application.GetRealWidth(20),
Height = Application.GetRealWidth(20),
X = Application.GetRealWidth(53),
Gravity = Gravity.CenterVertical,
UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/Mode_Economic_On.png"
};
mode_EconomicView.AddChidren(mode_Economic_IconButton);
mode_Economic_TextButton = new Button()
{
Width = Application.GetRealWidth(80),
X = Application.GetRealWidth(73 + 8),
TextAlignment = TextAlignment.CenterLeft,
TextSize = 16,
TextColor = CSS_Color.FirstLevelTitleColor,
Text = "节能",
};
mode_EconomicView.AddChidren(mode_Economic_TextButton);
modeView.AddChidren(new Button()
{
Width = Application.GetRealWidth(13),
});
btnControlModeEconomic = new Button();
mode_EconomicView.AddChidren(btnControlModeEconomic);
//速热
mode_QuickHeatView = new FrameLayout()
{
Width = Application.GetRealWidth(165),
Height = Application.GetRealWidth(52),
Gravity = Gravity.CenterVertical,
Radius = (uint)Application.GetRealHeight(12),
BorderColor = 0x0000C22D,
BorderWidth = (uint)Application.GetRealWidth(1),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
modeView.AddChidren(mode_QuickHeatView);
mode_QuickHeat_IconButton = new Button()
{
Width = Application.GetRealWidth(20),
Height = Application.GetRealWidth(20),
X = Application.GetRealWidth(53),
Gravity = Gravity.CenterVertical,
UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/Mode_QuickHeat.png"
};
mode_QuickHeatView.AddChidren(mode_QuickHeat_IconButton);
mode_QuickHeat_TextButton = new Button()
{
Width = Application.GetRealWidth(80),
X = Application.GetRealWidth(81),
TextAlignment = TextAlignment.CenterLeft,
TextSize = 16,
TextColor = CSS_Color.TextualColor,
Text = "速热"
};
mode_QuickHeatView.AddChidren(mode_QuickHeat_TextButton);
btnControlModeQuickHeat = new Button();
mode_QuickHeatView.AddChidren(btnControlModeQuickHeat);
#endregion
#region 温度设置
var setTempView = new FrameLayout()
{
Gravity = Gravity.CenterHorizontal,
Width = Application.GetRealWidth(343),
Height = Application.GetRealWidth(168),
BackgroundColor = CSS_Color.MainBackgroundColor,
Radius = (uint)Application.GetRealHeight(12),
BorderColor = 0x00FFFFFF,
BorderWidth = 0,
};
contentView.AddChidren(setTempView);
var setTemp_TextButtont = new Button()
{
X = Application.GetRealWidth(16),
Y = Application.GetRealWidth(16),
Width = Application.GetRealWidth(200),
Height = Application.GetRealHeight(23),
TextAlignment = TextAlignment.CenterLeft,
TextSize = 16,
TextColor = CSS_Color.FirstLevelTitleColor,
IsBold = true,
Text = "温度设置",
};
setTempView.AddChidren(setTemp_TextButtont);
setTemp_ValuesButton = new Button()
{
Y = Application.GetRealWidth(34),
Gravity = Gravity.CenterVertical,
Height = Application.GetRealWidth(43),
IsBold = true,
TextSize = 32,
TextColor = CSS_Color.FirstLevelTitleColor,
TextAlignment = TextAlignment.TopCenter,
Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString(), "---"),
};
setTemp_ValuesButton.Width = setTemp_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
setTemp_ValuesButton.Gravity = Gravity.CenterHorizontal;
setTempView.AddChidren(setTemp_ValuesButton);
setTemp_UintButton = new Button()
{
X = setTemp_ValuesButton.Right - Application.GetRealWidth(4),
Y = Application.GetRealWidth(40),
Height = Application.GetRealWidth(66),
TextAlignment = TextAlignment.TopLeft,
Width = Application.GetRealWidth(30),
TextSize = 10,
TextColor = CSS_Color.FirstLevelTitleColor,
Text = "°C"
};
setTempView.AddChidren(setTemp_UintButton);
int setTempValue = 0;
string setTempStr = "--";
double dd = 0;
double.TryParse(function.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString(), "--"), out dd);
setTempValue = Convert.ToInt32(dd);
setTemp_Bar = new DiyImageSeekBar()
{
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealHeight(126 - 72),
Width = Application.GetRealWidth(Application.DesignWidth - 32),
Height = Application.GetRealHeight(72),
SeekBarViewHeight = Application.GetRealHeight(14),
ThumbImagePath = "FunctionIcon/Acst/ThumbImage.png",
ThumbImageHeight = Application.GetRealHeight(51),
ProgressBarColor = 0xFFFFB848 ,
MaxValue = 60,
MinValue = 35,
Progress = setTempValue,
SeekBarPadding = Application.GetRealWidth(20),
IsProgressTextShow = false,
};
setTemp_Bar.ProgressChangeDelayTime = 0;
setTempView.AddChidren(setTemp_Bar);
var setTemp_Temp_MinValuesTextButton = new Button()
{
X = Application.GetRealWidth(16),
Y = Application.GetRealWidth(130),
Width = Application.GetRealWidth(100),
Height = Application.GetRealWidth(26),
Text = "35°C",
TextAlignment = TextAlignment.CenterLeft,
TextColor = 0xFF7C8590,
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
};
setTempView.AddChidren(setTemp_Temp_MinValuesTextButton);
var setTemp_Temp_MaxValuesTextButton = new Button()
{
X = Application.GetRealWidth(343 - 116),
Y = Application.GetRealWidth(130),
Width = Application.GetRealWidth(100),
Height = Application.GetRealWidth(26),
Text = "60°C",
TextAlignment = TextAlignment.CenterRight,
TextColor = 0xFF7C8590,
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
};
setTempView.AddChidren(setTemp_Temp_MaxValuesTextButton);
#endregion
#region flow 热水流量
if (function.attributes.Find((obj) => obj.key == WaterHeaterJinmao_AttrEnum.flow.ToString()) != null)
{
contentView.AddChidren(new Button()
{
Height = Application.GetRealWidth(12),
});
#region flow 热水流量
var flowView = new FrameLayout()
{
Gravity = Gravity.CenterHorizontal,
Width = Application.GetRealWidth(343),
Height = Application.GetRealWidth(186),
BackgroundColor = CSS_Color.MainBackgroundColor,
Radius = (uint)Application.GetRealHeight(12),
BorderColor = 0x00FFFFFF,
BorderWidth = 0,
};
contentView.AddChidren(flowView);
flow_ValuesButton = new Button()
{
X = Application.GetRealWidth(16),
Y = Application.GetRealWidth(14),
Width = Application.GetRealWidth(200),
Height = Application.GetRealWidth(25),
TextAlignment = TextAlignment.CenterLeft,
TextSize = 16,
TextColor = CSS_Color.FirstLevelTitleColor,
Text = "热水流量:" + function.GetAttrState(WaterHeaterJinmao_AttrEnum.flow.ToString()) + "L/min",
IsBold = true,
};
flowView.AddChidren(flow_ValuesButton);
var flow_HotWaterVolumeTextButton = new Button()
{
X = Application.GetRealWidth(16),
Y = Application.GetRealWidth(55),
Width = Application.GetRealWidth(100),
Height = Application.GetRealWidth(20),
Text = "热水量",
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.TextFontSize,
};
flowView.AddChidren(flow_HotWaterVolumeTextButton);
string volumeString = function.GetAttrState(WaterHeaterJinmao_AttrEnum.volume.ToString());
string recyclVolumeString = function.GetAttrState(WaterHeaterJinmao_AttrEnum.recycl_volume.ToString());
double volume = 0;
double.TryParse(volumeString, out volume);
double recyclVolume = 0;
double.TryParse(recyclVolumeString, out recyclVolume);
int recyclVolumePercent = (int)(recyclVolume / volume * 100);
flow_VolumeButton = new Button()
{
X = Application.GetRealWidth(343 - 116),
Y = Application.GetRealWidth(55),
Width = Application.GetRealWidth(100),
Height = Application.GetRealWidth(26),
Text = volumeString + "t",
TextAlignment = TextAlignment.CenterRight,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.TextFontSize,
};
flowView.AddChidren(flow_VolumeButton);
flow_ValuesBar = new DiyImageSeekBar()
{
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealWidth(79),
Width = Application.GetRealWidth(Application.DesignWidth - 64),
Height = Application.GetRealHeight(8),
SeekBarViewHeight = Application.GetRealHeight(8),
ThumbImageHeight = Application.GetRealHeight(0),
ProgressBarColor = 0xFF42D163,
SeekBarBackgroundColor = 0xFFFFB848,
MaxValue = 100,
Progress = recyclVolumePercent,
SeekBarPadding = Application.GetRealWidth(0),
IsProgressTextShow = false,
ProgressChangeDelayTime = 0,
Enable = false,
IsClickable = false,
};
flowView.AddChidren(flow_ValuesBar);
var flow_HeatRecoveryCapacitytTextButton = new Button()
{
X = Application.GetRealWidth(16),
Y = Application.GetRealWidth(103),
Width = Application.GetRealWidth(100),
Height = Application.GetRealWidth(20),
TextAlignment = TextAlignment.CenterLeft,
TextSize = 14,
TextColor = 0xFF00C22D,
Text = "热回收量"
};
flowView.AddChidren(flow_HeatRecoveryCapacitytTextButton);
flow_HeatRecoveryProgressButton = new Button()
{
X = Application.GetRealWidth(16),
Y = Application.GetRealWidth(125),
Width = Application.GetRealWidth(100),
Height = Application.GetRealWidth(22),
TextAlignment = TextAlignment.CenterLeft,
TextSize = 14,
TextColor = 0xFF00C22D,
Text = recyclVolumePercent + "%"
};
flowView.AddChidren(flow_HeatRecoveryProgressButton);
flow_HeatRecoverytValuesButton = new Button()
{
X = Application.GetRealWidth(16),
Y = Application.GetRealWidth(148),
Width = Application.GetRealWidth(100),
Height = Application.GetRealWidth(22),
TextAlignment = TextAlignment.CenterLeft,
TextSize = 14,
TextColor = CSS_Color.FirstLevelTitleColor,
Text = recyclVolume + "t"
};
flowView.AddChidren(flow_HeatRecoverytValuesButton);
var flow_ElectricDriveTextButton = new Button()
{
X = Application.GetRealWidth(343 - 116),
Y = Application.GetRealWidth(103),
Width = Application.GetRealWidth(100),
Height = Application.GetRealWidth(20),
TextAlignment = TextAlignment.CenterRight,
TextSize = 14,
TextColor = 0xFFFC9C04,
Text = "电直驱量",
};
flowView.AddChidren(flow_ElectricDriveTextButton);
flow_ElectricDriveProgressButton = new Button()
{
X = Application.GetRealWidth(343 - 116),
Y = Application.GetRealWidth(125),
Width = Application.GetRealWidth(100),
Height = Application.GetRealWidth(22),
TextAlignment = TextAlignment.CenterRight,
TextSize = 14,
TextColor = 0xFFFC9C04,
Text = "0%"
};
if (volume > 0)
{
flow_ElectricDriveProgressButton.Text = (100 - recyclVolumePercent) + "%";
}
flowView.AddChidren(flow_ElectricDriveProgressButton);
flow_ElectricDriveValuesButton = new Button()
{
X = Application.GetRealWidth(343 - 116),
Y = Application.GetRealWidth(148),
Width = Application.GetRealWidth(100),
Height = Application.GetRealWidth(22),
TextAlignment = TextAlignment.CenterRight,
TextSize = 14,
TextColor = CSS_Color.FirstLevelTitleColor,
Text = (volume - recyclVolume) + "t"
};
flowView.AddChidren(flow_ElectricDriveValuesButton);
#endregion
}
contentView.AddChidren(new Button()
{
Height = Application.GetRealWidth(8)
});
#endregion
#region 社会贡献 Social contribution
if (function.attributes.Find((obj) => obj.key == WaterHeaterJinmao_AttrEnum.energy_electricity.ToString()) != null
&& function.attributes.Find((obj) => obj.key == WaterHeaterJinmao_AttrEnum.co2.ToString()) != null
&& function.attributes.Find((obj) => obj.key == WaterHeaterJinmao_AttrEnum.trees.ToString()) != null)
{
contentView.AddChidren(new Button()
{
Height = Application.GetRealWidth(46),
Width = Application.GetRealWidth(100),
X = Application.GetRealWidth(16),
Text = "社会贡献",
TextAlignment = TextAlignment.CenterLeft,
TextSize = 16,
TextColor = CSS_Color.FirstLevelTitleColor,
IsBold = true
});
var socialContributionView = new HorizontalScrolViewLayout()
{
Gravity = Gravity.CenterHorizontal,
Width = Application.GetRealWidth(343),
Height = Application.GetRealHeight(142),
ScrollEnabled = false,
};
contentView.AddChidren(socialContributionView);
if (function.attributes.Find((obj) => obj.key == WaterHeaterJinmao_AttrEnum.energy_electricity.ToString()) != null)
{
#region 热回收节电量
var socialContribution_InfoView_1 = new FrameLayout()
{
Width = Application.GetRealWidth(109),
Height = Application.GetRealWidth(130),
BackgroundImagePath = "FunctionIcon/Acst/WaterHeater/SocialContributionInfoBg_1.png"
};
socialContributionView.AddChidren(socialContribution_InfoView_1);
var socialContribution_Info1_IconButton = new Button()
{
X = Application.GetRealWidth(12),
Y = Application.GetRealWidth(16),
Width = Application.GetRealWidth(36),
Height = Application.GetRealWidth(36),
UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/SocialContributionInfoIcon_1.png"
};
socialContribution_InfoView_1.AddChidren(socialContribution_Info1_IconButton);
socialContribution_Info1_ValuesButton = new Button()
{
X = Application.GetRealWidth(12),
Y = Application.GetRealWidth(68),
Width = Application.GetRealWidth(36),
Height = Application.GetRealWidth(25),
Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.energy_electricity.ToString()),
TextSize = 18,
TextColor = CSS_Color.FirstLevelTitleColor,
TextAlignment = TextAlignment.BottomLeft,
IsBold = true,
};
socialContribution_Info1_ValuesButton.Width = socialContribution_Info1_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
socialContribution_InfoView_1.AddChidren(socialContribution_Info1_ValuesButton);
socialContribution_Info1_UintButton = new Button()
{
X = socialContribution_Info1_ValuesButton.Right,
Y = Application.GetRealWidth(68),
Width = Application.GetRealWidth(50),
Height = Application.GetRealWidth(23),
Text = "kwh",
TextSize = 12,
TextColor = CSS_Color.FirstLevelTitleColor,
TextAlignment = TextAlignment.BottomLeft,
};
socialContribution_InfoView_1.AddChidren(socialContribution_Info1_UintButton);
var socialContribution_Info1_TipButton = new Button()
{
X = Application.GetRealWidth(12),
Y = Application.GetRealWidth(98),
Width = Application.GetRealWidth(100),
Height = Application.GetRealWidth(17),
Text = "热回收节电量",
TextSize = 12,
TextColor = 0xFF798394,
TextAlignment = TextAlignment.CenterLeft,
};
socialContribution_InfoView_1.AddChidren(socialContribution_Info1_TipButton);
#endregion
socialContributionView.AddChidren(new Button()
{
Width = Application.GetRealWidth(8),
});
}
if (function.attributes.Find((obj) => obj.key == WaterHeaterJinmao_AttrEnum.co2.ToString()) != null)
{
#region CO2减排量
var socialContribution_InfoView_2 = new FrameLayout()
{
Width = Application.GetRealWidth(109),
Height = Application.GetRealWidth(130),
BackgroundImagePath = "FunctionIcon/Acst/WaterHeater/SocialContributionInfoBg_2.png"
};
socialContributionView.AddChidren(socialContribution_InfoView_2);
var socialContribution_Info2_IconButton = new Button()
{
X = Application.GetRealWidth(12),
Y = Application.GetRealWidth(16),
Width = Application.GetRealWidth(36),
Height = Application.GetRealWidth(36),
UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/SocialContributionInfoIcon_2.png"
};
socialContribution_InfoView_2.AddChidren(socialContribution_Info2_IconButton);
socialContribution_Info2_ValuesButton = new Button()
{
X = Application.GetRealWidth(12),
Y = Application.GetRealWidth(68),
Width = Application.GetRealWidth(36),
Height = Application.GetRealWidth(25),
Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.co2.ToString()),
TextSize = 18,
TextColor = CSS_Color.FirstLevelTitleColor,
TextAlignment = TextAlignment.BottomLeft,
IsBold = true,
};
socialContribution_Info2_ValuesButton.Width = socialContribution_Info2_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
socialContribution_InfoView_2.AddChidren(socialContribution_Info2_ValuesButton);
socialContribution_Info2_UintButton = new Button()
{
X = socialContribution_Info2_ValuesButton.Right,
Y = Application.GetRealWidth(68),
Width = Application.GetRealWidth(50),
Height = Application.GetRealWidth(23),
Text = "吨",
TextSize = 12,
TextColor = CSS_Color.FirstLevelTitleColor,
TextAlignment = TextAlignment.BottomLeft,
};
#if __IOS__
socialContribution_Info2_UintButton.Y = Application.GetRealWidth(66);
#endif
socialContribution_InfoView_2.AddChidren(socialContribution_Info2_UintButton);
var socialContribution_Info2_TipButton = new Button()
{
X = Application.GetRealWidth(12),
Y = Application.GetRealWidth(98),
Width = Application.GetRealWidth(100),
Height = Application.GetRealWidth(17),
Text = "CO2减排量",
TextSize = 12,
TextColor = 0xFF798394,
TextAlignment = TextAlignment.CenterLeft,
};
socialContribution_InfoView_2.AddChidren(socialContribution_Info2_TipButton);
#endregion
socialContributionView.AddChidren(new Button()
{
Width = Application.GetRealWidth(8),
});
}
if (function.attributes.Find((obj) => obj.key == WaterHeaterJinmao_AttrEnum.trees.ToString()) != null)
{
#region 等效植树量
var socialContribution_InfoView_3 = new FrameLayout()
{
Width = Application.GetRealWidth(109),
Height = Application.GetRealWidth(130),
BackgroundImagePath = "FunctionIcon/Acst/WaterHeater/SocialContributionInfoBg_3.png"
};
socialContributionView.AddChidren(socialContribution_InfoView_3);
var socialContribution_Info3_IconButton = new Button()
{
X = Application.GetRealWidth(12),
Y = Application.GetRealWidth(16),
Width = Application.GetRealWidth(36),
Height = Application.GetRealWidth(36),
UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/SocialContributionInfoIcon_3.png"
};
socialContribution_InfoView_3.AddChidren(socialContribution_Info3_IconButton);
socialContribution_Info3_ValuesButton = new Button()
{
X = Application.GetRealWidth(12),
Y = Application.GetRealWidth(68),
Width = Application.GetRealWidth(36),
Height = Application.GetRealWidth(25),
Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.trees.ToString()),
TextSize = 18,
TextColor = CSS_Color.FirstLevelTitleColor,
TextAlignment = TextAlignment.BottomLeft,
IsBold = true,
};
socialContribution_Info3_ValuesButton.Width = socialContribution_Info3_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
socialContribution_InfoView_3.AddChidren(socialContribution_Info3_ValuesButton);
socialContribution_Info3_UintButton = new Button()
{
X = socialContribution_Info3_ValuesButton.Right,
Y = Application.GetRealWidth(68),
Width = Application.GetRealWidth(50),
Height = Application.GetRealWidth(23),
Text = "棵",
TextSize = 12,
TextColor = CSS_Color.FirstLevelTitleColor,
TextAlignment = TextAlignment.BottomLeft,
};
#if __IOS__
socialContribution_Info3_UintButton.Y = Application.GetRealWidth(66);
#endif
socialContribution_InfoView_3.AddChidren(socialContribution_Info3_UintButton);
var socialContribution_Info3_TipButton = new Button()
{
X = Application.GetRealWidth(12),
Y = Application.GetRealWidth(98),
Width = Application.GetRealWidth(100),
Height = Application.GetRealWidth(17),
Text = "等效植树量",
TextSize = 12,
TextColor = 0xFF798394,
TextAlignment = TextAlignment.CenterLeft,
};
socialContribution_InfoView_3.AddChidren(socialContribution_Info3_TipButton);
#endregion
}
}
#endregion
}
///
/// 加载底部区域
///
private void initBottomView()
{
btnPowerControl = new Button()
{
Width = Application.GetRealWidth(50),
Height = Application.GetRealWidth(50),
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealWidth(16),
SelectedImagePath = "FunctionIcon/Acst/orange/PowerIcon.png",
UnSelectedImagePath = "FunctionIcon/Acst/grey/PowerOffIcon.png",
IsSelected = function.trait_on_off.curValue.ToString() == "on"
};
bottomView.AddChidren(btnPowerControl);
btnPowerControl.MouseUpEventHandler = (sender, e) =>
{
btnPowerControl.IsSelected = !btnPowerControl.IsSelected;
new System.Threading.Thread(() =>
{
Dictionary d = new Dictionary();
d.Add(FunctionAttributeKey.OnOff, btnPowerControl.IsSelected ? "on" : "off");
Control.Ins.SendWriteCommand(function, d);
})
{ IsBackground = true }.Start();
};
}
///
/// 初始化控制事件
///
private void initControlEvent()
{
//节能模式控制
btnControlModeEconomic.MouseUpEventHandler = (sender, e) =>
{
new System.Threading.Thread(() =>
{
var dic = new Dictionary();
dic.Add(WaterHeaterJinmao_AttrEnum.mode.ToString(), WaterHeaterJinmao_Attr_ModeEnum.economic.ToString());
Control.Ins.SendWriteCommand(function, dic);
function.SetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString(), WaterHeaterJinmao_Attr_ModeEnum.economic.ToString());
Application.RunOnMainThread(() =>
{
updateModeUI();
});
})
{ IsBackground = true }.Start();
};
//速热模式控制
btnControlModeQuickHeat.MouseUpEventHandler = (sender, e) =>
{
new System.Threading.Thread(() =>
{
var dic = new Dictionary();
dic.Add(WaterHeaterJinmao_AttrEnum.mode.ToString(), WaterHeaterJinmao_Attr_ModeEnum.quick_heat.ToString());
Control.Ins.SendWriteCommand(function, dic);
function.SetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString(), WaterHeaterJinmao_Attr_ModeEnum.quick_heat.ToString());
Application.RunOnMainThread(() =>
{
updateModeUI();
});
})
{ IsBackground = true }.Start();
};
setTemp_Bar.OnStartTrackingTouchEvent = (sender, e) =>
{
contentView.ScrollEnabled = false;
};
//设置温度调节
setTemp_Bar.OnStopTrackingTouchEvent = (sender, e) =>
{
contentView.ScrollEnabled = true;
#if __IOS__
setTemp_ValuesButton.Width = setTemp_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
#else
setTemp_ValuesButton.Width = setTemp_ValuesButton.GetTextWidth();
#endif
setTemp_ValuesButton.Gravity = Gravity.CenterHorizontal;
#if __IOS__
setTemp_UintButton.X = setTemp_ValuesButton.Right - Application.GetRealWidth(4);
#else
setTemp_UintButton.X = setTemp_ValuesButton.Right + Application.GetRealWidth(4);
#endif
new System.Threading.Thread(() =>
{
var dic = new Dictionary();
dic.Add(WaterHeaterJinmao_AttrEnum.set_temp.ToString(), setTemp_Bar.Progress.ToString());
Control.Ins.SendWriteCommand(function, dic);
function.SetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString(), setTemp_Bar.Progress.ToString());
})
{ IsBackground = true }.Start();
};
setTemp_Bar.OnProgressChangedEvent = (sender, e) => {
setTemp_ValuesButton.Text = e.ToString();
};
//开关控制
btnPowerControl.MouseUpEventHandler = (sender, e) =>
{
btnPowerControl.IsSelected = !btnPowerControl.IsSelected;
function.SetAttrState(FunctionAttributeKey.OnOff.ToString(), btnPowerControl.IsSelected ? "on" : "off");
new System.Threading.Thread(() =>
{
var dic = new Dictionary();
dic.Add(FunctionAttributeKey.OnOff.ToString(), function.GetAttrState(FunctionAttributeKey.OnOff.ToString()));
Control.Ins.SendWriteCommand(function, dic);
})
{ IsBackground = true }.Start();
};
}
///
/// 更新界面状态
///
///
public static void UpdateStatus()
{
if (bodyView == null)
{
return;
}
//免费热水
Application.RunOnMainThread(() =>
{
try
{
bodyView.updateFreeMode();
}
catch (Exception ex)
{
MainPage.Log("Error", $"金茂热水控件更新异常:{ex.Message}");
}
try
{
bodyView.updateTemp();
}
catch (Exception ex)
{
MainPage.Log("Error", $"金茂热水控件更新异常:{ex.Message}");
}
try
{
bodyView.updateModeUI();
}
catch (Exception ex)
{
MainPage.Log("Error", $"金茂热水控件更新异常:{ex.Message}");
}
try
{
bodyView.updateSetTemp();
}
catch (Exception ex)
{
MainPage.Log("Error", $"金茂热水控件更新异常:{ex.Message}");
}
try
{
bodyView.updateFlow();
}
catch (Exception ex)
{
MainPage.Log("Error", $"金茂热水控件更新异常:{ex.Message}");
}
try
{
bodyView.updateVolume();
}
catch (Exception ex)
{
MainPage.Log("Error", $"金茂热水控件更新异常:{ex.Message}");
}
try
{
bodyView.updateSocialContribution1();
}
catch (Exception ex)
{
MainPage.Log("Error", $"金茂热水控件更新异常:{ex.Message}");
}
try
{
bodyView.updateSocialContribution2();
}
catch (Exception ex)
{
MainPage.Log("Error", $"金茂热水控件更新异常:{ex.Message}");
}
try
{
bodyView.updateSocialContribution3();
}
catch (Exception ex)
{
MainPage.Log("Error", $"金茂热水控件更新异常:{ex.Message}");
}
try
{
bodyView.updatePowerButton();
}
catch (Exception ex)
{
MainPage.Log("Error", $"金茂热水控件更新异常:{ex.Message}");
}
});
}
///
/// 更新免费热水模式状态UI
///
private void updateFreeMode()
{
if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.mode_free.ToString()) == "true")
{
modeFreeView.BackgroundColor = 0x1500C22D;
modeFree_IconButton.UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/ModeFree_True.png";
modeFree_TextButton.Text = "热回收";
modeFree_TextButton.TextColor = 0xFF00C22D;
}
else
{
modeFreeView.BackgroundColor = 0x15FC9C04;
modeFree_IconButton.UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/ModeFree_False.png";
modeFree_TextButton.Text = "用电";
modeFree_TextButton.TextColor = 0xFFFC9C04;
}
}
///
/// 更新热水温度UI
///
private void updateTemp()
{
btnTempValues.Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.temp.ToString(), "---");
#if __IOS__
btnTempValues.Width = btnTempValues.GetTextWidth() + Application.GetRealWidth(6);
#else
btnTempValues.Width = btnTempValues.GetTextWidth();
#endif
if (btnTempValues.Width > Application.GetRealWidth(80))
{
btnTempValues.TextSize = 28;
}
btnTempValues.Gravity = Gravity.CenterHorizontal;
#if __IOS__
btnTempValuesUint.X = btnTempValues.Right - Application.GetRealWidth(4);
#else
btnTempValuesUint.X = btnTempValues.Right ;
#endif
}
///
/// 更新模式UI
///
private void updateModeUI()
{
if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString()) == WaterHeaterJinmao_Attr_ModeEnum.economic.ToString())
{
//节能
mode_EconomicView.BorderColor = 0xFF00C22D;
mode_EconomicView.BackgroundColor = 0xFFEBFAEE;
mode_Economic_IconButton.UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/Mode_Economic_On.png";
mode_Economic_TextButton.TextColor = CSS_Color.FirstLevelTitleColor;
//速热
mode_QuickHeatView.BorderColor = 0x0000C22D;
mode_QuickHeatView.BorderWidth = (uint)Application.GetRealWidth(1);
mode_QuickHeatView.BackgroundColor = CSS_Color.MainBackgroundColor;
mode_QuickHeat_IconButton.UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/Mode_QuickHeat.png";
mode_QuickHeat_TextButton.TextColor = CSS_Color.TextualColor;
}
else if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString()) == WaterHeaterJinmao_Attr_ModeEnum.quick_heat.ToString())
{
//节能
mode_EconomicView.BorderColor = 0x0000C22D;
mode_EconomicView.BackgroundColor = CSS_Color.MainBackgroundColor;
mode_Economic_IconButton.UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/Mode_Economic.png";
mode_Economic_TextButton.TextColor = CSS_Color.TextualColor;
//速热
mode_QuickHeatView.BorderColor = 0xFFFC9C04;
mode_QuickHeatView.BackgroundColor = 0xFFFFF7EB;
mode_QuickHeat_IconButton.UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/Mode_QuickHeat_On.png";
mode_QuickHeat_TextButton.TextColor = CSS_Color.FirstLevelTitleColor;
}
}
///
/// 更新热水器设置温度UI
///
private void updateSetTemp()
{
setTemp_ValuesButton.Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString(), "---");
#if __IOS__
setTemp_ValuesButton.Width = setTemp_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
#else
setTemp_ValuesButton.Width = setTemp_ValuesButton.GetTextWidth();
#endif
setTemp_ValuesButton.Gravity = Gravity.CenterHorizontal;
#if __IOS__
setTemp_UintButton.X = setTemp_ValuesButton.Right - Application.GetRealWidth(4);
#else
setTemp_UintButton.X = setTemp_ValuesButton.Right + Application.GetRealWidth(4);
#endif
double dd = 35;
double.TryParse(function.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString(), "0"), out dd);
setTemp_Bar.Progress = Convert.ToInt32(dd);
}
///
/// 更新热水流量数据UI
///
private void updateFlow()
{
if (function.attributes.Find((obj) => obj.key == WaterHeaterJinmao_AttrEnum.flow.ToString()) != null)
{
flow_ValuesButton.Text = "热水流量:" + function.GetAttrState(WaterHeaterJinmao_AttrEnum.flow.ToString()) + "L/min";
}
}
///
/// 更新热水总量数据UI
///
private void updateVolume()
{
if (function.attributes.Find((obj) => obj.key == WaterHeaterJinmao_AttrEnum.volume.ToString()) == null)
{
return;
}
if (function.attributes.Find((obj) => obj.key == WaterHeaterJinmao_AttrEnum.recycl_volume.ToString()) == null)
{
return;
}
volumeString = function.GetAttrState(WaterHeaterJinmao_AttrEnum.volume.ToString());
recyclVolumeString = function.GetAttrState(WaterHeaterJinmao_AttrEnum.recycl_volume.ToString());
volume = 0;
double.TryParse(volumeString, out volume);
double.TryParse(recyclVolumeString, out recyclVolume);
recyclVolumePercent = (int)(recyclVolume / volume * 100);
flow_VolumeButton.Text = volumeString + "t";
flow_ValuesBar.Progress = recyclVolumePercent;
flow_HeatRecoveryProgressButton.Text = recyclVolumePercent + "%";
flow_HeatRecoverytValuesButton.Text = recyclVolume + "t";
if (volume > 0)
{
flow_ElectricDriveProgressButton.Text = ((int)(100 - recyclVolumePercent)) + "%";
}
flow_ElectricDriveValuesButton.Text = (((int)(volume * 100) - (int)(recyclVolume * 100)) / 100.0) + "t";
}
///
/// 更新社会贡献1数据UI
///
private void updateSocialContribution1()
{
if (function.attributes.Find((obj) => obj.key == WaterHeaterJinmao_AttrEnum.energy_electricity.ToString()) != null)
{
try
{
socialContribution_Info1_ValuesButton.Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.energy_electricity.ToString());
socialContribution_Info1_ValuesButton.Width = socialContribution_Info1_ValuesButton.GetTextWidth();
if (socialContribution_Info1_ValuesButton.Width > Application.GetRealWidth(61))
{
socialContribution_Info1_ValuesButton.TextSize = 14;
socialContribution_Info1_ValuesButton.Width = socialContribution_Info1_ValuesButton.GetTextWidth();
socialContribution_Info1_UintButton.Height = Application.GetRealWidth(25);
}
#if __IOS__
socialContribution_Info1_ValuesButton.Width += Application.GetRealWidth(6);
socialContribution_Info1_UintButton.X = socialContribution_Info1_ValuesButton.Right - Application.GetRealWidth(4);
#else
socialContribution_Info1_UintButton.X = socialContribution_Info1_ValuesButton.Right + Application.GetRealWidth(2);
#endif
}
catch { }
}
}
///
/// 更新社会贡2献数据UI
///
private void updateSocialContribution2()
{
if (function.attributes.Find((obj) => obj.key == WaterHeaterJinmao_AttrEnum.co2.ToString()) != null)
{
try
{
socialContribution_Info2_ValuesButton.Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.co2.ToString());
socialContribution_Info2_ValuesButton.Width = socialContribution_Info2_ValuesButton.GetTextWidth();
if (socialContribution_Info2_ValuesButton.Width > Application.GetRealWidth(61))
{
socialContribution_Info2_ValuesButton.TextSize = 14;
socialContribution_Info2_ValuesButton.Width = socialContribution_Info2_ValuesButton.GetTextWidth();
}
#if __IOS__
socialContribution_Info2_ValuesButton.Width += Application.GetRealWidth(6);
socialContribution_Info2_UintButton.X = socialContribution_Info2_ValuesButton.Right - Application.GetRealWidth(4);
#else
socialContribution_Info2_UintButton.X = socialContribution_Info2_ValuesButton.Right + Application.GetRealWidth(2);
#endif
}
catch { }
}
}
///
/// 更新社会贡3献数据UI
///
private void updateSocialContribution3()
{
if (function.attributes.Find((obj) => obj.key == WaterHeaterJinmao_AttrEnum.trees.ToString()) != null)
{
try
{
socialContribution_Info3_ValuesButton.Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.trees.ToString());
socialContribution_Info3_ValuesButton.Width = socialContribution_Info3_ValuesButton.GetTextWidth();
if (socialContribution_Info3_ValuesButton.Width > Application.GetRealWidth(61))
{
socialContribution_Info3_ValuesButton.TextSize = 14;
socialContribution_Info3_ValuesButton.Width = socialContribution_Info3_ValuesButton.GetTextWidth();
//socialContribution_Info3_UintButton.Height = Application.GetRealWidth(23);
}
#if __IOS__
socialContribution_Info3_ValuesButton.Width += Application.GetRealWidth(6);
socialContribution_Info3_UintButton.X = socialContribution_Info3_ValuesButton.Right - Application.GetRealWidth(4);
#else
socialContribution_Info3_UintButton.X = socialContribution_Info3_ValuesButton.Right + Application.GetRealWidth(2);
#endif
}
catch { }
}
}
///
/// 更新开关按钮状态
///
private void updatePowerButton()
{
btnPowerControl.IsSelected = function.GetAttrState(FunctionAttributeKey.OnOff.ToString()) == "on";
}
}
}