From eeb6f0b4bf0a81834325638401d5fa404e53db93 Mon Sep 17 00:00:00 2001 From: wxr <wxr@hdlchina.com.cn> Date: 星期四, 05 九月 2024 19:41:45 +0800 Subject: [PATCH] 金茂光伏储能,热水器;自动化,空调,地暖步进判断 --- HDL_ON/UI/UI2/FuntionControlView/Acst/WaterHeaterJinmaoPage.cs | 674 +++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 575 insertions(+), 99 deletions(-) diff --git a/HDL_ON/UI/UI2/FuntionControlView/Acst/WaterHeaterJinmaoPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Acst/WaterHeaterJinmaoPage.cs index 26256e4..485c9a1 100644 --- a/HDL_ON/UI/UI2/FuntionControlView/Acst/WaterHeaterJinmaoPage.cs +++ b/HDL_ON/UI/UI2/FuntionControlView/Acst/WaterHeaterJinmaoPage.cs @@ -1,5 +1,6 @@ 锘縰sing System; using System.Collections.Generic; +using com.hdl.on; using HDL_ON.DriverLayer; using HDL_ON.Entity; using HDL_ON.UI.CSS; @@ -9,15 +10,147 @@ { public class WaterHeaterJinmaoPage : FrameLayout { - FrameLayout bodyView; + static WaterHeaterJinmaoPage bodyView; VerticalScrolViewLayout contentView; 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.00; + double recyclVolume = 0.00; + 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) @@ -25,7 +158,6 @@ var topView = new TopViewDiv(bodyView, function.name); topView.LoadTopView_FunctionTop(function, action); - contentView = new VerticalScrolViewLayout() { @@ -47,7 +179,10 @@ initContentView(); initBottomView(); + initControlEvent(); Control.Ins.SendReadCommand(function); + + UpdateStatus(); } /// <summary> /// 鍔犺浇鍐呭鍖哄煙 @@ -57,7 +192,7 @@ contentView.AddChidren(new Button() { Height = Application.GetRealHeight(16) }); #region 鐑按鍣ㄧ姸鎬� - var infoView = new FrameLayout() + FrameLayout infoView = new FrameLayout() { Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(343), @@ -69,20 +204,20 @@ }; 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), + Width = Application.GetRealWidth(82 + 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, @@ -90,17 +225,17 @@ 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() { @@ -111,7 +246,7 @@ }; infoView.AddChidren(infoView_Temp_View); - var btnTempValues = new Button() + btnTempValues = new Button() { Y = Application.GetRealWidth(34), Gravity = Gravity.CenterVertical, @@ -122,16 +257,18 @@ TextAlignment = TextAlignment.TopCenter, 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; - infoView_Temp_View.AddChidren(btnTempValues); - var btnTempValuesUint = new Button() + btnTempValues.Width = btnTempValues.GetTextWidth() + Application.GetRealWidth(6); + if (btnTempValues.Width > Application.GetRealWidth(80)) { - X = btnTempValues.Right - Application.GetRealWidth(4), + 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, @@ -178,8 +315,8 @@ { Width = Application.GetRealWidth(16), }); - - var mode_EconomicView = new FrameLayout() + //鑺傝兘 + mode_EconomicView = new FrameLayout() { Width = Application.GetRealWidth(165), Height = Application.GetRealWidth(52), @@ -191,7 +328,7 @@ }; modeView.AddChidren(mode_EconomicView); - var mode_Economic_IconButton = new Button() + mode_Economic_IconButton = new Button() { Width = Application.GetRealWidth(20), Height = Application.GetRealWidth(20), @@ -201,7 +338,7 @@ }; 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), @@ -217,8 +354,12 @@ 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), @@ -230,7 +371,7 @@ }; modeView.AddChidren(mode_QuickHeatView); - var mode_QuickHeat_IconButton = new Button() + mode_QuickHeat_IconButton = new Button() { Width = Application.GetRealWidth(20), Height = Application.GetRealWidth(20), @@ -240,7 +381,8 @@ }; 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), @@ -250,9 +392,13 @@ Text = "閫熺儹" }; mode_QuickHeatView.AddChidren(mode_QuickHeat_TextButton); + + btnControlModeQuickHeat = new Button(); + mode_QuickHeatView.AddChidren(btnControlModeQuickHeat); + #endregion - #region 璁剧疆娓╁害 + #region 娓╁害璁剧疆 var setTempView = new FrameLayout() { Gravity = Gravity.CenterHorizontal, @@ -279,7 +425,7 @@ }; setTempView.AddChidren(setTemp_TextButtont); - var setTemp_Temp_ValuesTextButton = new Button() + setTemp_ValuesButton = new Button() { Y = Application.GetRealWidth(34), Gravity = Gravity.CenterVertical, @@ -290,16 +436,13 @@ TextAlignment = TextAlignment.TopCenter, Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString(), "---"), }; -#if __IOS__ - setTemp_Temp_ValuesTextButton.Width = setTemp_Temp_ValuesTextButton.GetTextWidth() + Application.GetRealWidth(8); -#else - setTemp_Temp_ValuesTextButton.Width = setTemp_Temp_ValuesTextButton.GetTextWidth(); -#endif - setTemp_Temp_ValuesTextButton.Gravity = Gravity.CenterHorizontal; - setTempView.AddChidren(setTemp_Temp_ValuesTextButton); - var setTemp_Temp_ValuesUintButton = new Button() + setTemp_ValuesButton.Width = setTemp_ValuesButton.GetTextWidth() + Application.GetRealWidth(8); + 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, @@ -308,7 +451,7 @@ TextColor = CSS_Color.FirstLevelTitleColor, Text = "掳C" }; - setTempView.AddChidren(setTemp_Temp_ValuesUintButton); + setTempView.AddChidren(setTemp_UintButton); int setTempValue = 0; @@ -316,7 +459,7 @@ 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), @@ -325,14 +468,15 @@ SeekBarViewHeight = Application.GetRealHeight(14), ThumbImagePath = "FunctionIcon/Acst/ThumbImage.png", ThumbImageHeight = Application.GetRealHeight(51), - ProgressBarColor = function.trait_on_off.curValue.ToString() == "on" ? 0xFFFFB848 : CSS_Color.DividingLineColor, - MaxValue = 25, - Progress = setTempValue - 35, + ProgressBarColor = 0xFFFFB848 , + MaxValue = 60, + MinValue = 35, + Progress = setTempValue, SeekBarPadding = Application.GetRealWidth(20), IsProgressTextShow = false, - ProgressChangeDelayTime = 0, }; - setTempView.AddChidren(setTemp_Temp_Bar); + setTemp_Bar.ProgressChangeDelayTime = 0; + setTempView.AddChidren(setTemp_Bar); var setTemp_Temp_MinValuesTextButton = new Button() { @@ -379,7 +523,7 @@ }; contentView.AddChidren(flowView); - var flow_ValuesButton = new Button() + flow_ValuesButton = new Button() { X = Application.GetRealWidth(16), Y = Application.GetRealWidth(14), @@ -388,7 +532,7 @@ 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); @@ -406,20 +550,30 @@ }; 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), @@ -430,7 +584,7 @@ ProgressBarColor = 0xFF42D163, SeekBarBackgroundColor = 0xFFFFB848, MaxValue = 100, - Progress = 80, + Progress = recyclVolumePercent, SeekBarPadding = Application.GetRealWidth(0), IsProgressTextShow = false, ProgressChangeDelayTime = 0, @@ -452,7 +606,7 @@ }; flowView.AddChidren(flow_HeatRecoveryCapacitytTextButton); - var flow_HeatRecoveryCapacitytProgressButton = new Button() + flow_HeatRecoveryProgressButton = new Button() { X = Application.GetRealWidth(16), Y = Application.GetRealWidth(125), @@ -461,11 +615,11 @@ 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), @@ -474,13 +628,11 @@ 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), @@ -489,11 +641,11 @@ TextAlignment = TextAlignment.CenterRight, TextSize = 14, TextColor = 0xFFFC9C04, - Text = "鐢电洿椹遍噺" + 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), @@ -502,11 +654,15 @@ TextAlignment = TextAlignment.CenterRight, TextSize = 14, TextColor = 0xFFFC9C04, - Text = "20%" + Text = "0%" }; - flowView.AddChidren(flow_ElectricDirectDriveQuantityProgressButton); + if(volume > 0) + { + flow_ElectricDriveProgressButton.Text = (100 - recyclVolumePercent) + "%"; + } + flowView.AddChidren(flow_ElectricDriveProgressButton); - var flow_ElectricDirectDriveQuantityValuesButton = new Button() + flow_ElectricDriveValuesButton = new Button() { X = Application.GetRealWidth(343 - 116), Y = Application.GetRealWidth(148), @@ -515,9 +671,9 @@ 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 @@ -567,28 +723,24 @@ }; 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, IsBold = true, }; -#if __IOS__ socialContribution_Info1_ValuesButton.Width = socialContribution_Info1_ValuesButton.GetTextWidth() + Application.GetRealWidth(8); -#else - socialContribution_Info1_ValuesButton.Width = socialContribution_Info1_ValuesButton.GetTextWidth(); -#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), + X = socialContribution_Info1_ValuesButton.Right , Y = Application.GetRealWidth(68), Width = Application.GetRealWidth(50), Height = Application.GetRealWidth(23), @@ -637,7 +789,7 @@ }; 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), @@ -649,16 +801,13 @@ TextAlignment = TextAlignment.BottomLeft, IsBold = true, }; -#if __IOS__ socialContribution_Info2_ValuesButton.Width = socialContribution_Info2_ValuesButton.GetTextWidth() + Application.GetRealWidth(8); -#else - socialContribution_Info2_ValuesButton.Width = socialContribution_Info2_ValuesButton.GetTextWidth(); -#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), + X = socialContribution_Info2_ValuesButton.Right , Y = Application.GetRealWidth(68), Width = Application.GetRealWidth(50), Height = Application.GetRealWidth(23), @@ -707,7 +856,7 @@ }; 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), @@ -719,16 +868,12 @@ TextAlignment = TextAlignment.BottomLeft, IsBold = true, }; -#if __IOS__ socialContribution_Info3_ValuesButton.Width = socialContribution_Info3_ValuesButton.GetTextWidth() + Application.GetRealWidth(8); -#else - socialContribution_Info3_ValuesButton.Width = socialContribution_Info3_ValuesButton.GetTextWidth(); -#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), + X = socialContribution_Info3_ValuesButton.Right , Y = Application.GetRealWidth(68), Width = Application.GetRealWidth(50), Height = Application.GetRealWidth(23), @@ -759,25 +904,29 @@ } - + /// <summary> + /// 鍔犺浇搴曢儴鍖哄煙 + /// </summary> private void initBottomView() { - var btnPowerControl = new Button() + btnPowerControl = new Button() { Width = Application.GetRealWidth(50), Height = Application.GetRealWidth(50), Gravity = Gravity.CenterHorizontal, Y = Application.GetRealWidth(16), UnSelectedImagePath = "FunctionIcon/Acst/grey/PowerOffIcon.png", - SelectedImagePath = $"FunctionIcon/Acst/blue/PowerIcon.png", + SelectedImagePath = "FunctionIcon/Acst/blue/PowerIcon.png", IsSelected = function.trait_on_off.curValue.ToString() == "on" }; 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); @@ -787,9 +936,336 @@ } - public void UpdateStatus(Function temp) + /// <summary> + /// 鍒濆鍖栨帶鍒朵簨浠� + /// </summary> + private void initControlEvent() + { + //鑺傝兘妯″紡鎺у埗 + btnControlModeEconomic.MouseUpEventHandler = (sender, e) => + { + { + 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) => + { + { + 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.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; + setTemp_UintButton.X = setTemp_ValuesButton.Right + Application.GetRealWidth(4); + 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 static void UpdateStatus() + { + if (bodyView == null) + { + return; + } + //鍏嶈垂鐑按 + Application.RunOnMainThread(() => + { + bodyView.updateFreeMode(); + bodyView.updateTemp(); + bodyView.updateModeUI(); + bodyView.updateSetTemp(); + bodyView.updateFlow(); + bodyView.updateVolume(); + bodyView.updateSocialContribution1(); + bodyView.updateSocialContribution2(); + bodyView.updateSocialContribution3(); + bodyView.updatePowerButton(); + }); + } + + /// <summary> + /// 鏇存柊鍏嶈垂鐑按妯″紡鐘舵�乁I + /// </summary> + 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; + } + } + /// <summary> + /// 鏇存柊鐑按娓╁害UI + /// </summary> + 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; + + btnTempValuesUint.X = btnTempValues.Right ; + } + + /// <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> + /// 鏇存柊鐑按鍣ㄨ缃俯搴I + /// </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 = 35; + double.TryParse(function.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString(), "0"), out dd); + setTemp_Bar.Progress = Convert.ToInt32(dd); + + } + + /// <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"; + if (volume > 0) + { + flow_ElectricDriveProgressButton.Text = ((int)(100 - recyclVolumePercent)) + "%"; + } + flow_ElectricDriveValuesButton.Text = (((int)(volume * 100) - (int)(recyclVolume * 100)) / 100.0) + "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 + if (socialContribution_Info1_ValuesButton.Width > Application.GetRealWidth(61)) + { + socialContribution_Info1_ValuesButton.TextSize = 14; +#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.Height = Application.GetRealWidth(25); + } +#if __IOS__ + socialContribution_Info1_UintButton.X = socialContribution_Info1_ValuesButton.Right ; +#else + socialContribution_Info1_UintButton.X = socialContribution_Info1_ValuesButton.Right +Application.GetRealWidth(2); +#endif + } + /// <summary> + /// 鏇存柊绀句細璐�2鐚暟鎹甎I + /// </summary> + private void updateSocialContribution2() + { + socialContribution_Info2_ValuesButton.Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.co2.ToString()); +#if __IOS__ + socialContribution_Info2_ValuesButton.Width = socialContribution_Info2_ValuesButton.GetTextWidth() + Application.GetRealWidth(8); +#else + socialContribution_Info2_ValuesButton.Width = socialContribution_Info2_ValuesButton.GetTextWidth(); +#endif + if (socialContribution_Info2_ValuesButton.Width > Application.GetRealWidth(61)) + { + socialContribution_Info2_ValuesButton.TextSize = 14; +#if __IOS__ + socialContribution_Info2_ValuesButton.Width = socialContribution_Info2_ValuesButton.GetTextWidth() + Application.GetRealWidth(8); +#else + socialContribution_Info2_ValuesButton.Width = socialContribution_Info2_ValuesButton.GetTextWidth(); +#endif + socialContribution_Info2_UintButton.Y = socialContribution_Info2_UintButton.Y - Application.GetRealWidth(4); + } +#if __IOS__ + socialContribution_Info2_UintButton.X = socialContribution_Info2_ValuesButton.Right; +#else + socialContribution_Info2_UintButton.X = socialContribution_Info2_ValuesButton.Right +Application.GetRealWidth(2); +#endif + + } + /// <summary> + /// 鏇存柊绀句細璐�3鐚暟鎹甎I + /// </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 + if (socialContribution_Info3_ValuesButton.Width > Application.GetRealWidth(61)) + { + socialContribution_Info3_ValuesButton.TextSize = 14; +#if __IOS__ + socialContribution_Info3_ValuesButton.Width = socialContribution_Info3_ValuesButton.GetTextWidth() + Application.GetRealWidth(8); +#else + socialContribution_Info3_ValuesButton.Width = socialContribution_Info3_ValuesButton.GetTextWidth(); +#endif + } +#if __IOS__ + socialContribution_Info3_UintButton.X = socialContribution_Info3_ValuesButton.Right; +#else + socialContribution_Info3_UintButton.X = socialContribution_Info3_ValuesButton.Right +Application.GetRealWidth(2); +#endif + } + + /// <summary> + /// 鏇存柊寮�鍏虫寜閽姸鎬� + /// </summary> + private void updatePowerButton() + { + btnPowerControl.IsSelected = function.GetAttrState(FunctionAttributeKey.OnOff.ToString()) == "on"; } } } -- Gitblit v1.8.0