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