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"; } } }