From 7b9c970fd38835624f07185cd2ce4659dbb93200 Mon Sep 17 00:00:00 2001 From: wxr <wxr@hdlchina.com.cn> Date: 星期二, 27 八月 2024 15:22:16 +0800 Subject: [PATCH] 金茂代码备份 --- HDL_ON/UI/UI2/FuntionControlView/Acst/WaterHeaterJinmaoPage.cs | 612 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 552 insertions(+), 60 deletions(-) diff --git a/HDL_ON/UI/UI2/FuntionControlView/Acst/WaterHeaterJinmaoPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Acst/WaterHeaterJinmaoPage.cs index 26256e4..ae12336 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; @@ -14,10 +15,142 @@ 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) @@ -25,7 +158,6 @@ var topView = new TopViewDiv(bodyView, function.name); topView.LoadTopView_FunctionTop(function, action); - contentView = new VerticalScrolViewLayout() { @@ -47,6 +179,7 @@ initContentView(); initBottomView(); + initControlEvent(); Control.Ins.SendReadCommand(function); } /// <summary> @@ -69,20 +202,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), 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 +223,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 +244,7 @@ }; infoView.AddChidren(infoView_Temp_View); - var btnTempValues = new Button() + btnTempValues = new Button() { Y = Application.GetRealWidth(34), Gravity = Gravity.CenterVertical, @@ -129,7 +262,8 @@ #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), @@ -178,8 +312,8 @@ { Width = Application.GetRealWidth(16), }); - - var mode_EconomicView = new FrameLayout() + //鑺傝兘 + mode_EconomicView = new FrameLayout() { Width = Application.GetRealWidth(165), Height = Application.GetRealWidth(52), @@ -191,7 +325,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 +335,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 +351,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 +368,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 +378,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,6 +389,10 @@ Text = "閫熺儹" }; mode_QuickHeatView.AddChidren(mode_QuickHeat_TextButton); + + btnControlModeQuickHeat = new Button(); + mode_QuickHeatView.AddChidren(btnControlModeQuickHeat); + #endregion #region 璁剧疆娓╁害 @@ -279,7 +422,7 @@ }; setTempView.AddChidren(setTemp_TextButtont); - var setTemp_Temp_ValuesTextButton = new Button() + setTemp_ValuesButton = new Button() { Y = Application.GetRealWidth(34), Gravity = Gravity.CenterVertical, @@ -291,15 +434,16 @@ 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, @@ -308,7 +452,7 @@ TextColor = CSS_Color.FirstLevelTitleColor, Text = "掳C" }; - setTempView.AddChidren(setTemp_Temp_ValuesUintButton); + setTempView.AddChidren(setTemp_UintButton); int setTempValue = 0; @@ -316,7 +460,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), @@ -332,7 +476,7 @@ IsProgressTextShow = false, ProgressChangeDelayTime = 0, }; - setTempView.AddChidren(setTemp_Temp_Bar); + 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,13 @@ 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), @@ -491,9 +645,9 @@ 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), @@ -502,11 +656,11 @@ 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), @@ -515,9 +669,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,13 +721,13 @@ }; 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, @@ -586,7 +740,7 @@ #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), @@ -637,7 +791,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), @@ -656,7 +810,8 @@ #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), @@ -707,7 +862,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), @@ -726,7 +881,7 @@ #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), @@ -759,10 +914,12 @@ } - + /// <summary> + /// 鍔犺浇搴曢儴鍖哄煙 + /// </summary> private void initBottomView() { - var btnPowerControl = new Button() + btnPowerControl = new Button() { Width = Application.GetRealWidth(50), Height = Application.GetRealWidth(50), @@ -774,10 +931,12 @@ }; 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,10 +946,343 @@ } + /// <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> + /// 鏇存柊鍏嶈垂鐑按妯″紡鐘舵�乁I + /// </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> + /// 鏇存柊鐑按鍣ㄨ缃俯搴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 = 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鐚暟鎹甎I + /// </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鐚暟鎹甎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 + socialContribution_Info3_UintButton.X = socialContribution_Info3_ValuesButton.Right - Application.GetRealWidth(4); + } + + /// <summary> + /// 鏇存柊寮�鍏虫寜閽姸鎬� + /// </summary> + private void updatePowerButton() + { + btnPowerControl.IsSelected = function.GetAttrState(FunctionAttributeKey.OnOff.ToString()) == "on"; + } + + } } -- Gitblit v1.8.0