From 505effa88b17ce8c3c7ac5403b76d9e5d0cfc2a5 Mon Sep 17 00:00:00 2001
From: wxr <wxr@hdlchina.com.cn>
Date: 星期一, 28 十月 2024 11:58:31 +0800
Subject: [PATCH] 谷歌版本问题修复

---
 HDL_ON/UI/UI2/FuntionControlView/Acst/WaterHeaterJinmaoPage.cs | 1116 +++++++++++++++++++++++++++++++--------------------------
 1 files changed, 604 insertions(+), 512 deletions(-)

diff --git a/HDL_ON/UI/UI2/FuntionControlView/Acst/WaterHeaterJinmaoPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Acst/WaterHeaterJinmaoPage.cs
index ae12336..fe07f72 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Acst/WaterHeaterJinmaoPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Acst/WaterHeaterJinmaoPage.cs
@@ -10,7 +10,7 @@
 {
     public class WaterHeaterJinmaoPage : FrameLayout
     {
-        FrameLayout bodyView;
+        static WaterHeaterJinmaoPage bodyView;
         VerticalScrolViewLayout contentView;
         FrameLayout bottomView;
         Function function;
@@ -110,8 +110,8 @@
         Button flow_ElectricDriveValuesButton;
         string volumeString = string.Empty;
         string recyclVolumeString = string.Empty;
-        double volume = 0;
-        double recyclVolume = 0;
+        double volume = 0.00;
+        double recyclVolume = 0.00;
         int recyclVolumePercent = 0;
 
         /// <summary>
@@ -142,9 +142,6 @@
         /// 寮�鍏虫寜閽�
         /// </summary>
         Button btnPowerControl;
-
-
-
 
         public WaterHeaterJinmaoPage(Function deviceFunction)
         {
@@ -180,6 +177,9 @@
             initContentView();
             initBottomView();
             initControlEvent();
+
+            UpdateStatus();
+
             Control.Ins.SendReadCommand(function);
         }
         /// <summary>
@@ -190,7 +190,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),
@@ -206,7 +206,7 @@
             {
                 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.GetRealWidth(14),
@@ -255,17 +255,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.Width = btnTempValues.GetTextWidth() + Application.GetRealWidth(6);
+            if (btnTempValues.Width > Application.GetRealWidth(80))
+            {
+                btnTempValues.TextSize = 28;
+            }
             btnTempValues.Gravity = Gravity.CenterHorizontal;
+
             infoView_Temp_View.AddChidren(btnTempValues);
 
             btnTempValuesUint = new Button()
             {
-                X = btnTempValues.Right - Application.GetRealWidth(4),
+                X = btnTempValues.Right,
                 Y = Application.GetRealWidth(40),
                 Height = Application.GetRealWidth(66),
                 TextAlignment = TextAlignment.TopLeft,
@@ -395,7 +396,7 @@
 
             #endregion
 
-            #region 璁剧疆娓╁害
+            #region 娓╁害璁剧疆
             var setTempView = new FrameLayout()
             {
                 Gravity = Gravity.CenterHorizontal,
@@ -433,11 +434,7 @@
                 TextAlignment = TextAlignment.TopCenter,
                 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;
             setTempView.AddChidren(setTemp_ValuesButton);
 
@@ -469,13 +466,14 @@
                 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,
             };
+            setTemp_Bar.ProgressChangeDelayTime = 0;
             setTempView.AddChidren(setTemp_Bar);
 
             var setTemp_Temp_MinValuesTextButton = new Button()
@@ -505,409 +503,421 @@
             setTempView.AddChidren(setTemp_Temp_MaxValuesTextButton);
             #endregion
 
-            contentView.AddChidren(new Button()
-            {
-                Height = Application.GetRealWidth(12),
-            });
 
             #region flow 鐑按娴侀噺
-            var flowView = new FrameLayout()
+            if (function.attributes.Find((obj) => obj.key == WaterHeaterJinmao_AttrEnum.flow.ToString()) != null)
             {
-                Gravity = Gravity.CenterHorizontal,
-                Width = Application.GetRealWidth(343),
-                Height = Application.GetRealWidth(186),
-                BackgroundColor = CSS_Color.MainBackgroundColor,
-                Radius = (uint)Application.GetRealHeight(12),
-                BorderColor = 0x00FFFFFF,
-                BorderWidth = 0,
-            };
-            contentView.AddChidren(flowView);
+                contentView.AddChidren(new Button()
+                {
+                    Height = Application.GetRealWidth(12),
+                });
 
-            flow_ValuesButton = new Button()
-            {
-                X = Application.GetRealWidth(16),
-                Y = Application.GetRealWidth(14),
-                Width = Application.GetRealWidth(200),
-                Height = Application.GetRealWidth(25),
-                TextAlignment = TextAlignment.CenterLeft,
-                TextSize = 16,
-                TextColor = CSS_Color.FirstLevelTitleColor,
-                Text = "鐑按娴侀噺锛�" + function.GetAttrState(WaterHeaterJinmao_AttrEnum.flow.ToString()) + "L/min",
-                IsBold = true,
-            };
-            flowView.AddChidren(flow_ValuesButton);
+                #region flow 鐑按娴侀噺
+                var flowView = new FrameLayout()
+                {
+                    Gravity = Gravity.CenterHorizontal,
+                    Width = Application.GetRealWidth(343),
+                    Height = Application.GetRealWidth(186),
+                    BackgroundColor = CSS_Color.MainBackgroundColor,
+                    Radius = (uint)Application.GetRealHeight(12),
+                    BorderColor = 0x00FFFFFF,
+                    BorderWidth = 0,
+                };
+                contentView.AddChidren(flowView);
 
-            var flow_HotWaterVolumeTextButton = new Button()
-            {
-                X = Application.GetRealWidth(16),
-                Y = Application.GetRealWidth(55),
-                Width = Application.GetRealWidth(100),
-                Height = Application.GetRealWidth(20),
-                Text = "鐑按閲�",
-                TextAlignment = TextAlignment.CenterLeft,
-                TextColor = CSS_Color.FirstLevelTitleColor,
-                TextSize = CSS_FontSize.TextFontSize,
-            };
-            flowView.AddChidren(flow_HotWaterVolumeTextButton);
+                flow_ValuesButton = new Button()
+                {
+                    X = Application.GetRealWidth(16),
+                    Y = Application.GetRealWidth(14),
+                    Width = Application.GetRealWidth(200),
+                    Height = Application.GetRealWidth(25),
+                    TextAlignment = TextAlignment.CenterLeft,
+                    TextSize = 16,
+                    TextColor = CSS_Color.FirstLevelTitleColor,
+                    Text = "鐑按娴侀噺锛�" + function.GetAttrState(WaterHeaterJinmao_AttrEnum.flow.ToString()) + "L/min",
+                    IsBold = true,
+                };
+                flowView.AddChidren(flow_ValuesButton);
 
-            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);
+                var flow_HotWaterVolumeTextButton = new Button()
+                {
+                    X = Application.GetRealWidth(16),
+                    Y = Application.GetRealWidth(55),
+                    Width = Application.GetRealWidth(100),
+                    Height = Application.GetRealWidth(20),
+                    Text = "鐑按閲�",
+                    TextAlignment = TextAlignment.CenterLeft,
+                    TextColor = CSS_Color.FirstLevelTitleColor,
+                    TextSize = CSS_FontSize.TextFontSize,
+                };
+                flowView.AddChidren(flow_HotWaterVolumeTextButton);
+
+                string volumeString = function.GetAttrState(WaterHeaterJinmao_AttrEnum.volume.ToString());
+                string recyclVolumeString = function.GetAttrState(WaterHeaterJinmao_AttrEnum.recycl_volume.ToString());
+                double volume = 0;
+                double.TryParse(volumeString, out volume);
+                double recyclVolume = 0;
+                double.TryParse(recyclVolumeString, out recyclVolume);
+                int recyclVolumePercent = (int)(recyclVolume / volume * 100);
 
 
-            flow_VolumeButton = new Button()
-            {
-                X = Application.GetRealWidth(343 - 116),
-                Y = Application.GetRealWidth(55),
-                Width = Application.GetRealWidth(100),
-                Height = Application.GetRealWidth(26),
-                Text = volumeString + "t",
-                TextAlignment = TextAlignment.CenterRight,
-                TextColor = CSS_Color.FirstLevelTitleColor,
-                TextSize = CSS_FontSize.TextFontSize,
-            };
-            flowView.AddChidren(flow_VolumeButton);
+                flow_VolumeButton = new Button()
+                {
+                    X = Application.GetRealWidth(343 - 116),
+                    Y = Application.GetRealWidth(55),
+                    Width = Application.GetRealWidth(100),
+                    Height = Application.GetRealWidth(26),
+                    Text = volumeString + "t",
+                    TextAlignment = TextAlignment.CenterRight,
+                    TextColor = CSS_Color.FirstLevelTitleColor,
+                    TextSize = CSS_FontSize.TextFontSize,
+                };
+                flowView.AddChidren(flow_VolumeButton);
 
 
-            flow_ValuesBar = new DiyImageSeekBar()
-            {
-                Gravity = Gravity.CenterHorizontal,
-                Y = Application.GetRealWidth(79),
-                Width = Application.GetRealWidth(Application.DesignWidth - 64),
-                Height = Application.GetRealHeight(8),
-                SeekBarViewHeight = Application.GetRealHeight(8),
-                ThumbImageHeight = Application.GetRealHeight(0),
-                ProgressBarColor = 0xFF42D163,
-                SeekBarBackgroundColor = 0xFFFFB848,
-                MaxValue = 100,
-                Progress = recyclVolumePercent,
-                SeekBarPadding = Application.GetRealWidth(0),
-                IsProgressTextShow = false,
-                ProgressChangeDelayTime = 0,
-                Enable = false,
-                IsClickable = false,
-            };
-            flowView.AddChidren(flow_ValuesBar);
+                flow_ValuesBar = new DiyImageSeekBar()
+                {
+                    Gravity = Gravity.CenterHorizontal,
+                    Y = Application.GetRealWidth(79),
+                    Width = Application.GetRealWidth(Application.DesignWidth - 64),
+                    Height = Application.GetRealHeight(8),
+                    SeekBarViewHeight = Application.GetRealHeight(8),
+                    ThumbImageHeight = Application.GetRealHeight(0),
+                    ProgressBarColor = 0xFF42D163,
+                    SeekBarBackgroundColor = 0xFFFFB848,
+                    MaxValue = 100,
+                    Progress = recyclVolumePercent,
+                    SeekBarPadding = Application.GetRealWidth(0),
+                    IsProgressTextShow = false,
+                    ProgressChangeDelayTime = 0,
+                    Enable = false,
+                    IsClickable = false,
+                };
+                flowView.AddChidren(flow_ValuesBar);
 
-            var flow_HeatRecoveryCapacitytTextButton = new Button()
-            {
-                X = Application.GetRealWidth(16),
-                Y = Application.GetRealWidth(103),
-                Width = Application.GetRealWidth(100),
-                Height = Application.GetRealWidth(20),
-                TextAlignment = TextAlignment.CenterLeft,
-                TextSize = 14,
-                TextColor = 0xFF00C22D,
-                Text = "鐑洖鏀堕噺"
-            };
-            flowView.AddChidren(flow_HeatRecoveryCapacitytTextButton);
+                var flow_HeatRecoveryCapacitytTextButton = new Button()
+                {
+                    X = Application.GetRealWidth(16),
+                    Y = Application.GetRealWidth(103),
+                    Width = Application.GetRealWidth(100),
+                    Height = Application.GetRealWidth(20),
+                    TextAlignment = TextAlignment.CenterLeft,
+                    TextSize = 14,
+                    TextColor = 0xFF00C22D,
+                    Text = "鐑洖鏀堕噺"
+                };
+                flowView.AddChidren(flow_HeatRecoveryCapacitytTextButton);
 
-            flow_HeatRecoveryProgressButton = new Button()
-            {
-                X = Application.GetRealWidth(16),
-                Y = Application.GetRealWidth(125),
-                Width = Application.GetRealWidth(100),
-                Height = Application.GetRealWidth(22),
-                TextAlignment = TextAlignment.CenterLeft,
-                TextSize = 14,
-                TextColor = 0xFF00C22D,
-                Text = recyclVolumePercent + "%"
-            };
-            flowView.AddChidren(flow_HeatRecoveryProgressButton);
+                flow_HeatRecoveryProgressButton = new Button()
+                {
+                    X = Application.GetRealWidth(16),
+                    Y = Application.GetRealWidth(125),
+                    Width = Application.GetRealWidth(100),
+                    Height = Application.GetRealWidth(22),
+                    TextAlignment = TextAlignment.CenterLeft,
+                    TextSize = 14,
+                    TextColor = 0xFF00C22D,
+                    Text = recyclVolumePercent + "%"
+                };
+                flowView.AddChidren(flow_HeatRecoveryProgressButton);
 
-            flow_HeatRecoverytValuesButton = new Button()
-            {
-                X = Application.GetRealWidth(16),
-                Y = Application.GetRealWidth(148),
-                Width = Application.GetRealWidth(100),
-                Height = Application.GetRealWidth(22),
-                TextAlignment = TextAlignment.CenterLeft,
-                TextSize = 14,
-                TextColor = CSS_Color.FirstLevelTitleColor,
-                Text = recyclVolume + "t"
-            };
-            flowView.AddChidren(flow_HeatRecoverytValuesButton);
+                flow_HeatRecoverytValuesButton = new Button()
+                {
+                    X = Application.GetRealWidth(16),
+                    Y = Application.GetRealWidth(148),
+                    Width = Application.GetRealWidth(100),
+                    Height = Application.GetRealWidth(22),
+                    TextAlignment = TextAlignment.CenterLeft,
+                    TextSize = 14,
+                    TextColor = CSS_Color.FirstLevelTitleColor,
+                    Text = recyclVolume + "t"
+                };
+                flowView.AddChidren(flow_HeatRecoverytValuesButton);
 
+                var flow_ElectricDriveTextButton = new Button()
+                {
+                    X = Application.GetRealWidth(343 - 116),
+                    Y = Application.GetRealWidth(103),
+                    Width = Application.GetRealWidth(100),
+                    Height = Application.GetRealWidth(20),
+                    TextAlignment = TextAlignment.CenterRight,
+                    TextSize = 14,
+                    TextColor = 0xFFFC9C04,
+                    Text = "鐢电洿椹遍噺",
+                };
+                flowView.AddChidren(flow_ElectricDriveTextButton);
 
+                flow_ElectricDriveProgressButton = new Button()
+                {
+                    X = Application.GetRealWidth(343 - 116),
+                    Y = Application.GetRealWidth(125),
+                    Width = Application.GetRealWidth(100),
+                    Height = Application.GetRealWidth(22),
+                    TextAlignment = TextAlignment.CenterRight,
+                    TextSize = 14,
+                    TextColor = 0xFFFC9C04,
+                    Text = "0%"
+                };
+                if (volume > 0)
+                {
+                    flow_ElectricDriveProgressButton.Text = (100 - recyclVolumePercent) + "%";
+                }
+                flowView.AddChidren(flow_ElectricDriveProgressButton);
 
-            var flow_ElectricDriveTextButton = new Button()
-            {
-                X = Application.GetRealWidth(343 - 116),
-                Y = Application.GetRealWidth(103),
-                Width = Application.GetRealWidth(100),
-                Height = Application.GetRealWidth(20),
-                TextAlignment = TextAlignment.CenterRight,
-                TextSize = 14,
-                TextColor = 0xFFFC9C04,
-                Text = "鐢电洿椹遍噺"
-            };
-            flowView.AddChidren(flow_ElectricDriveTextButton);
+                flow_ElectricDriveValuesButton = new Button()
+                {
+                    X = Application.GetRealWidth(343 - 116),
+                    Y = Application.GetRealWidth(148),
+                    Width = Application.GetRealWidth(100),
+                    Height = Application.GetRealWidth(22),
+                    TextAlignment = TextAlignment.CenterRight,
+                    TextSize = 14,
+                    TextColor = CSS_Color.FirstLevelTitleColor,
+                    Text = (volume - recyclVolume) + "t"
+                };
+                flowView.AddChidren(flow_ElectricDriveValuesButton);
 
-            flow_ElectricDriveProgressButton = new Button()
-            {
-                X = Application.GetRealWidth(343 - 116),
-                Y = Application.GetRealWidth(125),
-                Width = Application.GetRealWidth(100),
-                Height = Application.GetRealWidth(22),
-                TextAlignment = TextAlignment.CenterRight,
-                TextSize = 14,
-                TextColor = 0xFFFC9C04,
-                Text = (100 - recyclVolumePercent) + "%"
-            };
-            flowView.AddChidren(flow_ElectricDriveProgressButton);
-
-            flow_ElectricDriveValuesButton = new Button()
-            {
-                X = Application.GetRealWidth(343 - 116),
-                Y = Application.GetRealWidth(148),
-                Width = Application.GetRealWidth(100),
-                Height = Application.GetRealWidth(22),
-                TextAlignment = TextAlignment.CenterRight,
-                TextSize = 14,
-                TextColor = CSS_Color.FirstLevelTitleColor,
-                Text = (volume - recyclVolume) + "t"
-            };
-            flowView.AddChidren(flow_ElectricDriveValuesButton);
-
-            #endregion
+                #endregion
+            }
 
             contentView.AddChidren(new Button()
             {
                 Height = Application.GetRealWidth(8)
             });
+            #endregion
 
             #region 绀句細璐$尞 Social contribution
-            contentView.AddChidren(new Button()
+            if (function.attributes.Find((obj) => obj.key == WaterHeaterJinmao_AttrEnum.energy_electricity.ToString()) != null
+                && function.attributes.Find((obj) => obj.key == WaterHeaterJinmao_AttrEnum.co2.ToString()) != null
+                && function.attributes.Find((obj) => obj.key == WaterHeaterJinmao_AttrEnum.trees.ToString()) != null)
             {
-                Height = Application.GetRealWidth(46),
-                Width = Application.GetRealWidth(100),
-                X = Application.GetRealWidth(16),
-                Text = "绀句細璐$尞",
-                TextAlignment = TextAlignment.CenterLeft,
-                TextSize = 16,
-                TextColor = CSS_Color.FirstLevelTitleColor,
-                IsBold = true
-            });
+                contentView.AddChidren(new Button()
+                {
+                    Height = Application.GetRealWidth(46),
+                    Width = Application.GetRealWidth(100),
+                    X = Application.GetRealWidth(16),
+                    Text = "绀句細璐$尞",
+                    TextAlignment = TextAlignment.CenterLeft,
+                    TextSize = 16,
+                    TextColor = CSS_Color.FirstLevelTitleColor,
+                    IsBold = true
+                });
 
-            var socialContributionView = new HorizontalScrolViewLayout()
-            {
-                Gravity = Gravity.CenterHorizontal,
-                Width = Application.GetRealWidth(343),
-                Height = Application.GetRealHeight(142),
-                ScrollEnabled = false,
-            };
-            contentView.AddChidren(socialContributionView);
+                var socialContributionView = new HorizontalScrolViewLayout()
+                {
+                    Gravity = Gravity.CenterHorizontal,
+                    Width = Application.GetRealWidth(343),
+                    Height = Application.GetRealHeight(142),
+                    ScrollEnabled = false,
+                };
+                contentView.AddChidren(socialContributionView);
+                if (function.attributes.Find((obj) => obj.key == WaterHeaterJinmao_AttrEnum.energy_electricity.ToString()) != null)
+                {
+                    #region 鐑洖鏀惰妭鐢甸噺
+                    var socialContribution_InfoView_1 = new FrameLayout()
+                    {
+                        Width = Application.GetRealWidth(109),
+                        Height = Application.GetRealWidth(130),
+                        BackgroundImagePath = "FunctionIcon/Acst/WaterHeater/SocialContributionInfoBg_1.png"
+                    };
+                    socialContributionView.AddChidren(socialContribution_InfoView_1);
 
-            #region 鐑洖鏀惰妭鐢甸噺
-            var socialContribution_InfoView_1 = new FrameLayout()
-            {
-                Width = Application.GetRealWidth(109),
-                Height = Application.GetRealWidth(130),
-                BackgroundImagePath = "FunctionIcon/Acst/WaterHeater/SocialContributionInfoBg_1.png"
-            };
-            socialContributionView.AddChidren(socialContribution_InfoView_1);
+                    var socialContribution_Info1_IconButton = new Button()
+                    {
+                        X = Application.GetRealWidth(12),
+                        Y = Application.GetRealWidth(16),
+                        Width = Application.GetRealWidth(36),
+                        Height = Application.GetRealWidth(36),
+                        UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/SocialContributionInfoIcon_1.png"
+                    };
+                    socialContribution_InfoView_1.AddChidren(socialContribution_Info1_IconButton);
 
-            var socialContribution_Info1_IconButton = new Button()
-            {
-                X = Application.GetRealWidth(12),
-                Y = Application.GetRealWidth(16),
-                Width = Application.GetRealWidth(36),
-                Height = Application.GetRealWidth(36),
-                UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/SocialContributionInfoIcon_1.png"
-            };
-            socialContribution_InfoView_1.AddChidren(socialContribution_Info1_IconButton);
+                    socialContribution_Info1_ValuesButton = new Button()
+                    {
+                        X = Application.GetRealWidth(12),
+                        Y = Application.GetRealWidth(68),
+                        Width = Application.GetRealWidth(36),
+                        Height = Application.GetRealWidth(25),
+                        Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.energy_electricity.ToString()),
+                        TextSize = 18,
+                        TextColor = CSS_Color.FirstLevelTitleColor,
+                        TextAlignment = TextAlignment.BottomLeft,
+                        IsBold = true,
+                    };
+                    socialContribution_Info1_ValuesButton.Width = socialContribution_Info1_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
+                    socialContribution_InfoView_1.AddChidren(socialContribution_Info1_ValuesButton);
 
-            socialContribution_Info1_ValuesButton = new Button()
-            {
-                X = Application.GetRealWidth(12),
-                Y = Application.GetRealWidth(68),
-                Width = Application.GetRealWidth(36),
-                Height = Application.GetRealWidth(25),
-                Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.energy_electricity.ToString()),
-                TextSize = 18,
-                TextColor = CSS_Color.FirstLevelTitleColor,
-                TextAlignment = TextAlignment.BottomLeft,
-                IsBold = true,
-            };
+                    socialContribution_Info1_UintButton = new Button()
+                    {
+                        X = socialContribution_Info1_ValuesButton.Right,
+                        Y = Application.GetRealWidth(68),
+                        Width = Application.GetRealWidth(50),
+                        Height = Application.GetRealWidth(23),
+                        Text = "kwh",
+                        TextSize = 12,
+                        TextColor = CSS_Color.FirstLevelTitleColor,
+                        TextAlignment = TextAlignment.BottomLeft,
+                    };
+                    socialContribution_InfoView_1.AddChidren(socialContribution_Info1_UintButton);
+
+                    var socialContribution_Info1_TipButton = new Button()
+                    {
+                        X = Application.GetRealWidth(12),
+                        Y = Application.GetRealWidth(98),
+                        Width = Application.GetRealWidth(100),
+                        Height = Application.GetRealWidth(17),
+                        Text = "鐑洖鏀惰妭鐢甸噺",
+                        TextSize = 12,
+                        TextColor = 0xFF798394,
+                        TextAlignment = TextAlignment.CenterLeft,
+                    };
+                    socialContribution_InfoView_1.AddChidren(socialContribution_Info1_TipButton);
+                    #endregion
+
+                    socialContributionView.AddChidren(new Button()
+                    {
+                        Width = Application.GetRealWidth(8),
+                    });
+                }
+                if (function.attributes.Find((obj) => obj.key == WaterHeaterJinmao_AttrEnum.co2.ToString()) != null)
+                {
+                    #region CO2鍑忔帓閲�
+                    var socialContribution_InfoView_2 = new FrameLayout()
+                    {
+                        Width = Application.GetRealWidth(109),
+                        Height = Application.GetRealWidth(130),
+                        BackgroundImagePath = "FunctionIcon/Acst/WaterHeater/SocialContributionInfoBg_2.png"
+                    };
+                    socialContributionView.AddChidren(socialContribution_InfoView_2);
+
+                    var socialContribution_Info2_IconButton = new Button()
+                    {
+                        X = Application.GetRealWidth(12),
+                        Y = Application.GetRealWidth(16),
+                        Width = Application.GetRealWidth(36),
+                        Height = Application.GetRealWidth(36),
+                        UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/SocialContributionInfoIcon_2.png"
+                    };
+                    socialContribution_InfoView_2.AddChidren(socialContribution_Info2_IconButton);
+
+                    socialContribution_Info2_ValuesButton = new Button()
+                    {
+                        X = Application.GetRealWidth(12),
+                        Y = Application.GetRealWidth(68),
+                        Width = Application.GetRealWidth(36),
+                        Height = Application.GetRealWidth(25),
+                        Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.co2.ToString()),
+                        TextSize = 18,
+                        TextColor = CSS_Color.FirstLevelTitleColor,
+                        TextAlignment = TextAlignment.BottomLeft,
+                        IsBold = true,
+                    };
+                    socialContribution_Info2_ValuesButton.Width = socialContribution_Info2_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
+                    socialContribution_InfoView_2.AddChidren(socialContribution_Info2_ValuesButton);
+
+
+                    socialContribution_Info2_UintButton = new Button()
+                    {
+                        X = socialContribution_Info2_ValuesButton.Right,
+                        Y = Application.GetRealWidth(68),
+                        Width = Application.GetRealWidth(50),
+                        Height = Application.GetRealWidth(23),
+                        Text = "鍚�",
+                        TextSize = 12,
+                        TextColor = CSS_Color.FirstLevelTitleColor,
+                        TextAlignment = TextAlignment.BottomLeft,
+                    };
 #if __IOS__
-            socialContribution_Info1_ValuesButton.Width = socialContribution_Info1_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
-#else
-            socialContribution_Info1_ValuesButton.Width = socialContribution_Info1_ValuesButton.GetTextWidth();
+            socialContribution_Info2_UintButton.Y = Application.GetRealWidth(66);
 #endif
-            socialContribution_InfoView_1.AddChidren(socialContribution_Info1_ValuesButton);
+                    socialContribution_InfoView_2.AddChidren(socialContribution_Info2_UintButton);
 
-            socialContribution_Info1_UintButton = new Button()
-            {
-                X = socialContribution_Info1_ValuesButton.Right - Application.GetRealWidth(4),
-                Y = Application.GetRealWidth(68),
-                Width = Application.GetRealWidth(50),
-                Height = Application.GetRealWidth(23),
-                Text = "kwh",
-                TextSize = 12,
-                TextColor = CSS_Color.FirstLevelTitleColor,
-                TextAlignment = TextAlignment.BottomLeft,
-            };
-            socialContribution_InfoView_1.AddChidren(socialContribution_Info1_UintButton);
+                    var socialContribution_Info2_TipButton = new Button()
+                    {
+                        X = Application.GetRealWidth(12),
+                        Y = Application.GetRealWidth(98),
+                        Width = Application.GetRealWidth(100),
+                        Height = Application.GetRealWidth(17),
+                        Text = "CO2鍑忔帓閲�",
+                        TextSize = 12,
+                        TextColor = 0xFF798394,
+                        TextAlignment = TextAlignment.CenterLeft,
+                    };
+                    socialContribution_InfoView_2.AddChidren(socialContribution_Info2_TipButton);
+                    #endregion
 
-            var socialContribution_Info1_TipButton = new Button()
-            {
-                X = Application.GetRealWidth(12),
-                Y = Application.GetRealWidth(98),
-                Width = Application.GetRealWidth(100),
-                Height = Application.GetRealWidth(17),
-                Text = "鐑洖鏀惰妭鐢甸噺",
-                TextSize = 12,
-                TextColor = 0xFF798394,
-                TextAlignment = TextAlignment.CenterLeft,
-            };
-            socialContribution_InfoView_1.AddChidren(socialContribution_Info1_TipButton);
-            #endregion
+                    socialContributionView.AddChidren(new Button()
+                    {
+                        Width = Application.GetRealWidth(8),
+                    });
+                }
+                if (function.attributes.Find((obj) => obj.key == WaterHeaterJinmao_AttrEnum.trees.ToString()) != null)
+                {
+                    #region 绛夋晥妞嶆爲閲�
+                    var socialContribution_InfoView_3 = new FrameLayout()
+                    {
+                        Width = Application.GetRealWidth(109),
+                        Height = Application.GetRealWidth(130),
+                        BackgroundImagePath = "FunctionIcon/Acst/WaterHeater/SocialContributionInfoBg_3.png"
+                    };
+                    socialContributionView.AddChidren(socialContribution_InfoView_3);
 
-            socialContributionView.AddChidren(new Button()
-            {
-                Width = Application.GetRealWidth(8),
-            });
+                    var socialContribution_Info3_IconButton = new Button()
+                    {
+                        X = Application.GetRealWidth(12),
+                        Y = Application.GetRealWidth(16),
+                        Width = Application.GetRealWidth(36),
+                        Height = Application.GetRealWidth(36),
+                        UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/SocialContributionInfoIcon_3.png"
+                    };
+                    socialContribution_InfoView_3.AddChidren(socialContribution_Info3_IconButton);
 
-            #region CO2鍑忔帓閲�
-            var socialContribution_InfoView_2 = new FrameLayout()
-            {
-                Width = Application.GetRealWidth(109),
-                Height = Application.GetRealWidth(130),
-                BackgroundImagePath = "FunctionIcon/Acst/WaterHeater/SocialContributionInfoBg_2.png"
-            };
-            socialContributionView.AddChidren(socialContribution_InfoView_2);
+                    socialContribution_Info3_ValuesButton = new Button()
+                    {
+                        X = Application.GetRealWidth(12),
+                        Y = Application.GetRealWidth(68),
+                        Width = Application.GetRealWidth(36),
+                        Height = Application.GetRealWidth(25),
+                        Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.trees.ToString()),
+                        TextSize = 18,
+                        TextColor = CSS_Color.FirstLevelTitleColor,
+                        TextAlignment = TextAlignment.BottomLeft,
+                        IsBold = true,
+                    };
+                    socialContribution_Info3_ValuesButton.Width = socialContribution_Info3_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
+                    socialContribution_InfoView_3.AddChidren(socialContribution_Info3_ValuesButton);
 
-            var socialContribution_Info2_IconButton = new Button()
-            {
-                X = Application.GetRealWidth(12),
-                Y = Application.GetRealWidth(16),
-                Width = Application.GetRealWidth(36),
-                Height = Application.GetRealWidth(36),
-                UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/SocialContributionInfoIcon_2.png"
-            };
-            socialContribution_InfoView_2.AddChidren(socialContribution_Info2_IconButton);
-
-            socialContribution_Info2_ValuesButton = new Button()
-            {
-                X = Application.GetRealWidth(12),
-                Y = Application.GetRealWidth(68),
-                Width = Application.GetRealWidth(36),
-                Height = Application.GetRealWidth(25),
-                Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.co2.ToString()),
-                TextSize = 18,
-                TextColor = CSS_Color.FirstLevelTitleColor,
-                TextAlignment = TextAlignment.BottomLeft,
-                IsBold = true,
-            };
+                    socialContribution_Info3_UintButton = new Button()
+                    {
+                        X = socialContribution_Info3_ValuesButton.Right,
+                        Y = Application.GetRealWidth(68),
+                        Width = Application.GetRealWidth(50),
+                        Height = Application.GetRealWidth(23),
+                        Text = "妫�",
+                        TextSize = 12,
+                        TextColor = CSS_Color.FirstLevelTitleColor,
+                        TextAlignment = TextAlignment.BottomLeft,
+                    };
 #if __IOS__
-            socialContribution_Info2_ValuesButton.Width = socialContribution_Info2_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
-#else
-            socialContribution_Info2_ValuesButton.Width = socialContribution_Info2_ValuesButton.GetTextWidth();
+            socialContribution_Info3_UintButton.Y = Application.GetRealWidth(66);
 #endif
-            socialContribution_InfoView_2.AddChidren(socialContribution_Info2_ValuesButton);
+                    socialContribution_InfoView_3.AddChidren(socialContribution_Info3_UintButton);
 
-
-            socialContribution_Info2_UintButton = new Button()
-            {
-                X = socialContribution_Info2_ValuesButton.Right - Application.GetRealWidth(4),
-                Y = Application.GetRealWidth(68),
-                Width = Application.GetRealWidth(50),
-                Height = Application.GetRealWidth(23),
-                Text = "鍚�",
-                TextSize = 12,
-                TextColor = CSS_Color.FirstLevelTitleColor,
-                TextAlignment = TextAlignment.BottomLeft,
-            };
-            socialContribution_InfoView_2.AddChidren(socialContribution_Info2_UintButton);
-
-            var socialContribution_Info2_TipButton = new Button()
-            {
-                X = Application.GetRealWidth(12),
-                Y = Application.GetRealWidth(98),
-                Width = Application.GetRealWidth(100),
-                Height = Application.GetRealWidth(17),
-                Text = "CO2鍑忔帓閲�",
-                TextSize = 12,
-                TextColor = 0xFF798394,
-                TextAlignment = TextAlignment.CenterLeft,
-            };
-            socialContribution_InfoView_2.AddChidren(socialContribution_Info2_TipButton);
-            #endregion
-
-            socialContributionView.AddChidren(new Button()
-            {
-                Width = Application.GetRealWidth(8),
-            });
-
-            #region 绛夋晥妞嶆爲閲�
-            var socialContribution_InfoView_3 = new FrameLayout()
-            {
-                Width = Application.GetRealWidth(109),
-                Height = Application.GetRealWidth(130),
-                BackgroundImagePath = "FunctionIcon/Acst/WaterHeater/SocialContributionInfoBg_3.png"
-            };
-            socialContributionView.AddChidren(socialContribution_InfoView_3);
-
-            var socialContribution_Info3_IconButton = new Button()
-            {
-                X = Application.GetRealWidth(12),
-                Y = Application.GetRealWidth(16),
-                Width = Application.GetRealWidth(36),
-                Height = Application.GetRealWidth(36),
-                UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/SocialContributionInfoIcon_3.png"
-            };
-            socialContribution_InfoView_3.AddChidren(socialContribution_Info3_IconButton);
-
-            socialContribution_Info3_ValuesButton = new Button()
-            {
-                X = Application.GetRealWidth(12),
-                Y = Application.GetRealWidth(68),
-                Width = Application.GetRealWidth(36),
-                Height = Application.GetRealWidth(25),
-                Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.trees.ToString()),
-                TextSize = 18,
-                TextColor = CSS_Color.FirstLevelTitleColor,
-                TextAlignment = TextAlignment.BottomLeft,
-                IsBold = true,
-            };
-#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);
-
-            socialContribution_Info3_UintButton = new Button()
-            {
-                X = socialContribution_Info3_ValuesButton.Right - Application.GetRealWidth(4),
-                Y = Application.GetRealWidth(68),
-                Width = Application.GetRealWidth(50),
-                Height = Application.GetRealWidth(23),
-                Text = "妫�",
-                TextSize = 12,
-                TextColor = CSS_Color.FirstLevelTitleColor,
-                TextAlignment = TextAlignment.BottomLeft,
-            };
-            socialContribution_InfoView_3.AddChidren(socialContribution_Info3_UintButton);
-
-            var socialContribution_Info3_TipButton = new Button()
-            {
-                X = Application.GetRealWidth(12),
-                Y = Application.GetRealWidth(98),
-                Width = Application.GetRealWidth(100),
-                Height = Application.GetRealWidth(17),
-                Text = "绛夋晥妞嶆爲閲�",
-                TextSize = 12,
-                TextColor = 0xFF798394,
-                TextAlignment = TextAlignment.CenterLeft,
-            };
-            socialContribution_InfoView_3.AddChidren(socialContribution_Info3_TipButton);
-            #endregion
-
+                    var socialContribution_Info3_TipButton = new Button()
+                    {
+                        X = Application.GetRealWidth(12),
+                        Y = Application.GetRealWidth(98),
+                        Width = Application.GetRealWidth(100),
+                        Height = Application.GetRealWidth(17),
+                        Text = "绛夋晥妞嶆爲閲�",
+                        TextSize = 12,
+                        TextColor = 0xFF798394,
+                        TextAlignment = TextAlignment.CenterLeft,
+                    };
+                    socialContribution_InfoView_3.AddChidren(socialContribution_Info3_TipButton);
+                    #endregion
+                }
+            }
 
 
             #endregion
@@ -925,8 +935,8 @@
                 Height = Application.GetRealWidth(50),
                 Gravity = Gravity.CenterHorizontal,
                 Y = Application.GetRealWidth(16),
+                SelectedImagePath = "FunctionIcon/Acst/orange/PowerIcon.png",
                 UnSelectedImagePath = "FunctionIcon/Acst/grey/PowerOffIcon.png",
-                SelectedImagePath = $"FunctionIcon/Acst/blue/PowerIcon.png",
                 IsSelected = function.trait_on_off.curValue.ToString() == "on"
             };
             bottomView.AddChidren(btnPowerControl);
@@ -954,44 +964,55 @@
             //鑺傝兘妯″紡鎺у埗
             btnControlModeEconomic.MouseUpEventHandler = (sender, e) =>
             {
-                if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString()) != WaterHeaterJinmao_Attr_ModeEnum.economic.ToString())
+                new System.Threading.Thread(() =>
                 {
-                    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(() =>
                     {
-                        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();
-                }
+                        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(() =>
                 {
-                    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(() =>
                     {
-                        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();
-                }
+                        updateModeUI();
+                    });
+                })
+                { IsBackground = true }.Start();
+            };
+            setTemp_Bar.OnStartTrackingTouchEvent = (sender, e) =>
+            {
+                contentView.ScrollEnabled = false;
             };
             //璁剧疆娓╁害璋冭妭
             setTemp_Bar.OnStopTrackingTouchEvent = (sender, e) =>
             {
+                contentView.ScrollEnabled = true;
+#if __IOS__
+                setTemp_ValuesButton.Width = setTemp_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
+#else
+                setTemp_ValuesButton.Width = setTemp_ValuesButton.GetTextWidth();
+#endif
+                setTemp_ValuesButton.Gravity = Gravity.CenterHorizontal;
+
+#if __IOS__
+                setTemp_UintButton.X = setTemp_ValuesButton.Right - Application.GetRealWidth(4);
+#else
+                setTemp_UintButton.X = setTemp_ValuesButton.Right + Application.GetRealWidth(4);
+#endif
                 new System.Threading.Thread(() =>
                 {
                     var dic = new Dictionary<string, string>();
@@ -1026,86 +1047,96 @@
         /// 鏇存柊鐣岄潰鐘舵��
         /// </summary>
         /// <param name="temp"></param>
-        public void UpdateStatus(Function temp)
+        public static void UpdateStatus()
         {
             if (bodyView == null)
             {
                 return;
             }
             //鍏嶈垂鐑按
-            if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.mode_free.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.mode_free.ToString()))
+            Application.RunOnMainThread(() =>
             {
-                function.SetAttrState(WaterHeaterJinmao_AttrEnum.mode_free.ToString(), temp.GetAttrState(WaterHeaterJinmao_AttrEnum.mode_free.ToString()));
-                Application.RunOnMainThread(() =>
+                try
                 {
-                    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(() =>
+                    bodyView.updateFreeMode();
+                }
+                catch (Exception ex)
                 {
-                    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(() =>
+                    MainPage.Log("Error", $"閲戣寕鐑按鎺т欢鏇存柊寮傚父锛歿ex.Message}");
+                }
+                try
                 {
-                    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(() =>
+                    bodyView.updateTemp();
+                }
+                catch (Exception ex)
                 {
-                    updateSetTemp();
-                });
-            }
-            //鐑按娴侀噺
-            if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.flow.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.flow.ToString()))
-            {
-                Application.RunOnMainThread(() =>
+                    MainPage.Log("Error", $"閲戣寕鐑按鎺т欢鏇存柊寮傚父锛歿ex.Message}");
+                }
+                try
                 {
-                    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(() =>
+                    bodyView.updateModeUI();
+                }
+                catch (Exception ex)
                 {
-                    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();
-            }
-
+                    MainPage.Log("Error", $"閲戣寕鐑按鎺т欢鏇存柊寮傚父锛歿ex.Message}");
+                }
+                try
+                {
+                    bodyView.updateSetTemp();
+                }
+                catch (Exception ex)
+                {
+                    MainPage.Log("Error", $"閲戣寕鐑按鎺т欢鏇存柊寮傚父锛歿ex.Message}");
+                }
+                try
+                {
+                    bodyView.updateFlow();
+                }
+                catch (Exception ex)
+                {
+                    MainPage.Log("Error", $"閲戣寕鐑按鎺т欢鏇存柊寮傚父锛歿ex.Message}");
+                }
+                try
+                {
+                    bodyView.updateVolume();
+                }
+                catch (Exception ex)
+                {
+                    MainPage.Log("Error", $"閲戣寕鐑按鎺т欢鏇存柊寮傚父锛歿ex.Message}");
+                }
+                try
+                {
+                    bodyView.updateSocialContribution1();
+                }
+                catch (Exception ex)
+                {
+                    MainPage.Log("Error", $"閲戣寕鐑按鎺т欢鏇存柊寮傚父锛歿ex.Message}");
+                }
+                try
+                {
+                    bodyView.updateSocialContribution2();
+                }
+                catch (Exception ex)
+                {
+                    MainPage.Log("Error", $"閲戣寕鐑按鎺т欢鏇存柊寮傚父锛歿ex.Message}");
+                }
+                try
+                {
+                    bodyView.updateSocialContribution3();
+                }
+                catch (Exception ex)
+                {
+                    MainPage.Log("Error", $"閲戣寕鐑按鎺т欢鏇存柊寮傚父锛歿ex.Message}");
+                }
+                try
+                {
+                    bodyView.updatePowerButton();
+                }
+                catch (Exception ex)
+                {
+                    MainPage.Log("Error", $"閲戣寕鐑按鎺т欢鏇存柊寮傚父锛歿ex.Message}");
+                }
+            });
         }
 
         /// <summary>
@@ -1113,10 +1144,9 @@
         /// </summary>
         private void updateFreeMode()
         {
-            if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.mode_free.ToString()) != "true")
+            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;
@@ -1124,7 +1154,6 @@
             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;
@@ -1137,13 +1166,20 @@
         {
             btnTempValues.Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.temp.ToString(), "---");
 #if __IOS__
-            btnTempValues.Width = btnTempValues.GetTextWidth() + Application.GetRealWidth(8);
+            btnTempValues.Width = btnTempValues.GetTextWidth() + Application.GetRealWidth(6);
 #else
             btnTempValues.Width = btnTempValues.GetTextWidth();
 #endif
+            if (btnTempValues.Width > Application.GetRealWidth(80))
+            {
+                btnTempValues.TextSize = 28;
+            }
             btnTempValues.Gravity = Gravity.CenterHorizontal;
-
+#if __IOS__
             btnTempValuesUint.X = btnTempValues.Right - Application.GetRealWidth(4);
+#else
+            btnTempValuesUint.X = btnTempValues.Right ;
+#endif
         }
 
         /// <summary>
@@ -1195,12 +1231,15 @@
 #endif
             setTemp_ValuesButton.Gravity = Gravity.CenterHorizontal;
 
+#if __IOS__
             setTemp_UintButton.X = setTemp_ValuesButton.Right - Application.GetRealWidth(4);
+#else
+            setTemp_UintButton.X = setTemp_ValuesButton.Right + Application.GetRealWidth(4);
+#endif
 
-
-            double dd = 0;
+            double dd = 35;
             double.TryParse(function.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString(), "0"), out dd);
-            setTemp_Bar.Progress = Convert.ToInt32(dd) - 35;
+            setTemp_Bar.Progress = Convert.ToInt32(dd);
 
         }
 
@@ -1209,7 +1248,10 @@
         /// </summary>
         private void updateFlow()
         {
-            flow_ValuesButton.Text = "鐑按娴侀噺锛�" + function.GetAttrState(WaterHeaterJinmao_AttrEnum.flow.ToString()) + "L/min";
+            if (function.attributes.Find((obj) => obj.key == WaterHeaterJinmao_AttrEnum.flow.ToString()) != null)
+            {
+                flow_ValuesButton.Text = "鐑按娴侀噺锛�" + function.GetAttrState(WaterHeaterJinmao_AttrEnum.flow.ToString()) + "L/min";
+            }
         }
 
         /// <summary>
@@ -1217,6 +1259,14 @@
         /// </summary>
         private void updateVolume()
         {
+            if (function.attributes.Find((obj) => obj.key == WaterHeaterJinmao_AttrEnum.volume.ToString()) == null)
+            {
+                return;
+            }
+            if (function.attributes.Find((obj) => obj.key == WaterHeaterJinmao_AttrEnum.recycl_volume.ToString()) == null)
+            {
+                return;
+            }
             volumeString = function.GetAttrState(WaterHeaterJinmao_AttrEnum.volume.ToString());
             recyclVolumeString = function.GetAttrState(WaterHeaterJinmao_AttrEnum.recycl_volume.ToString());
             volume = 0;
@@ -1228,8 +1278,11 @@
             flow_ValuesBar.Progress = recyclVolumePercent;
             flow_HeatRecoveryProgressButton.Text = recyclVolumePercent + "%";
             flow_HeatRecoverytValuesButton.Text = recyclVolume + "t";
-            flow_ElectricDriveProgressButton.Text = (100 - recyclVolumePercent) + "%";
-            flow_ElectricDriveValuesButton.Text = (volume - recyclVolume) + "t";
+            if (volume > 0)
+            {
+                flow_ElectricDriveProgressButton.Text = ((int)(100 - recyclVolumePercent)) + "%";
+            }
+            flow_ElectricDriveValuesButton.Text = (((int)(volume * 100) - (int)(recyclVolume * 100)) / 100.0) + "t";
         }
 
         /// <summary>
@@ -1237,41 +1290,82 @@
         /// </summary>
         private void updateSocialContribution1()
         {
-            socialContribution_Info1_ValuesButton.Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.energy_electricity.ToString());
+
+            if (function.attributes.Find((obj) => obj.key == WaterHeaterJinmao_AttrEnum.energy_electricity.ToString()) != null)
+            {
+                try
+                {
+                    socialContribution_Info1_ValuesButton.Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.energy_electricity.ToString());
+                    socialContribution_Info1_ValuesButton.Width = socialContribution_Info1_ValuesButton.GetTextWidth();
+                    if (socialContribution_Info1_ValuesButton.Width > Application.GetRealWidth(61))
+                    {
+                        socialContribution_Info1_ValuesButton.TextSize = 14;
+                        socialContribution_Info1_ValuesButton.Width = socialContribution_Info1_ValuesButton.GetTextWidth();
+                        socialContribution_Info1_UintButton.Height = Application.GetRealWidth(25);
+                    }
 #if __IOS__
-            socialContribution_Info1_ValuesButton.Width = socialContribution_Info1_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
-#else
-            socialContribution_Info1_ValuesButton.Width = socialContribution_Info1_ValuesButton.GetTextWidth();
-#endif
+            socialContribution_Info1_ValuesButton.Width += Application.GetRealWidth(6);
             socialContribution_Info1_UintButton.X = socialContribution_Info1_ValuesButton.Right - Application.GetRealWidth(4);
+#else
+                    socialContribution_Info1_UintButton.X = socialContribution_Info1_ValuesButton.Right + Application.GetRealWidth(2);
+#endif
+                }
+                catch { }
+            }
         }
         /// <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);
 
+            if (function.attributes.Find((obj) => obj.key == WaterHeaterJinmao_AttrEnum.co2.ToString()) != null)
+            {
+                try
+                {
+                    socialContribution_Info2_ValuesButton.Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.co2.ToString());
+                    socialContribution_Info2_ValuesButton.Width = socialContribution_Info2_ValuesButton.GetTextWidth();
+                    if (socialContribution_Info2_ValuesButton.Width > Application.GetRealWidth(61))
+                    {
+                        socialContribution_Info2_ValuesButton.TextSize = 14;
+                        socialContribution_Info2_ValuesButton.Width = socialContribution_Info2_ValuesButton.GetTextWidth();
+                    }
+#if __IOS__
+            socialContribution_Info2_ValuesButton.Width += Application.GetRealWidth(6);
+            socialContribution_Info2_UintButton.X = socialContribution_Info2_ValuesButton.Right - Application.GetRealWidth(4);
+#else
+                    socialContribution_Info2_UintButton.X = socialContribution_Info2_ValuesButton.Right + Application.GetRealWidth(2);
+#endif
+                }
+                catch { }
+            }
         }
         /// <summary>
         /// 鏇存柊绀句細璐�3鐚暟鎹甎I
         /// </summary>
         private void updateSocialContribution3()
         {
-
-            socialContribution_Info3_ValuesButton.Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.trees.ToString());
+            if (function.attributes.Find((obj) => obj.key == WaterHeaterJinmao_AttrEnum.trees.ToString()) != null)
+            {
+                try
+                {
+                    socialContribution_Info3_ValuesButton.Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.trees.ToString());
+                    socialContribution_Info3_ValuesButton.Width = socialContribution_Info3_ValuesButton.GetTextWidth();
+                    if (socialContribution_Info3_ValuesButton.Width > Application.GetRealWidth(61))
+                    {
+                        socialContribution_Info3_ValuesButton.TextSize = 14;
+                        socialContribution_Info3_ValuesButton.Width = socialContribution_Info3_ValuesButton.GetTextWidth();
+                        //socialContribution_Info3_UintButton.Height = Application.GetRealWidth(23);
+                    }
 #if __IOS__
-            socialContribution_Info3_ValuesButton.Width = socialContribution_Info3_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
-#else
-            socialContribution_Info3_ValuesButton.Width = socialContribution_Info3_ValuesButton.GetTextWidth();
-#endif
+            socialContribution_Info3_ValuesButton.Width += Application.GetRealWidth(6);
             socialContribution_Info3_UintButton.X = socialContribution_Info3_ValuesButton.Right - Application.GetRealWidth(4);
+#else
+                    socialContribution_Info3_UintButton.X = socialContribution_Info3_ValuesButton.Right + Application.GetRealWidth(2);
+#endif
+                }
+                catch { }
+            }
         }
 
         /// <summary>
@@ -1281,8 +1375,6 @@
         {
             btnPowerControl.IsSelected = function.GetAttrState(FunctionAttributeKey.OnOff.ToString()) == "on";
         }
-
-
     }
 }
 

--
Gitblit v1.8.0