| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using com.hdl.on; |
| | | using HDL_ON.DriverLayer; |
| | | using HDL_ON.Entity; |
| | | using HDL_ON.UI.CSS; |
| | |
| | | FrameLayout bottomView; |
| | | Function function; |
| | | |
| | | |
| | | /// <summary> |
| | | /// 热水模式状态区域 |
| | | /// </summary> |
| | | FrameLayout modeFreeView; |
| | | /// <summary> |
| | | /// 热水模式状态图标 |
| | | /// </summary> |
| | | Button modeFree_IconButton; |
| | | /// <summary> |
| | | /// 热水模式状态文本 |
| | | /// </summary> |
| | | Button modeFree_TextButton; |
| | | /// <summary> |
| | | /// 热水温度值 |
| | | /// </summary> |
| | | Button btnTempValues; |
| | | /// <summary> |
| | | /// 热水温度单位 |
| | | /// </summary> |
| | | Button btnTempValuesUint; |
| | | /// <summary> |
| | | /// 节能模式控制按钮 |
| | | /// </summary> |
| | | Button btnControlModeEconomic; |
| | | /// <summary> |
| | | /// 节能模式控制区域 |
| | | /// </summary> |
| | | FrameLayout mode_EconomicView; |
| | | /// <summary> |
| | | /// 节能模式图标按钮 |
| | | /// </summary> |
| | | Button mode_Economic_IconButton; |
| | | /// <summary> |
| | | /// 节能模式文本按钮 |
| | | /// </summary> |
| | | Button mode_Economic_TextButton; |
| | | /// <summary> |
| | | /// 速热模式控制按钮 |
| | | /// </summary> |
| | | Button btnControlModeQuickHeat; |
| | | /// <summary> |
| | | /// 速热模式控制区域 |
| | | /// </summary> |
| | | FrameLayout mode_QuickHeatView; |
| | | /// <summary> |
| | | /// 速热模式图标按钮 |
| | | /// </summary> |
| | | Button mode_QuickHeat_IconButton; |
| | | /// <summary> |
| | | /// 速热模式文本按钮 |
| | | /// </summary> |
| | | Button mode_QuickHeat_TextButton; |
| | | /// <summary> |
| | | /// 设置温度文本按钮 |
| | | /// </summary> |
| | | Button setTemp_ValuesButton; |
| | | /// <summary> |
| | | /// 设置温度单位按钮 |
| | | /// </summary> |
| | | Button setTemp_UintButton; |
| | | /// <summary> |
| | | /// 设置温度控制控件 |
| | | /// </summary> |
| | | DiyImageSeekBar setTemp_Bar; |
| | | /// <summary> |
| | | /// 热水流量数据按钮 |
| | | /// </summary> |
| | | Button flow_ValuesButton; |
| | | /// <summary> |
| | | /// 热水总流量数据按钮 |
| | | /// </summary> |
| | | Button flow_VolumeButton; |
| | | /// <summary> |
| | | /// 热水流量比控件 |
| | | /// </summary> |
| | | DiyImageSeekBar flow_ValuesBar; |
| | | /// <summary> |
| | | /// 热回收百分比数据按钮 |
| | | /// </summary> |
| | | Button flow_HeatRecoveryProgressButton; |
| | | /// <summary> |
| | | /// 热回收数据按钮 |
| | | /// </summary> |
| | | Button flow_HeatRecoverytValuesButton; |
| | | /// <summary> |
| | | /// 电直驱百分比数据按钮 |
| | | /// </summary> |
| | | Button flow_ElectricDriveProgressButton; |
| | | /// <summary> |
| | | /// 电直驱数据按钮 |
| | | /// </summary> |
| | | Button flow_ElectricDriveValuesButton; |
| | | string volumeString = string.Empty; |
| | | string recyclVolumeString = string.Empty; |
| | | double volume = 0; |
| | | double recyclVolume = 0; |
| | | int recyclVolumePercent = 0; |
| | | |
| | | /// <summary> |
| | | /// 热回收节电量数据按钮 |
| | | /// </summary> |
| | | Button socialContribution_Info1_ValuesButton; |
| | | /// <summary> |
| | | /// 热回收节电量单位按钮 |
| | | /// </summary> |
| | | Button socialContribution_Info1_UintButton; |
| | | /// <summary> |
| | | /// CO2减排量数据按钮 |
| | | /// </summary> |
| | | Button socialContribution_Info2_ValuesButton; |
| | | /// <summary> |
| | | /// CO2减排量单位按钮 |
| | | /// </summary> |
| | | Button socialContribution_Info2_UintButton; |
| | | /// <summary> |
| | | /// 等效植树量数据按钮 |
| | | /// </summary> |
| | | Button socialContribution_Info3_UintButton; |
| | | /// <summary> |
| | | /// 等效植树量单位按钮 |
| | | /// </summary> |
| | | Button socialContribution_Info3_ValuesButton; |
| | | /// <summary> |
| | | /// 开关按钮 |
| | | /// </summary> |
| | | 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() |
| | | { |
| | |
| | | |
| | | initContentView(); |
| | | initBottomView(); |
| | | initControlEvent(); |
| | | Control.Ins.SendReadCommand(function); |
| | | } |
| | | /// <summary> |
| | |
| | | }; |
| | | contentView.AddChidren(infoView); |
| | | |
| | | var infoView_ModeFreeView = new FrameLayout() |
| | | modeFreeView = new FrameLayout() |
| | | { |
| | | X = 0 - Application.GetRealWidth(14), |
| | | Y = Application.GetRealWidth(12), |
| | | Width = Application.GetRealWidth(68 + 14), |
| | | Height = Application.GetRealWidth(28), |
| | | BackgroundColor = 0x15FC9C04, |
| | | Radius = (uint)Application.GetRealHeight(14), |
| | | Radius = (uint)Application.GetRealWidth(14), |
| | | BorderColor = 0x00FFFFFF, |
| | | BorderWidth = 0, |
| | | }; |
| | | infoView.AddChidren(infoView_ModeFreeView); |
| | | infoView.AddChidren(modeFreeView); |
| | | |
| | | var infoView_ModeFree_IconButton = new Button() |
| | | modeFree_IconButton = new Button() |
| | | { |
| | | X = Application.GetRealWidth(8 + 14), |
| | | Gravity = Gravity.CenterVertical, |
| | |
| | | Height = Application.GetRealWidth(12), |
| | | UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/ModeFree_False.png", |
| | | }; |
| | | infoView_ModeFreeView.AddChidren(infoView_ModeFree_IconButton); |
| | | modeFreeView.AddChidren(modeFree_IconButton); |
| | | |
| | | var infoView_ModeFree_TextButton = new Button() |
| | | modeFree_TextButton = new Button() |
| | | { |
| | | X = Application.GetRealWidth(8 + 14 + 8 + 12), |
| | | X = Application.GetRealWidth(8 + 14 + 4 + 12), |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextSize = 14, |
| | | TextColor = 0xFFFC9C04, |
| | | Text = "用电", |
| | | }; |
| | | infoView_ModeFreeView.AddChidren(infoView_ModeFree_TextButton); |
| | | modeFreeView.AddChidren(modeFree_TextButton); |
| | | |
| | | var infoView_Temp_View = new FrameLayout() |
| | | { |
| | |
| | | }; |
| | | infoView.AddChidren(infoView_Temp_View); |
| | | |
| | | var btnTempValues = new Button() |
| | | btnTempValues = new Button() |
| | | { |
| | | Y = Application.GetRealWidth(34), |
| | | Gravity = Gravity.CenterVertical, |
| | |
| | | #endif |
| | | btnTempValues.Gravity = Gravity.CenterHorizontal; |
| | | infoView_Temp_View.AddChidren(btnTempValues); |
| | | var btnTempValuesUint = new Button() |
| | | |
| | | btnTempValuesUint = new Button() |
| | | { |
| | | X = btnTempValues.Right - Application.GetRealWidth(4), |
| | | Y = Application.GetRealWidth(40), |
| | |
| | | { |
| | | Width = Application.GetRealWidth(16), |
| | | }); |
| | | |
| | | var mode_EconomicView = new FrameLayout() |
| | | //节能 |
| | | mode_EconomicView = new FrameLayout() |
| | | { |
| | | Width = Application.GetRealWidth(165), |
| | | Height = Application.GetRealWidth(52), |
| | |
| | | }; |
| | | modeView.AddChidren(mode_EconomicView); |
| | | |
| | | var mode_Economic_IconButton = new Button() |
| | | mode_Economic_IconButton = new Button() |
| | | { |
| | | Width = Application.GetRealWidth(20), |
| | | Height = Application.GetRealWidth(20), |
| | |
| | | }; |
| | | mode_EconomicView.AddChidren(mode_Economic_IconButton); |
| | | |
| | | var mode_Economic_TextButton = new Button() |
| | | mode_Economic_TextButton = new Button() |
| | | { |
| | | Width = Application.GetRealWidth(80), |
| | | X = Application.GetRealWidth(73 + 8), |
| | |
| | | Width = Application.GetRealWidth(13), |
| | | }); |
| | | |
| | | btnControlModeEconomic = new Button(); |
| | | mode_EconomicView.AddChidren(btnControlModeEconomic); |
| | | |
| | | |
| | | //速热 |
| | | var mode_QuickHeatView = new FrameLayout() |
| | | mode_QuickHeatView = new FrameLayout() |
| | | { |
| | | Width = Application.GetRealWidth(165), |
| | | Height = Application.GetRealWidth(52), |
| | |
| | | }; |
| | | modeView.AddChidren(mode_QuickHeatView); |
| | | |
| | | var mode_QuickHeat_IconButton = new Button() |
| | | mode_QuickHeat_IconButton = new Button() |
| | | { |
| | | Width = Application.GetRealWidth(20), |
| | | Height = Application.GetRealWidth(20), |
| | |
| | | }; |
| | | mode_QuickHeatView.AddChidren(mode_QuickHeat_IconButton); |
| | | |
| | | var mode_QuickHeat_TextButton = new Button() |
| | | |
| | | mode_QuickHeat_TextButton = new Button() |
| | | { |
| | | Width = Application.GetRealWidth(80), |
| | | X = Application.GetRealWidth(81), |
| | |
| | | Text = "速热" |
| | | }; |
| | | mode_QuickHeatView.AddChidren(mode_QuickHeat_TextButton); |
| | | |
| | | btnControlModeQuickHeat = new Button(); |
| | | mode_QuickHeatView.AddChidren(btnControlModeQuickHeat); |
| | | |
| | | #endregion |
| | | |
| | | #region 设置温度 |
| | |
| | | }; |
| | | setTempView.AddChidren(setTemp_TextButtont); |
| | | |
| | | var setTemp_Temp_ValuesTextButton = new Button() |
| | | setTemp_ValuesButton = new Button() |
| | | { |
| | | Y = Application.GetRealWidth(34), |
| | | Gravity = Gravity.CenterVertical, |
| | |
| | | Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString(), "---"), |
| | | }; |
| | | #if __IOS__ |
| | | setTemp_Temp_ValuesTextButton.Width = setTemp_Temp_ValuesTextButton.GetTextWidth() + Application.GetRealWidth(8); |
| | | setTemp_ValuesButton.Width = setTemp_ValuesButton.GetTextWidth() + Application.GetRealWidth(8); |
| | | #else |
| | | setTemp_Temp_ValuesTextButton.Width = setTemp_Temp_ValuesTextButton.GetTextWidth(); |
| | | setTemp_ValuesButton.Width = setTemp_ValuesButton.GetTextWidth(); |
| | | #endif |
| | | setTemp_Temp_ValuesTextButton.Gravity = Gravity.CenterHorizontal; |
| | | setTempView.AddChidren(setTemp_Temp_ValuesTextButton); |
| | | var setTemp_Temp_ValuesUintButton = new Button() |
| | | setTemp_ValuesButton.Gravity = Gravity.CenterHorizontal; |
| | | setTempView.AddChidren(setTemp_ValuesButton); |
| | | |
| | | setTemp_UintButton = new Button() |
| | | { |
| | | X = setTemp_Temp_ValuesTextButton.Right - Application.GetRealWidth(4), |
| | | X = setTemp_ValuesButton.Right - Application.GetRealWidth(4), |
| | | Y = Application.GetRealWidth(40), |
| | | Height = Application.GetRealWidth(66), |
| | | TextAlignment = TextAlignment.TopLeft, |
| | |
| | | TextColor = CSS_Color.FirstLevelTitleColor, |
| | | Text = "°C" |
| | | }; |
| | | setTempView.AddChidren(setTemp_Temp_ValuesUintButton); |
| | | setTempView.AddChidren(setTemp_UintButton); |
| | | |
| | | |
| | | int setTempValue = 0; |
| | |
| | | double dd = 0; |
| | | double.TryParse(function.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString(), "--"), out dd); |
| | | setTempValue = Convert.ToInt32(dd); |
| | | var setTemp_Temp_Bar = new DiyImageSeekBar() |
| | | setTemp_Bar = new DiyImageSeekBar() |
| | | { |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Y = Application.GetRealHeight(126 - 72), |
| | |
| | | IsProgressTextShow = false, |
| | | ProgressChangeDelayTime = 0, |
| | | }; |
| | | setTempView.AddChidren(setTemp_Temp_Bar); |
| | | setTempView.AddChidren(setTemp_Bar); |
| | | |
| | | var setTemp_Temp_MinValuesTextButton = new Button() |
| | | { |
| | |
| | | }; |
| | | contentView.AddChidren(flowView); |
| | | |
| | | var flow_ValuesButton = new Button() |
| | | flow_ValuesButton = new Button() |
| | | { |
| | | X = Application.GetRealWidth(16), |
| | | Y = Application.GetRealWidth(14), |
| | |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextSize = 16, |
| | | TextColor = CSS_Color.FirstLevelTitleColor, |
| | | Text = "热水流量:0.3L/min", |
| | | Text = "热水流量:" + function.GetAttrState(WaterHeaterJinmao_AttrEnum.flow.ToString()) + "L/min", |
| | | IsBold = true, |
| | | }; |
| | | flowView.AddChidren(flow_ValuesButton); |
| | |
| | | }; |
| | | flowView.AddChidren(flow_HotWaterVolumeTextButton); |
| | | |
| | | var flow_HotWaterVolumeValuesButton = new Button() |
| | | 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 = "24t", |
| | | Text = volumeString + "t", |
| | | TextAlignment = TextAlignment.CenterRight, |
| | | TextColor = CSS_Color.FirstLevelTitleColor, |
| | | TextSize = CSS_FontSize.TextFontSize, |
| | | }; |
| | | flowView.AddChidren(flow_HotWaterVolumeValuesButton); |
| | | flowView.AddChidren(flow_VolumeButton); |
| | | |
| | | var flow_ValuesBar = new DiyImageSeekBar() |
| | | |
| | | flow_ValuesBar = new DiyImageSeekBar() |
| | | { |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Y = Application.GetRealWidth(79), |
| | |
| | | ProgressBarColor = 0xFF42D163, |
| | | SeekBarBackgroundColor = 0xFFFFB848, |
| | | MaxValue = 100, |
| | | Progress = 80, |
| | | Progress = recyclVolumePercent, |
| | | SeekBarPadding = Application.GetRealWidth(0), |
| | | IsProgressTextShow = false, |
| | | ProgressChangeDelayTime = 0, |
| | |
| | | }; |
| | | flowView.AddChidren(flow_HeatRecoveryCapacitytTextButton); |
| | | |
| | | var flow_HeatRecoveryCapacitytProgressButton = new Button() |
| | | flow_HeatRecoveryProgressButton = new Button() |
| | | { |
| | | X = Application.GetRealWidth(16), |
| | | Y = Application.GetRealWidth(125), |
| | |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextSize = 14, |
| | | TextColor = 0xFF00C22D, |
| | | Text = "80%" |
| | | Text = recyclVolumePercent + "%" |
| | | }; |
| | | flowView.AddChidren(flow_HeatRecoveryCapacitytProgressButton); |
| | | flowView.AddChidren(flow_HeatRecoveryProgressButton); |
| | | |
| | | var flow_HeatRecoveryCapacitytValuesButton = new Button() |
| | | flow_HeatRecoverytValuesButton = new Button() |
| | | { |
| | | X = Application.GetRealWidth(16), |
| | | Y = Application.GetRealWidth(148), |
| | |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextSize = 14, |
| | | TextColor = CSS_Color.FirstLevelTitleColor, |
| | | Text = "19.2t" |
| | | Text = recyclVolume + "t" |
| | | }; |
| | | flowView.AddChidren(flow_HeatRecoveryCapacitytValuesButton); |
| | | flowView.AddChidren(flow_HeatRecoverytValuesButton); |
| | | |
| | | |
| | | |
| | | var flow_ElectricDirectDriveQuantityTextButton = new Button() |
| | | var flow_ElectricDriveTextButton = new Button() |
| | | { |
| | | X = Application.GetRealWidth(343 - 116), |
| | | Y = Application.GetRealWidth(103), |
| | |
| | | TextColor = 0xFFFC9C04, |
| | | Text = "电直驱量" |
| | | }; |
| | | flowView.AddChidren(flow_ElectricDirectDriveQuantityTextButton); |
| | | flowView.AddChidren(flow_ElectricDriveTextButton); |
| | | |
| | | var flow_ElectricDirectDriveQuantityProgressButton = new Button() |
| | | flow_ElectricDriveProgressButton = new Button() |
| | | { |
| | | X = Application.GetRealWidth(343 - 116), |
| | | Y = Application.GetRealWidth(125), |
| | |
| | | TextAlignment = TextAlignment.CenterRight, |
| | | TextSize = 14, |
| | | TextColor = 0xFFFC9C04, |
| | | Text = "20%" |
| | | Text = (100 - recyclVolumePercent) + "%" |
| | | }; |
| | | flowView.AddChidren(flow_ElectricDirectDriveQuantityProgressButton); |
| | | flowView.AddChidren(flow_ElectricDriveProgressButton); |
| | | |
| | | var flow_ElectricDirectDriveQuantityValuesButton = new Button() |
| | | flow_ElectricDriveValuesButton = new Button() |
| | | { |
| | | X = Application.GetRealWidth(343 - 116), |
| | | Y = Application.GetRealWidth(148), |
| | |
| | | TextAlignment = TextAlignment.CenterRight, |
| | | TextSize = 14, |
| | | TextColor = CSS_Color.FirstLevelTitleColor, |
| | | Text = "4.8t" |
| | | Text = (volume - recyclVolume) + "t" |
| | | }; |
| | | flowView.AddChidren(flow_ElectricDirectDriveQuantityValuesButton); |
| | | flowView.AddChidren(flow_ElectricDriveValuesButton); |
| | | |
| | | #endregion |
| | | |
| | |
| | | }; |
| | | socialContribution_InfoView_1.AddChidren(socialContribution_Info1_IconButton); |
| | | |
| | | var socialContribution_Info1_ValuesButton = new Button() |
| | | 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.recycl_volume.ToString()), |
| | | Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.energy_electricity.ToString()), |
| | | TextSize = 18, |
| | | TextColor = CSS_Color.FirstLevelTitleColor, |
| | | TextAlignment = TextAlignment.BottomLeft, |
| | |
| | | #endif |
| | | socialContribution_InfoView_1.AddChidren(socialContribution_Info1_ValuesButton); |
| | | |
| | | var socialContribution_Info1_UintButton = new Button() |
| | | socialContribution_Info1_UintButton = new Button() |
| | | { |
| | | X = socialContribution_Info1_ValuesButton.Right - Application.GetRealWidth(4), |
| | | Y = Application.GetRealWidth(68), |
| | |
| | | }; |
| | | socialContribution_InfoView_2.AddChidren(socialContribution_Info2_IconButton); |
| | | |
| | | var socialContribution_Info2_ValuesButton = new Button() |
| | | socialContribution_Info2_ValuesButton = new Button() |
| | | { |
| | | X = Application.GetRealWidth(12), |
| | | Y = Application.GetRealWidth(68), |
| | |
| | | #endif |
| | | socialContribution_InfoView_2.AddChidren(socialContribution_Info2_ValuesButton); |
| | | |
| | | var socialContribution_Info2_UintButton = new Button() |
| | | |
| | | socialContribution_Info2_UintButton = new Button() |
| | | { |
| | | X = socialContribution_Info2_ValuesButton.Right - Application.GetRealWidth(4), |
| | | Y = Application.GetRealWidth(68), |
| | |
| | | }; |
| | | socialContribution_InfoView_3.AddChidren(socialContribution_Info3_IconButton); |
| | | |
| | | var socialContribution_Info3_ValuesButton = new Button() |
| | | socialContribution_Info3_ValuesButton = new Button() |
| | | { |
| | | X = Application.GetRealWidth(12), |
| | | Y = Application.GetRealWidth(68), |
| | |
| | | #endif |
| | | socialContribution_InfoView_3.AddChidren(socialContribution_Info3_ValuesButton); |
| | | |
| | | var socialContribution_Info3_UintButton = new Button() |
| | | socialContribution_Info3_UintButton = new Button() |
| | | { |
| | | X = socialContribution_Info3_ValuesButton.Right - Application.GetRealWidth(4), |
| | | Y = Application.GetRealWidth(68), |
| | |
| | | |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 加载底部区域 |
| | | /// </summary> |
| | | private void initBottomView() |
| | | { |
| | | var btnPowerControl = new Button() |
| | | btnPowerControl = new Button() |
| | | { |
| | | Width = Application.GetRealWidth(50), |
| | | Height = Application.GetRealWidth(50), |
| | |
| | | }; |
| | | bottomView.AddChidren(btnPowerControl); |
| | | |
| | | btnPowerControl.MouseUpEventHandler = (sender, e) => { |
| | | btnPowerControl.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | btnPowerControl.IsSelected = !btnPowerControl.IsSelected; |
| | | |
| | | new System.Threading.Thread(() => { |
| | | 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); |
| | |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 初始化控制事件 |
| | | /// </summary> |
| | | private void initControlEvent() |
| | | { |
| | | //节能模式控制 |
| | | btnControlModeEconomic.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString()) != WaterHeaterJinmao_Attr_ModeEnum.economic.ToString()) |
| | | { |
| | | new System.Threading.Thread(() => |
| | | { |
| | | var dic = new Dictionary<string, string>(); |
| | | 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) => |
| | | { |
| | | if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString()) != WaterHeaterJinmao_Attr_ModeEnum.quick_heat.ToString()) |
| | | { |
| | | new System.Threading.Thread(() => |
| | | { |
| | | var dic = new Dictionary<string, string>(); |
| | | 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.OnStopTrackingTouchEvent = (sender, e) => |
| | | { |
| | | new System.Threading.Thread(() => |
| | | { |
| | | var dic = new Dictionary<string, string>(); |
| | | 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<string, string>(); |
| | | dic.Add(FunctionAttributeKey.OnOff.ToString(), function.GetAttrState(FunctionAttributeKey.OnOff.ToString())); |
| | | Control.Ins.SendWriteCommand(function, dic); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | }; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 更新界面状态 |
| | | /// </summary> |
| | | /// <param name="temp"></param> |
| | | public void UpdateStatus(Function temp) |
| | | { |
| | | if (bodyView == null) |
| | | { |
| | | return; |
| | | } |
| | | //免费热水 |
| | | if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.mode_free.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.mode_free.ToString())) |
| | | { |
| | | function.SetAttrState(WaterHeaterJinmao_AttrEnum.mode_free.ToString(), temp.GetAttrState(WaterHeaterJinmao_AttrEnum.mode_free.ToString())); |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | updateFreeMode(); |
| | | }); |
| | | } |
| | | //热水温度 |
| | | if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.temp.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.temp.ToString())) |
| | | { |
| | | function.SetAttrState(WaterHeaterJinmao_AttrEnum.temp.ToString(), temp.GetAttrState(WaterHeaterJinmao_AttrEnum.temp.ToString())); |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | updateTemp(); |
| | | }); |
| | | } |
| | | //热水器模式 |
| | | if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString())) |
| | | { |
| | | function.SetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString(), temp.GetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString())); |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | updateModeUI(); |
| | | }); |
| | | } |
| | | //热水器设置温度 |
| | | if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString())) |
| | | { |
| | | function.SetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString(), temp.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString())); |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | updateSetTemp(); |
| | | }); |
| | | } |
| | | //热水流量 |
| | | if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.flow.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.flow.ToString())) |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | updateFlow(); |
| | | }); |
| | | } |
| | | //热水总量 |
| | | if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.volume.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.volume.ToString()) || |
| | | function.GetAttrState(WaterHeaterJinmao_AttrEnum.recycl_volume.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.recycl_volume.ToString())) |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | updateVolume(); |
| | | }); |
| | | } |
| | | //社会贡献-节电量 |
| | | if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.energy_electricity.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.energy_electricity.ToString())) |
| | | { |
| | | updateSocialContribution1(); |
| | | } |
| | | //社会贡献-co2 |
| | | if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.co2.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.co2.ToString())) |
| | | { |
| | | updateSocialContribution2(); |
| | | } |
| | | //社会贡献-植树 |
| | | if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.trees.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.trees.ToString())) |
| | | { |
| | | updateSocialContribution3(); |
| | | } |
| | | //开关按钮 |
| | | if (function.GetAttrState(FunctionAttributeKey.OnOff.ToString()) != temp.GetAttrState(FunctionAttributeKey.OnOff.ToString())) |
| | | { |
| | | updatePowerButton(); |
| | | } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 更新免费热水模式状态UI |
| | | /// </summary> |
| | | private void updateFreeMode() |
| | | { |
| | | if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.mode_free.ToString()) != "true") |
| | | { |
| | | modeFreeView.BackgroundColor = 0x1500C22D; |
| | | modeFreeView.Width = Width = Application.GetRealWidth(82 + 14); |
| | | modeFree_IconButton.UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/ModeFree_True.png"; |
| | | modeFree_TextButton.Text = "热回收"; |
| | | modeFree_TextButton.TextColor = 0xFF00C22D; |
| | | } |
| | | else |
| | | { |
| | | modeFreeView.BackgroundColor = 0x15FC9C04; |
| | | modeFreeView.Width = Width = Application.GetRealWidth(68 + 14); |
| | | modeFree_IconButton.UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/ModeFree_False.png"; |
| | | modeFree_TextButton.Text = "用电"; |
| | | modeFree_TextButton.TextColor = 0xFFFC9C04; |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// 更新热水温度UI |
| | | /// </summary> |
| | | private void updateTemp() |
| | | { |
| | | btnTempValues.Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.temp.ToString(), "---"); |
| | | #if __IOS__ |
| | | btnTempValues.Width = btnTempValues.GetTextWidth() + Application.GetRealWidth(8); |
| | | #else |
| | | btnTempValues.Width = btnTempValues.GetTextWidth(); |
| | | #endif |
| | | btnTempValues.Gravity = Gravity.CenterHorizontal; |
| | | |
| | | btnTempValuesUint.X = btnTempValues.Right - Application.GetRealWidth(4); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 更新模式UI |
| | | /// </summary> |
| | | 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; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 更新热水器设置温度UI |
| | | /// </summary> |
| | | 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; |
| | | |
| | | setTemp_UintButton.X = setTemp_ValuesButton.Right - Application.GetRealWidth(4); |
| | | |
| | | |
| | | double dd = 0; |
| | | double.TryParse(function.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString(), "0"), out dd); |
| | | setTemp_Bar.Progress = Convert.ToInt32(dd) - 35; |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 更新热水流量数据UI |
| | | /// </summary> |
| | | private void updateFlow() |
| | | { |
| | | flow_ValuesButton.Text = "热水流量:" + function.GetAttrState(WaterHeaterJinmao_AttrEnum.flow.ToString()) + "L/min"; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 更新热水总量数据UI |
| | | /// </summary> |
| | | private void updateVolume() |
| | | { |
| | | 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"; |
| | | flow_ElectricDriveProgressButton.Text = (100 - recyclVolumePercent) + "%"; |
| | | flow_ElectricDriveValuesButton.Text = (volume - recyclVolume) + "t"; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 更新社会贡献1数据UI |
| | | /// </summary> |
| | | private void updateSocialContribution1() |
| | | { |
| | | socialContribution_Info1_ValuesButton.Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.energy_electricity.ToString()); |
| | | #if __IOS__ |
| | | socialContribution_Info1_ValuesButton.Width = socialContribution_Info1_ValuesButton.GetTextWidth() + Application.GetRealWidth(8); |
| | | #else |
| | | socialContribution_Info1_ValuesButton.Width = socialContribution_Info1_ValuesButton.GetTextWidth(); |
| | | #endif |
| | | socialContribution_Info1_UintButton.X = socialContribution_Info1_ValuesButton.Right - Application.GetRealWidth(4); |
| | | } |
| | | /// <summary> |
| | | /// 更新社会贡2献数据UI |
| | | /// </summary> |
| | | private void updateSocialContribution2() |
| | | { |
| | | socialContribution_Info3_ValuesButton.Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.co2.ToString()); |
| | | #if __IOS__ |
| | | socialContribution_Info3_ValuesButton.Width = socialContribution_Info2_ValuesButton.GetTextWidth() + Application.GetRealWidth(8); |
| | | #else |
| | | socialContribution_Info2_ValuesButton.Width = socialContribution_Info2_ValuesButton.GetTextWidth(); |
| | | #endif |
| | | socialContribution_Info2_UintButton.X = socialContribution_Info2_ValuesButton.Right - Application.GetRealWidth(4); |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 更新社会贡3献数据UI |
| | | /// </summary> |
| | | private void updateSocialContribution3() |
| | | { |
| | | |
| | | socialContribution_Info3_ValuesButton.Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.trees.ToString()); |
| | | #if __IOS__ |
| | | socialContribution_Info3_ValuesButton.Width = socialContribution_Info3_ValuesButton.GetTextWidth() + Application.GetRealWidth(8); |
| | | #else |
| | | socialContribution_Info3_ValuesButton.Width = socialContribution_Info3_ValuesButton.GetTextWidth(); |
| | | #endif |
| | | socialContribution_Info3_UintButton.X = socialContribution_Info3_ValuesButton.Right - Application.GetRealWidth(4); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 更新开关按钮状态 |
| | | /// </summary> |
| | | private void updatePowerButton() |
| | | { |
| | | btnPowerControl.IsSelected = function.GetAttrState(FunctionAttributeKey.OnOff.ToString()) == "on"; |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | | |