wxr
2024-09-14 c00da77d00a479fa5d022346a6d9075f90a5c087
HDL_ON/UI/UI2/FuntionControlView/Acst/WaterHeaterJinmaoPage.cs
@@ -143,9 +143,6 @@
        /// </summary>
        Button btnPowerControl;
        public WaterHeaterJinmaoPage(Function deviceFunction)
        {
            bodyView = this;
@@ -180,9 +177,10 @@
            initContentView();
            initBottomView();
            initControlEvent();
            Control.Ins.SendReadCommand(function);
            UpdateStatus();
            Control.Ins.SendReadCommand(function);
        }
        /// <summary>
        /// 加载内容区域
@@ -505,399 +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);
                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) + "%";
                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);
                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
            }
            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
            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_ValuesButton.Width = socialContribution_Info1_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
            socialContribution_InfoView_1.AddChidren(socialContribution_Info1_ValuesButton);
                    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);
            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
            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);
            socialContributionView.AddChidren(new Button()
            {
                Width = Application.GetRealWidth(8),
            });
                    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);
            #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_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,
            };
            socialContribution_InfoView_2.AddChidren(socialContribution_Info2_UintButton);
                    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_Info2_UintButton.Y = Application.GetRealWidth(66);
#endif
                    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
                    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),
            });
                    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);
            #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);
            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,
                    };
                    socialContribution_Info3_ValuesButton.Width = socialContribution_Info3_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
                    socialContribution_InfoView_3.AddChidren(socialContribution_Info3_ValuesButton);
            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);
                    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_Info3_UintButton.Y = Application.GetRealWidth(66);
#endif
                    socialContribution_InfoView_3.AddChidren(socialContribution_Info3_UintButton);
            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,
            };
            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
@@ -915,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);
@@ -944,38 +964,34 @@
            //节能模式控制
            btnControlModeEconomic.MouseUpEventHandler = (sender, e) =>
            {
                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) =>
            {
                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) =>
            {
@@ -988,10 +1004,15 @@
#if __IOS__
                setTemp_ValuesButton.Width = setTemp_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
#else
            setTemp_ValuesButton.Width = setTemp_ValuesButton.GetTextWidth();
                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>();
@@ -1035,16 +1056,86 @@
            //免费热水
            Application.RunOnMainThread(() =>
            {
                bodyView.updateFreeMode();
                bodyView.updateTemp();
                bodyView.updateModeUI();
                bodyView.updateSetTemp();
                bodyView.updateFlow();
                bodyView.updateVolume();
                bodyView.updateSocialContribution1();
                bodyView.updateSocialContribution2();
                bodyView.updateSocialContribution3();
                bodyView.updatePowerButton();
                try
                {
                    bodyView.updateFreeMode();
                }
                catch (Exception ex)
                {
                    MainPage.Log("Error", $"金茂热水控件更新异常:{ex.Message}");
                }
                try
                {
                    bodyView.updateTemp();
                }
                catch (Exception ex)
                {
                    MainPage.Log("Error", $"金茂热水控件更新异常:{ex.Message}");
                }
                try
                {
                    bodyView.updateModeUI();
                }
                catch (Exception ex)
                {
                    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}");
                }
            });
        }
@@ -1084,8 +1175,11 @@
                btnTempValues.TextSize = 28;
            }
            btnTempValues.Gravity = Gravity.CenterHorizontal;
#if __IOS__
            btnTempValuesUint.X = btnTempValues.Right - Application.GetRealWidth(4);
#else
            btnTempValuesUint.X = btnTempValues.Right ;
#endif
        }
        /// <summary>
@@ -1137,8 +1231,11 @@
#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 = 35;
            double.TryParse(function.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString(), "0"), out dd);
@@ -1151,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>
@@ -1159,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;
@@ -1182,82 +1290,82 @@
        /// </summary>
        private void updateSocialContribution1()
        {
            socialContribution_Info1_ValuesButton.Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.energy_electricity.ToString());
#if __IOS__
            socialContribution_Info1_ValuesButton.Width = socialContribution_Info1_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
#else
            socialContribution_Info1_ValuesButton.Width = socialContribution_Info1_ValuesButton.GetTextWidth();
#endif
            if (socialContribution_Info1_ValuesButton.Width > Application.GetRealWidth(61))
            if (function.attributes.Find((obj) => obj.key == WaterHeaterJinmao_AttrEnum.energy_electricity.ToString()) != null)
            {
                socialContribution_Info1_ValuesButton.TextSize = 14;
                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);
            socialContribution_Info1_ValuesButton.Width += Application.GetRealWidth(6);
            socialContribution_Info1_UintButton.X = socialContribution_Info1_ValuesButton.Right - Application.GetRealWidth(4);
#else
            socialContribution_Info1_ValuesButton.Width = socialContribution_Info1_ValuesButton.GetTextWidth();
                    socialContribution_Info1_UintButton.X = socialContribution_Info1_ValuesButton.Right + Application.GetRealWidth(2);
#endif
                socialContribution_Info1_UintButton.Height = Application.GetRealWidth(25);
                }
                catch { }
            }
#if __IOS__
            socialContribution_Info1_UintButton.X = socialContribution_Info1_ValuesButton.Right ;
#else
            socialContribution_Info1_UintButton.X = socialContribution_Info1_ValuesButton.Right +Application.GetRealWidth(2);
#endif
        }
        /// <summary>
        /// 更新社会贡2献数据UI
        /// </summary>
        private void updateSocialContribution2()
        {
            socialContribution_Info2_ValuesButton.Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.co2.ToString());
#if __IOS__
            socialContribution_Info2_ValuesButton.Width = socialContribution_Info2_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
#else
            socialContribution_Info2_ValuesButton.Width = socialContribution_Info2_ValuesButton.GetTextWidth();
#endif
            if (socialContribution_Info2_ValuesButton.Width > Application.GetRealWidth(61))
            {
                socialContribution_Info2_ValuesButton.TextSize = 14;
#if __IOS__
                socialContribution_Info2_ValuesButton.Width = socialContribution_Info2_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
#else
            socialContribution_Info2_ValuesButton.Width = socialContribution_Info2_ValuesButton.GetTextWidth();
#endif
                socialContribution_Info2_UintButton.Y = socialContribution_Info2_UintButton.Y - Application.GetRealWidth(4);
            }
#if __IOS__
            socialContribution_Info2_UintButton.X = socialContribution_Info2_ValuesButton.Right;
#else
            socialContribution_Info2_UintButton.X = socialContribution_Info2_ValuesButton.Right +Application.GetRealWidth(2);
#endif
            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献数据UI
        /// </summary>
        private void updateSocialContribution3()
        {
            socialContribution_Info3_ValuesButton.Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.trees.ToString());
#if __IOS__
            socialContribution_Info3_ValuesButton.Width = socialContribution_Info3_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
#else
            socialContribution_Info3_ValuesButton.Width = socialContribution_Info3_ValuesButton.GetTextWidth();
#endif
            if (socialContribution_Info3_ValuesButton.Width > Application.GetRealWidth(61))
            if (function.attributes.Find((obj) => obj.key == WaterHeaterJinmao_AttrEnum.trees.ToString()) != null)
            {
                socialContribution_Info3_ValuesButton.TextSize = 14;
                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);
            socialContribution_Info3_ValuesButton.Width += Application.GetRealWidth(6);
            socialContribution_Info3_UintButton.X = socialContribution_Info3_ValuesButton.Right - Application.GetRealWidth(4);
#else
            socialContribution_Info3_ValuesButton.Width = socialContribution_Info3_ValuesButton.GetTextWidth();
                    socialContribution_Info3_UintButton.X = socialContribution_Info3_ValuesButton.Right + Application.GetRealWidth(2);
#endif
                }
                catch { }
            }
#if __IOS__
            socialContribution_Info3_UintButton.X = socialContribution_Info3_ValuesButton.Right;
#else
            socialContribution_Info3_UintButton.X = socialContribution_Info3_ValuesButton.Right +Application.GetRealWidth(2);
#endif
        }
        /// <summary>