wxr
2024-08-27 7b9c970fd38835624f07185cd2ce4659dbb93200
金茂代码备份
3个文件已添加
10个文件已修改
1167 ■■■■ 已修改文件
HDL-ON_iOS/HDL-ON_iOS.csproj 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Phone/FunctionIcon/Acst/WaterHeater/ModeFree_True.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Phone/FunctionIcon/Acst/WaterHeater/Mode_Economic.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Phone/FunctionIcon/Acst/WaterHeater/Mode_QuickHeat_On.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Common/UserInfo.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/Server/HttpServerRequest.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI1-Login/LoginPage.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI1-Login/LoginPageBLL.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/AddRoom/AddRoomPage.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/RoomEditPageBLL.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Acst/InverterJinmaoPage.cs 317 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Acst/WaterHeaterJinmaoPage.cs 612 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Acst/WetarHeaterJinmaoHistoryPage.cs 217 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/HDL-ON_iOS.csproj
@@ -1839,6 +1839,9 @@
      <BundleResource Include="Resources\Phone\FunctionIcon\Acst\Inverter\SocialContributionInfoBg_Coal.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Acst\Inverter\SocialContributionInfoIcon_Coal.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Acst\Inverter\EnergyStorageStatusBg.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Acst\WaterHeater\Mode_Economic.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Acst\WaterHeater\Mode_QuickHeat_On.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Acst\WaterHeater\ModeFree_True.png" />
    </ItemGroup>
    <ItemGroup>
      <ITunesArtwork Include="iTunesArtwork" />
HDL-ON_iOS/Resources/Phone/FunctionIcon/Acst/WaterHeater/ModeFree_True.png
HDL-ON_iOS/Resources/Phone/FunctionIcon/Acst/WaterHeater/Mode_Economic.png
HDL-ON_iOS/Resources/Phone/FunctionIcon/Acst/WaterHeater/Mode_QuickHeat_On.png
HDL_ON/Common/UserInfo.cs
@@ -174,7 +174,7 @@
        {
            get
            {
                return (DateTime.Now - LastTime).TotalDays < 7;
                return (DateTime.Now - LastTime).TotalDays < 90;
            }
        }
HDL_ON/DAL/Server/HttpServerRequest.cs
@@ -38,7 +38,7 @@
        /// <summary>
        /// 获取传感器历史数据
        /// </summary>
        /// <param name="qType">时间查询类型:hour=近24小时、week=近一周、month = 近一月 </param>
        /// <param name="qType">时间查询类型:hour=近24小时、day_hour =某日24小时、week=近一周、month = 近一月、custom_month=某年某月 y/M、custom_year=某年 y</param>
        /// <param name="deviceId">设备ID</param>
        /// <param name="deviceKey">功能查询类型:pm25</param>
        /// <param name="time">具体查询的日期,金茂温控器使用</param>
HDL_ON/UI/UI1-Login/LoginPage.cs
@@ -1218,11 +1218,11 @@
                        new FunctionAttributes(){ key = WaterHeaterJinmao_AttrEnum.flow.ToString(),curValue = "2",state = "2" },
                        new FunctionAttributes(){ key = WaterHeaterJinmao_AttrEnum.mode.ToString(),curValue = "economic",state = "economic" },
                        new FunctionAttributes(){ key = WaterHeaterJinmao_AttrEnum.mode_free.ToString(),curValue = "true",state = "true" },
                        new FunctionAttributes(){ key = WaterHeaterJinmao_AttrEnum.recycl_volume.ToString(),curValue = "5",state = "5" },
                        new FunctionAttributes(){ key = WaterHeaterJinmao_AttrEnum.recycl_volume.ToString(),curValue = "10",state = "10" },
                        new FunctionAttributes(){ key = WaterHeaterJinmao_AttrEnum.set_temp.ToString(),curValue = "25",state = "25" },
                        new FunctionAttributes(){ key = WaterHeaterJinmao_AttrEnum.temp.ToString(),curValue = "23",state = "23" },
                        new FunctionAttributes(){ key = WaterHeaterJinmao_AttrEnum.trees.ToString(),curValue = "8",state = "8" },
                        new FunctionAttributes(){ key = WaterHeaterJinmao_AttrEnum.volume.ToString(),curValue = "88",state = "88" },
                        new FunctionAttributes(){ key = WaterHeaterJinmao_AttrEnum.volume.ToString(),curValue = "100",state = "100" },
                    },
                });
HDL_ON/UI/UI1-Login/LoginPageBLL.cs
@@ -637,6 +637,7 @@
                            {
                                //跳转页面----
                                MainPage.GoUserPage(true);
                                this.RemoveFromParent();
                                return;
                            }
                        });
@@ -671,6 +672,7 @@
                                Common.ApiUtlis.Ins.DownloadDataComplete = false;
                                //跳转页面----
                                MainPage.GoUserPage(true);
                                this.RemoveFromParent();
                            });
                        }
                        else
HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/AddRoom/AddRoomPage.cs
@@ -616,7 +616,7 @@
                {
                    CropImageCallBack(imagePath);
                }, imageName, 16, 9);
                }, imageName, 16, 9,0);
                baseView.RemoveFromParent();
            };
@@ -637,7 +637,7 @@
                {
                    CropImageCallBack(imagePath);
                }, imageName, 16, 9);
                }, imageName, 16, 9,0);
                baseView.RemoveFromParent();
HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/RoomEditPageBLL.cs
@@ -224,7 +224,7 @@
                {
                    CropImageCallBack(imagePath);
                }, imageName, 16, 9);
                }, imageName, 16, 9,0);
                baseView.RemoveFromParent();
            };
@@ -245,7 +245,7 @@
                {
                    CropImageCallBack(imagePath);
                }, imageName, 16, 9);
                }, imageName, 16, 9,0);
                baseView.RemoveFromParent();
HDL_ON/UI/UI2/FuntionControlView/Acst/InverterJinmaoPage.cs
@@ -9,6 +9,55 @@
    {
        FrameLayout bodyView;
        Function function;
        /// <summary>
        /// 今日发电量数据按钮
        /// </summary>
        Button pvGenerate_TodayValuesButton;
        /// <summary>
        /// 今日发电量单位按钮
        /// </summary>
        Button pvGenerate_todayUintButton;
        /// <summary>
        /// 累计发电量数据按钮
        /// </summary>
        Button pvGenerate_TotalValuesButton;
        /// <summary>
        /// 今日用电量数据按钮
        /// </summary>
        Button pvLoad_TodayValuesButton;
        /// <summary>
        /// 累计用电量数据按钮
        /// </summary>
        Button pvLoad_TotalValuesButton;
        /// <summary>
        /// 光伏运行状态信息区域
        /// </summary>
        FrameLayout pvRunStatusInfoView;
        /// <summary>
        /// 光伏运行状态图标按钮
        /// </summary>
        Button pvRunStatus_IconButtonp;
        /// <summary>
        /// 光伏运行状态文本按钮
        /// </summary>
        Button pvRunStatus_TextButton;
        /// <summary>
        /// 光伏发电功能数据按钮
        /// </summary>
        Button pvPower_ValuesButton;
        /// <summary>
        /// 光伏今日发电量数据按钮
        /// </summary>
        Button pvGeneration_TodayValuesButton;
        /// <summary>
        /// 光伏本月发电量数据按钮
        /// </summary>
        Button pvGeneration_MonthValuesButton;
        /// <summary>
        /// 光伏本年发电量数据按钮
        /// </summary>
        Button pvGeneration_YearValuesButton;
        public InverterJinmaoPage()
        {
@@ -59,7 +108,7 @@
            };
            electricityQuantityView.AddChidren(electricityGenerationView);
            var electricityGeneration_IconButton = new Button()
            var pv_IconButton = new Button()
            {
                X = Application.GetRealWidth(14),
                Y = Application.GetRealWidth(16),
@@ -67,9 +116,9 @@
                Height = Application.GetRealWidth(12),
                UnSelectedImagePath = "FunctionIcon/Acst/Inverter/ElectricityGenerationIcon.png"
            };
            electricityQuantityView.AddChidren(electricityGeneration_IconButton);
            electricityQuantityView.AddChidren(pv_IconButton);
            var electricityGeneration_TextButton = new Button()
            var pv_TextButton = new Button()
            {
                X = Application.GetRealWidth(32),
                Y = Application.GetRealWidth(12),
@@ -80,9 +129,9 @@
                TextAlignment = TextAlignment.CenterLeft,
                TextColor = CSS_Color.MainBackgroundColor,
            };
            electricityGenerationView.AddChidren(electricityGeneration_TextButton);
            electricityGenerationView.AddChidren(pv_TextButton);
            var electricityGeneration_ValuesButton = new Button()
            pvGenerate_TodayValuesButton = new Button()
            {
                X = Application.GetRealWidth(12),
                Y = Application.GetRealWidth(34),
@@ -92,16 +141,16 @@
                TextSize = 18,
                IsBold = true,
            };
            electricityGenerationView.AddChidren(electricityGeneration_ValuesButton);
            electricityGenerationView.AddChidren(pvGenerate_TodayValuesButton);
#if __IOS__
            electricityGeneration_ValuesButton.TextAlignment = TextAlignment.TopLeft;
            electricityGeneration_ValuesButton.Width = electricityGeneration_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
            pvGenerate_TodayValuesButton.TextAlignment = TextAlignment.TopLeft;
            pvGenerate_TodayValuesButton.Width = pvGenerate_TodayValuesButton.GetTextWidth() + Application.GetRealWidth(8);
#else
            electricityGeneration_ValuesButton.TextAlignment = TextAlignment.BottomLeft;
            electricityGeneration_ValuesButton.Width = electricityGeneration_ValuesButton.GetTextWidth();
            pvGenerate_TodayValuesButton.TextAlignment = TextAlignment.BottomLeft;
            pvGenerate_TodayValuesButton.Width = pvGenerate_TodayValuesButton.GetTextWidth();
#endif
            var electricityGeneration_UintButton = new Button()
            pvGenerate_todayUintButton = new Button()
            {
                Y = Application.GetRealWidth(41),
                Height = Application.GetRealWidth(17),
@@ -110,10 +159,10 @@
                TextSize = 12,
                TextAlignment = TextAlignment.CenterLeft,
            };
            electricityGeneration_UintButton.X = electricityGeneration_ValuesButton.Right;
            electricityGenerationView.AddChidren(electricityGeneration_UintButton);
            pvGenerate_todayUintButton.X = pvGenerate_TodayValuesButton.Right;
            electricityGenerationView.AddChidren(pvGenerate_todayUintButton);
            var electricityGeneration_TotalValuesButton = new Button()
            pvGenerate_TotalValuesButton = new Button()
            {
                X = Application.GetRealWidth(12),
                Y = Application.GetRealWidth(69),
@@ -124,24 +173,23 @@
                TextAlignment = TextAlignment.CenterLeft,
                //IsBold = true,
            };
            electricityGenerationView.AddChidren(electricityGeneration_TotalValuesButton);
            electricityGenerationView.AddChidren(pvGenerate_TotalValuesButton);
            #endregion
            #region 用电量 Electricity consumption
            var electricityConsumptionView = new FrameLayout()
            var loadEleView = new FrameLayout()
            {
                X = Application.GetRealWidth(178-16),
                Width = Application.GetRealWidth(181),
                Height = Application.GetRealWidth(99),
                BackgroundImagePath = "FunctionIcon/Acst/Inverter/ElectricityConsumptionBg.png"
            };
            electricityQuantityView.AddChidren(electricityConsumptionView);
            electricityQuantityView.AddChidren(loadEleView);
            var electricityConsumption_IconButton = new Button()
            var loadEle_IconButton = new Button()
            {
                X = Application.GetRealWidth(155),
                Y = Application.GetRealWidth(16),
@@ -149,9 +197,9 @@
                Height = Application.GetRealWidth(12),
                UnSelectedImagePath = "FunctionIcon/Acst/Inverter/ElectricityConsumptionIcon.png"
            };
            electricityConsumptionView.AddChidren(electricityConsumption_IconButton);
            loadEleView.AddChidren(loadEle_IconButton);
            var electricityConsumption_TextButton = new Button()
            var loadEle_TodayTextButton = new Button()
            {
                //X = Application.GetRealWidth(181 - 32),
                Y = Application.GetRealWidth(12),
@@ -162,10 +210,10 @@
                TextAlignment = TextAlignment.CenterRight,
                TextColor = CSS_Color.MainBackgroundColor,
            };
            electricityConsumptionView.AddChidren(electricityConsumption_TextButton);
            loadEleView.AddChidren(loadEle_TodayTextButton);
            var electricityConsumption_UintButton = new Button()
            var loadEle_TodayUintButton = new Button()
            {
                Y = Application.GetRealWidth(41),
                Height = Application.GetRealWidth(17),
@@ -174,17 +222,17 @@
                TextSize = 12,
                TextAlignment = TextAlignment.CenterRight,
            };
            electricityConsumptionView.AddChidren(electricityConsumption_UintButton);
            loadEleView.AddChidren(loadEle_TodayUintButton);
#if __IOS__
            electricityConsumption_UintButton.Width = electricityConsumption_UintButton.GetTextWidth() + Application.GetRealWidth(8);
            loadEle_TodayUintButton.Width = loadEle_TodayUintButton.GetTextWidth() + Application.GetRealWidth(8);
#else
            electricityConsumption_UintButton.Width = electricityConsumption_UintButton.GetTextWidth();
            loadEle_TodayUintButton.Width = loadEle_TodayUintButton.GetTextWidth();
#endif
            electricityConsumption_UintButton.X = Application.GetRealWidth(181 - 12) - electricityConsumption_UintButton.Width;
            loadEle_TodayUintButton.X = Application.GetRealWidth(181 - 12) - loadEle_TodayUintButton.Width;
            var electricityConsumption_ValuesButton = new Button()
            pvLoad_TodayValuesButton = new Button()
            {
                X = Application.GetRealWidth(81 - 12) - electricityConsumption_UintButton.Width,
                X = Application.GetRealWidth(81 - 12) - loadEle_TodayUintButton.Width,
                Y = Application.GetRealWidth(34),
                Height = Application.GetRealWidth(53),
                Width = Application.GetRealWidth(100),
@@ -194,10 +242,9 @@
                TextAlignment = TextAlignment.TopRight,
                IsBold = true,
            };
            electricityConsumptionView.AddChidren(electricityConsumption_ValuesButton);
            loadEleView.AddChidren(pvLoad_TodayValuesButton);
            var electricityConsumption_TotalValuesButton = new Button()
            pvLoad_TotalValuesButton = new Button()
            {
                Y = Application.GetRealWidth(69),
                Height = Application.GetRealWidth(18),
@@ -208,13 +255,14 @@
                TextAlignment = TextAlignment.CenterRight,
                //IsBold = true,
            };
            electricityConsumptionView.AddChidren(electricityConsumption_TotalValuesButton);
            loadEleView.AddChidren(pvLoad_TotalValuesButton);
            #endregion
            var goHistroyButton = new Button();
            electricityQuantityView.AddChidren(goHistroyButton);
            goHistroyButton.MouseUpEventHandler = (sender, e) => {
            goHistroyButton.MouseUpEventHandler = (sender, e) =>
            {
                var page = new InverterJinmaoHistroyPage(function);
                MainPage.BasePageView.AddChidren(page);
                page.LoadPage();
@@ -227,7 +275,7 @@
                Height = Application.GetRealWidth(8),
            });
            #region 光伏运行状态
            var runStatus_TitleButton = new Button()
            var pvRunStatus_TitleButton = new Button()
            {
                X = Application.GetRealWidth(16),
                Height = Application.GetRealWidth(47),
@@ -237,10 +285,9 @@
                TextSize = 16,
                IsBold = true,
            };
            contentView.AddChidren(runStatus_TitleButton);
            contentView.AddChidren(pvRunStatus_TitleButton);
            #region 发电量 electricity generation
            var electricityGenerationStatusView = new FrameLayout()
            var pvEleGenerationInfoView = new FrameLayout()
            {
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(343),
@@ -250,9 +297,10 @@
                BorderColor = 0x00FFFFFF,
                BorderWidth = 0,
            };
            contentView.AddChidren(electricityGenerationStatusView);
            contentView.AddChidren(pvEleGenerationInfoView);
            var electricityGenerationStatus_InfoView = new FrameLayout()
            #region 光伏运行状态
            pvRunStatusInfoView = new FrameLayout()
            {
                X = 0 - Application.GetRealWidth(14),
                Y = Application.GetRealWidth(12),
@@ -263,9 +311,9 @@
                BorderColor = 0x00FFFFFF,
                BorderWidth = 0,
            };
            electricityGenerationStatusView.AddChidren(electricityGenerationStatus_InfoView);
            pvEleGenerationInfoView.AddChidren(pvRunStatusInfoView);
            var runStatus_Info_IconButton = new Button()
            pvRunStatus_IconButtonp = new Button()
            {
                X = Application.GetRealWidth(8 + 14),
                Gravity = Gravity.CenterVertical,
@@ -273,9 +321,9 @@
                Height = Application.GetRealWidth(12),
                UnSelectedImagePath = "FunctionIcon/Acst/Inverter/PvIconRun.png",
            };
            electricityGenerationStatus_InfoView.AddChidren(runStatus_Info_IconButton);
            pvRunStatusInfoView.AddChidren(pvRunStatus_IconButtonp);
            var runStatus_Info_TextButton = new Button()
            pvRunStatus_TextButton = new Button()
            {
                X = Application.GetRealWidth(8 + 14 + 4 + 12),
                TextAlignment = TextAlignment.CenterLeft,
@@ -283,7 +331,7 @@
                TextColor = 0xFF4484F4,
                Text = "运行",
            };
            electricityGenerationStatus_InfoView.AddChidren(runStatus_Info_TextButton);
            pvRunStatusInfoView.AddChidren(pvRunStatus_TextButton);
            var powerGenerationView = new FrameLayout()
            {
@@ -293,9 +341,12 @@
                Height = Application.GetRealWidth(151),
                BackgroundImagePath = "FunctionIcon/Acst/Inverter/PvBgRun.png"
            };
            electricityGenerationStatusView.AddChidren(powerGenerationView);
            pvEleGenerationInfoView.AddChidren(powerGenerationView);
            #endregion
            var powerGeneration_ValuesButton = new Button()
            #region 光伏发电量
            #region 光伏发电功率
            pvPower_ValuesButton = new Button()
            {
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealWidth(46),
@@ -307,7 +358,7 @@
                TextSize = 24,
                IsBold = true,
            };
            powerGenerationView.AddChidren(powerGeneration_ValuesButton);
            powerGenerationView.AddChidren(pvPower_ValuesButton);
            var powerGeneration_TextButton = new Button()
            {
@@ -321,9 +372,10 @@
                TextSize = 12,
            };
            powerGenerationView.AddChidren(powerGeneration_TextButton);
            #endregion
            var powerGeneration_TodayValuesButton = new Button()
            #region 光伏今日发电量
            pvGeneration_TodayValuesButton = new Button()
            {
                X = Application.GetRealWidth(16),
                Y = Application.GetRealWidth(191),
@@ -335,7 +387,7 @@
                TextSize = 18,
                IsBold = true,
            };
            electricityGenerationStatusView.AddChidren(powerGeneration_TodayValuesButton);
            pvEleGenerationInfoView.AddChidren(pvGeneration_TodayValuesButton);
            var powerGeneration_TodayTextButton = new Button()
            {
@@ -348,10 +400,11 @@
                TextColor = CSS_Color.TextualColor,
                TextSize = 12,
            };
            electricityGenerationStatusView.AddChidren(powerGeneration_TodayTextButton);
            pvEleGenerationInfoView.AddChidren(powerGeneration_TodayTextButton);
            #endregion
            var powerGeneration_MonthValuesButton = new Button()
            #region 光伏本月发电量
            pvGeneration_MonthValuesButton = new Button()
            {
                X = Application.GetRealWidth(16 + 105),
                Y = Application.GetRealWidth(191),
@@ -363,7 +416,7 @@
                TextSize = 18,
                IsBold = true,
            };
            electricityGenerationStatusView.AddChidren(powerGeneration_MonthValuesButton);
            pvEleGenerationInfoView.AddChidren(pvGeneration_MonthValuesButton);
            var powerGeneration_MonthTextButton = new Button()
            {
@@ -376,10 +429,11 @@
                TextColor = CSS_Color.TextualColor,
                TextSize = 12,
            };
            electricityGenerationStatusView.AddChidren(powerGeneration_MonthTextButton);
            pvEleGenerationInfoView.AddChidren(powerGeneration_MonthTextButton);
            #endregion
            var powerGeneration_YearValuesButton = new Button()
            #region 光伏本年发电量
            pvGeneration_YearValuesButton = new Button()
            {
                X = Application.GetRealWidth(16 + 212),
                Y = Application.GetRealWidth(191),
@@ -391,7 +445,7 @@
                TextSize = 18,
                IsBold = true,
            };
            electricityGenerationStatusView.AddChidren(powerGeneration_YearValuesButton);
            pvEleGenerationInfoView.AddChidren(pvGeneration_YearValuesButton);
            var powerGeneration_YearTextButton = new Button()
            {
@@ -399,12 +453,13 @@
                Y = Application.GetRealWidth(220),
                Width = Application.GetRealWidth(100),
                Height = Application.GetRealWidth(17),
                Text = "总发电量 (kwh)",
                Text = "累计发电量 (kwh)",
                TextAlignment = TextAlignment.Center,
                TextColor = CSS_Color.TextualColor,
                TextSize = 12,
            };
            electricityGenerationStatusView.AddChidren(powerGeneration_YearTextButton);
            pvEleGenerationInfoView.AddChidren(powerGeneration_YearTextButton);
            #endregion
            #endregion
            contentView.AddChidren(new Button()
@@ -539,15 +594,13 @@
                Y = Application.GetRealWidth(220),
                Width = Application.GetRealWidth(100),
                Height = Application.GetRealWidth(17),
                Text = "总用电量 (kwh)",
                Text = "累计用电量 (kwh)",
                TextAlignment = TextAlignment.Center,
                TextColor = CSS_Color.TextualColor,
                TextSize = 12,
            };
            electricityUsageStatusView.AddChidren(powerUsage_YearTextButton);
            #endregion
            #endregion
@@ -726,7 +779,6 @@
            #endregion
            #endregion
            contentView.AddChidren(new Button()
            {
@@ -966,6 +1018,141 @@
        }
        /// <summary>
        /// 更新界面数据
        /// </summary>
        /// <param name="temp"></param>
        public void UpdateStatus(Function temp)
        {
            if (bodyView == null)
            {
                return;
            }
            Application.RunOnMainThread(() =>
            {
                /// 更新今日发电量
                if (function.GetAttrState(InverterJinmao_AttrEnum.pv_electricity_today.ToString()) != temp.GetAttrState(InverterJinmao_AttrEnum.pv_electricity_today.ToString()))
                {
                    upatePvGenerateTodayValues();
                }
                /// 更新累计发电量
                if (function.GetAttrState(InverterJinmao_AttrEnum.pv_electricity.ToString()) != temp.GetAttrState(InverterJinmao_AttrEnum.pv_electricity.ToString()))
                {
                    upatePvGenerateTotalValues();
                }
                /// 更新今日用电量
                if (function.GetAttrState(InverterJinmao_AttrEnum.load_electricity_today.ToString()) != temp.GetAttrState(InverterJinmao_AttrEnum.load_electricity_today.ToString()))
                {
                    upatePvLoadTodayValues();
                }
                /// 更新累计用电量
                if (function.GetAttrState(InverterJinmao_AttrEnum.load_electricity.ToString()) != temp.GetAttrState(InverterJinmao_AttrEnum.load_electricity.ToString()))
                {
                    upatePvLoadTotalValues();
                }
                /// 更新光伏运行状态
                if (function.GetAttrState(InverterJinmao_AttrEnum.system_status.ToString()) != temp.GetAttrState(InverterJinmao_AttrEnum.system_status.ToString()))
                {
                    upatePvRunStatus();
                }
                /// 更新光伏发电功能
                if (function.GetAttrState(InverterJinmao_AttrEnum.pv_power.ToString()) != temp.GetAttrState(InverterJinmao_AttrEnum.pv_power.ToString()))
                {
                    upatePvPower();
                }
                /// 更新光伏本月发电量
                if (function.GetAttrState(InverterJinmao_AttrEnum.pv_electricity_month.ToString()) != temp.GetAttrState(InverterJinmao_AttrEnum.pv_electricity_month.ToString()))
                {
                    upatePvGenerateMonthValues();
                }
                /// 更新光伏本年发电量
                if (function.GetAttrState(InverterJinmao_AttrEnum.pv_electricity.ToString()) != temp.GetAttrState(InverterJinmao_AttrEnum.pv_electricity.ToString()))
                {
                    upatePvGenerateYearValues();
                }
            });
        }
        /// <summary>
        /// 更新今日发电量
        /// </summary>
        private void upatePvGenerateTodayValues()
        {
            pvGenerate_TodayValuesButton.Text = pvGeneration_TodayValuesButton.Text = function.GetAttrState(InverterJinmao_AttrEnum.pv_electricity_today.ToString());
            pvGenerate_todayUintButton.X = pvGenerate_TodayValuesButton.Right;
        }
        /// <summary>
        /// 更新光伏本月发电量
        /// </summary>
        private void upatePvGenerateMonthValues()
        {
            pvGeneration_MonthValuesButton.Text = function.GetAttrState(InverterJinmao_AttrEnum.pv_electricity_month.ToString());
        }
        /// <summary>
        /// 更新光伏本年发电量
        /// </summary>
        private void upatePvGenerateYearValues()
        {
            pvGeneration_YearValuesButton.Text = function.GetAttrState(InverterJinmao_AttrEnum.pv_electricity.ToString());
        }
        /// <summary>
        /// 更新累计发电量
        /// </summary>
        private void upatePvGenerateTotalValues()
        {
            pvGenerate_TodayValuesButton.Text = "累计发电量:" + function.GetAttrState(InverterJinmao_AttrEnum.pv_electricity.ToString());
        }
        /// <summary>
        /// 更新今日用电量
        /// </summary>
        private void upatePvLoadTodayValues()
        {
            pvLoad_TodayValuesButton.Text = function.GetAttrState(InverterJinmao_AttrEnum.load_electricity_today.ToString());
        }
        /// <summary>
        /// 更新累计用电量
        /// </summary>
        private void upatePvLoadTotalValues()
        {
            pvLoad_TotalValuesButton.Text = "累计用电量:" + function.GetAttrState(InverterJinmao_AttrEnum.load_electricity.ToString());
        }
        /// <summary>
        /// 更新光伏运行状态
        /// </summary>
        private void upatePvRunStatus()
        {
            switch (function.GetAttrState(InverterJinmao_AttrEnum.system_status.ToString()))
            {
                case "run":
                    pvRunStatusInfoView.BackgroundColor = 0x154484F4;
                    pvRunStatus_IconButtonp.UnSelectedImagePath = "FunctionIcon/Acst/Inverter/PvIconRun.png";
                    pvRunStatus_TextButton.Text = "运行";
                    pvRunStatus_TextButton.TextColor = 0xFF4484F4;
                    break;
                case "fault":
                    pvRunStatusInfoView.BackgroundColor = 0x15FF4747;
                    pvRunStatus_IconButtonp.UnSelectedImagePath = "FunctionIcon/Acst/Inverter/PvIconFault.png";
                    pvRunStatus_TextButton.Text = "故障";
                    pvRunStatus_TextButton.TextColor = 0xFFFF4747;
                    break;
                case "standby":
                    pvRunStatusInfoView.BackgroundColor = 0x15798394;
                    pvRunStatus_IconButtonp.UnSelectedImagePath = "FunctionIcon/Acst/Inverter/PvIconStandby.png";
                    pvRunStatus_TextButton.Text = "待机";
                    pvRunStatus_TextButton.TextColor = 0xFF798394;
                    break;
            }
        }
        /// <summary>
        /// 更新光伏发电功率
        /// </summary>
        private void upatePvPower()
        {
            pvPower_ValuesButton.Text = function.GetAttrState(InverterJinmao_AttrEnum.pv_power.ToString());
        }
    }
}
HDL_ON/UI/UI2/FuntionControlView/Acst/WaterHeaterJinmaoPage.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using com.hdl.on;
using HDL_ON.DriverLayer;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
@@ -14,10 +15,142 @@
        FrameLayout bottomView;
        Function function;
        /// <summary>
        /// 热水模式状态区域
        /// </summary>
        FrameLayout modeFreeView;
        /// <summary>
        /// 热水模式状态图标
        /// </summary>
        Button modeFree_IconButton;
        /// <summary>
        /// 热水模式状态文本
        /// </summary>
        Button modeFree_TextButton;
        /// <summary>
        /// 热水温度值
        /// </summary>
        Button btnTempValues;
        /// <summary>
        /// 热水温度单位
        /// </summary>
        Button btnTempValuesUint;
        /// <summary>
        /// 节能模式控制按钮
        /// </summary>
        Button btnControlModeEconomic;
        /// <summary>
        /// 节能模式控制区域
        /// </summary>
        FrameLayout mode_EconomicView;
        /// <summary>
        /// 节能模式图标按钮
        /// </summary>
        Button mode_Economic_IconButton;
        /// <summary>
        /// 节能模式文本按钮
        /// </summary>
        Button mode_Economic_TextButton;
        /// <summary>
        /// 速热模式控制按钮
        /// </summary>
        Button btnControlModeQuickHeat;
        /// <summary>
        /// 速热模式控制区域
        /// </summary>
        FrameLayout mode_QuickHeatView;
        /// <summary>
        /// 速热模式图标按钮
        /// </summary>
        Button mode_QuickHeat_IconButton;
        /// <summary>
        /// 速热模式文本按钮
        /// </summary>
        Button mode_QuickHeat_TextButton;
        /// <summary>
        /// 设置温度文本按钮
        /// </summary>
        Button setTemp_ValuesButton;
        /// <summary>
        /// 设置温度单位按钮
        /// </summary>
        Button setTemp_UintButton;
        /// <summary>
        /// 设置温度控制控件
        /// </summary>
        DiyImageSeekBar setTemp_Bar;
        /// <summary>
        /// 热水流量数据按钮
        /// </summary>
        Button flow_ValuesButton;
        /// <summary>
        /// 热水总流量数据按钮
        /// </summary>
        Button flow_VolumeButton;
        /// <summary>
        /// 热水流量比控件
        /// </summary>
        DiyImageSeekBar flow_ValuesBar;
        /// <summary>
        /// 热回收百分比数据按钮
        /// </summary>
        Button flow_HeatRecoveryProgressButton;
        /// <summary>
        /// 热回收数据按钮
        /// </summary>
        Button flow_HeatRecoverytValuesButton;
        /// <summary>
        /// 电直驱百分比数据按钮
        /// </summary>
        Button flow_ElectricDriveProgressButton;
        /// <summary>
        /// 电直驱数据按钮
        /// </summary>
        Button flow_ElectricDriveValuesButton;
        string volumeString = string.Empty;
        string recyclVolumeString = string.Empty;
        double volume = 0;
        double recyclVolume = 0;
        int recyclVolumePercent = 0;
        /// <summary>
        /// 热回收节电量数据按钮
        /// </summary>
        Button socialContribution_Info1_ValuesButton;
        /// <summary>
        /// 热回收节电量单位按钮
        /// </summary>
        Button socialContribution_Info1_UintButton;
        /// <summary>
        /// CO2减排量数据按钮
        /// </summary>
        Button socialContribution_Info2_ValuesButton;
        /// <summary>
        /// CO2减排量单位按钮
        /// </summary>
        Button socialContribution_Info2_UintButton;
        /// <summary>
        /// 等效植树量数据按钮
        /// </summary>
        Button socialContribution_Info3_UintButton;
        /// <summary>
        /// 等效植树量单位按钮
        /// </summary>
        Button socialContribution_Info3_ValuesButton;
        /// <summary>
        /// 开关按钮
        /// </summary>
        Button btnPowerControl;
        public WaterHeaterJinmaoPage(Function deviceFunction)
        {
            bodyView = this;
            function = deviceFunction;
            this.BackgroundColor = CSS_Color.BackgroundColor;
        }
        public void LoadPage(Action action)
@@ -25,7 +158,6 @@
            var topView = new TopViewDiv(bodyView, function.name);
            topView.LoadTopView_FunctionTop(function, action);
            contentView = new VerticalScrolViewLayout()
            {
@@ -47,6 +179,7 @@
            initContentView();
            initBottomView();
            initControlEvent();
            Control.Ins.SendReadCommand(function);
        }
        /// <summary>
@@ -69,20 +202,20 @@
            };
            contentView.AddChidren(infoView);
            var infoView_ModeFreeView = new FrameLayout()
            modeFreeView = new FrameLayout()
            {
                X = 0 - Application.GetRealWidth(14),
                Y = Application.GetRealWidth(12),
                Width = Application.GetRealWidth(68 + 14),
                Height = Application.GetRealWidth(28),
                BackgroundColor = 0x15FC9C04,
                Radius = (uint)Application.GetRealHeight(14),
                Radius = (uint)Application.GetRealWidth(14),
                BorderColor = 0x00FFFFFF,
                BorderWidth = 0,
            };
            infoView.AddChidren(infoView_ModeFreeView);
            infoView.AddChidren(modeFreeView);
            var infoView_ModeFree_IconButton = new Button()
            modeFree_IconButton = new Button()
            {
                X = Application.GetRealWidth(8 + 14),
                Gravity = Gravity.CenterVertical,
@@ -90,17 +223,17 @@
                Height = Application.GetRealWidth(12),
                UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/ModeFree_False.png",
            };
            infoView_ModeFreeView.AddChidren(infoView_ModeFree_IconButton);
            modeFreeView.AddChidren(modeFree_IconButton);
            var infoView_ModeFree_TextButton = new Button()
            modeFree_TextButton = new Button()
            {
                X = Application.GetRealWidth(8 + 14 + 8 + 12),
                X = Application.GetRealWidth(8 + 14 + 4 + 12),
                TextAlignment = TextAlignment.CenterLeft,
                TextSize = 14,
                TextColor = 0xFFFC9C04,
                Text = "用电",
            };
            infoView_ModeFreeView.AddChidren(infoView_ModeFree_TextButton);
            modeFreeView.AddChidren(modeFree_TextButton);
            var infoView_Temp_View = new FrameLayout()
            {
@@ -111,7 +244,7 @@
            };
            infoView.AddChidren(infoView_Temp_View);
            var btnTempValues = new Button()
            btnTempValues = new Button()
            {
                Y = Application.GetRealWidth(34),
                Gravity = Gravity.CenterVertical,
@@ -129,7 +262,8 @@
#endif
            btnTempValues.Gravity = Gravity.CenterHorizontal;
            infoView_Temp_View.AddChidren(btnTempValues);
            var btnTempValuesUint = new Button()
            btnTempValuesUint = new Button()
            {
                X = btnTempValues.Right - Application.GetRealWidth(4),
                Y = Application.GetRealWidth(40),
@@ -178,8 +312,8 @@
            {
                Width = Application.GetRealWidth(16),
            });
            var mode_EconomicView = new FrameLayout()
            //节能
            mode_EconomicView = new FrameLayout()
            {
                Width = Application.GetRealWidth(165),
                Height = Application.GetRealWidth(52),
@@ -191,7 +325,7 @@
            };
            modeView.AddChidren(mode_EconomicView);
            var mode_Economic_IconButton = new Button()
            mode_Economic_IconButton = new Button()
            {
                Width = Application.GetRealWidth(20),
                Height = Application.GetRealWidth(20),
@@ -201,7 +335,7 @@
            };
            mode_EconomicView.AddChidren(mode_Economic_IconButton);
            var mode_Economic_TextButton = new Button()
            mode_Economic_TextButton = new Button()
            {
                Width = Application.GetRealWidth(80),
                X = Application.GetRealWidth(73 + 8),
@@ -217,8 +351,12 @@
                Width = Application.GetRealWidth(13),
            });
            btnControlModeEconomic = new Button();
            mode_EconomicView.AddChidren(btnControlModeEconomic);
            //速热
            var mode_QuickHeatView = new FrameLayout()
            mode_QuickHeatView = new FrameLayout()
            {
                Width = Application.GetRealWidth(165),
                Height = Application.GetRealWidth(52),
@@ -230,7 +368,7 @@
            };
            modeView.AddChidren(mode_QuickHeatView);
            var mode_QuickHeat_IconButton = new Button()
            mode_QuickHeat_IconButton = new Button()
            {
                Width = Application.GetRealWidth(20),
                Height = Application.GetRealWidth(20),
@@ -240,7 +378,8 @@
            };
            mode_QuickHeatView.AddChidren(mode_QuickHeat_IconButton);
            var mode_QuickHeat_TextButton = new Button()
            mode_QuickHeat_TextButton = new Button()
            {
                Width = Application.GetRealWidth(80),
                X = Application.GetRealWidth(81),
@@ -250,6 +389,10 @@
                Text = "速热"
            };
            mode_QuickHeatView.AddChidren(mode_QuickHeat_TextButton);
            btnControlModeQuickHeat = new Button();
            mode_QuickHeatView.AddChidren(btnControlModeQuickHeat);
            #endregion
            #region 设置温度
@@ -279,7 +422,7 @@
            };
            setTempView.AddChidren(setTemp_TextButtont);
            var setTemp_Temp_ValuesTextButton = new Button()
            setTemp_ValuesButton = new Button()
            {
                Y = Application.GetRealWidth(34),
                Gravity = Gravity.CenterVertical,
@@ -291,15 +434,16 @@
                Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString(), "---"),
            };
#if __IOS__
            setTemp_Temp_ValuesTextButton.Width = setTemp_Temp_ValuesTextButton.GetTextWidth() + Application.GetRealWidth(8);
            setTemp_ValuesButton.Width = setTemp_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
#else
            setTemp_Temp_ValuesTextButton.Width = setTemp_Temp_ValuesTextButton.GetTextWidth();
            setTemp_ValuesButton.Width = setTemp_ValuesButton.GetTextWidth();
#endif
            setTemp_Temp_ValuesTextButton.Gravity = Gravity.CenterHorizontal;
            setTempView.AddChidren(setTemp_Temp_ValuesTextButton);
            var setTemp_Temp_ValuesUintButton = new Button()
            setTemp_ValuesButton.Gravity = Gravity.CenterHorizontal;
            setTempView.AddChidren(setTemp_ValuesButton);
            setTemp_UintButton = new Button()
            {
                X = setTemp_Temp_ValuesTextButton.Right - Application.GetRealWidth(4),
                X = setTemp_ValuesButton.Right - Application.GetRealWidth(4),
                Y = Application.GetRealWidth(40),
                Height = Application.GetRealWidth(66),
                TextAlignment = TextAlignment.TopLeft,
@@ -308,7 +452,7 @@
                TextColor = CSS_Color.FirstLevelTitleColor,
                Text = "°C"
            };
            setTempView.AddChidren(setTemp_Temp_ValuesUintButton);
            setTempView.AddChidren(setTemp_UintButton);
            int setTempValue = 0;
@@ -316,7 +460,7 @@
            double dd = 0;
            double.TryParse(function.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString(), "--"), out dd);
            setTempValue = Convert.ToInt32(dd);
            var setTemp_Temp_Bar = new DiyImageSeekBar()
            setTemp_Bar = new DiyImageSeekBar()
            {
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealHeight(126 - 72),
@@ -332,7 +476,7 @@
                IsProgressTextShow = false,
                ProgressChangeDelayTime = 0,
            };
            setTempView.AddChidren(setTemp_Temp_Bar);
            setTempView.AddChidren(setTemp_Bar);
            var setTemp_Temp_MinValuesTextButton = new Button()
            {
@@ -379,7 +523,7 @@
            };
            contentView.AddChidren(flowView);
            var flow_ValuesButton = new Button()
            flow_ValuesButton = new Button()
            {
                X = Application.GetRealWidth(16),
                Y = Application.GetRealWidth(14),
@@ -388,7 +532,7 @@
                TextAlignment = TextAlignment.CenterLeft,
                TextSize = 16,
                TextColor = CSS_Color.FirstLevelTitleColor,
                Text = "热水流量:0.3L/min",
                Text = "热水流量:" + function.GetAttrState(WaterHeaterJinmao_AttrEnum.flow.ToString()) + "L/min",
                IsBold = true,
            };
            flowView.AddChidren(flow_ValuesButton);
@@ -406,20 +550,30 @@
            };
            flowView.AddChidren(flow_HotWaterVolumeTextButton);
            var flow_HotWaterVolumeValuesButton = new Button()
            string volumeString = function.GetAttrState(WaterHeaterJinmao_AttrEnum.volume.ToString());
            string recyclVolumeString = function.GetAttrState(WaterHeaterJinmao_AttrEnum.recycl_volume.ToString());
            double volume = 0;
            double.TryParse(volumeString, out volume);
            double recyclVolume = 0;
            double.TryParse(recyclVolumeString, out recyclVolume);
            int recyclVolumePercent = (int)(recyclVolume / volume * 100);
            flow_VolumeButton = new Button()
            {
                X = Application.GetRealWidth(343 - 116),
                Y = Application.GetRealWidth(55),
                Width = Application.GetRealWidth(100),
                Height = Application.GetRealWidth(26),
                Text = "24t",
                Text = volumeString + "t",
                TextAlignment = TextAlignment.CenterRight,
                TextColor = CSS_Color.FirstLevelTitleColor,
                TextSize = CSS_FontSize.TextFontSize,
            };
            flowView.AddChidren(flow_HotWaterVolumeValuesButton);
            flowView.AddChidren(flow_VolumeButton);
            var flow_ValuesBar = new DiyImageSeekBar()
            flow_ValuesBar = new DiyImageSeekBar()
            {
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealWidth(79),
@@ -430,7 +584,7 @@
                ProgressBarColor = 0xFF42D163,
                SeekBarBackgroundColor = 0xFFFFB848,
                MaxValue = 100,
                Progress = 80,
                Progress = recyclVolumePercent,
                SeekBarPadding = Application.GetRealWidth(0),
                IsProgressTextShow = false,
                ProgressChangeDelayTime = 0,
@@ -452,7 +606,7 @@
            };
            flowView.AddChidren(flow_HeatRecoveryCapacitytTextButton);
            var flow_HeatRecoveryCapacitytProgressButton = new Button()
            flow_HeatRecoveryProgressButton = new Button()
            {
                X = Application.GetRealWidth(16),
                Y = Application.GetRealWidth(125),
@@ -461,11 +615,11 @@
                TextAlignment = TextAlignment.CenterLeft,
                TextSize = 14,
                TextColor = 0xFF00C22D,
                Text = "80%"
                Text = recyclVolumePercent + "%"
            };
            flowView.AddChidren(flow_HeatRecoveryCapacitytProgressButton);
            flowView.AddChidren(flow_HeatRecoveryProgressButton);
            var flow_HeatRecoveryCapacitytValuesButton = new Button()
            flow_HeatRecoverytValuesButton = new Button()
            {
                X = Application.GetRealWidth(16),
                Y = Application.GetRealWidth(148),
@@ -474,13 +628,13 @@
                TextAlignment = TextAlignment.CenterLeft,
                TextSize = 14,
                TextColor = CSS_Color.FirstLevelTitleColor,
                Text = "19.2t"
                Text = recyclVolume + "t"
            };
            flowView.AddChidren(flow_HeatRecoveryCapacitytValuesButton);
            flowView.AddChidren(flow_HeatRecoverytValuesButton);
            var flow_ElectricDirectDriveQuantityTextButton = new Button()
            var flow_ElectricDriveTextButton = new Button()
            {
                X = Application.GetRealWidth(343 - 116),
                Y = Application.GetRealWidth(103),
@@ -491,9 +645,9 @@
                TextColor = 0xFFFC9C04,
                Text = "电直驱量"
            };
            flowView.AddChidren(flow_ElectricDirectDriveQuantityTextButton);
            flowView.AddChidren(flow_ElectricDriveTextButton);
            var flow_ElectricDirectDriveQuantityProgressButton = new Button()
            flow_ElectricDriveProgressButton = new Button()
            {
                X = Application.GetRealWidth(343 - 116),
                Y = Application.GetRealWidth(125),
@@ -502,11 +656,11 @@
                TextAlignment = TextAlignment.CenterRight,
                TextSize = 14,
                TextColor = 0xFFFC9C04,
                Text = "20%"
                Text = (100 - recyclVolumePercent) + "%"
            };
            flowView.AddChidren(flow_ElectricDirectDriveQuantityProgressButton);
            flowView.AddChidren(flow_ElectricDriveProgressButton);
            var flow_ElectricDirectDriveQuantityValuesButton = new Button()
            flow_ElectricDriveValuesButton = new Button()
            {
                X = Application.GetRealWidth(343 - 116),
                Y = Application.GetRealWidth(148),
@@ -515,9 +669,9 @@
                TextAlignment = TextAlignment.CenterRight,
                TextSize = 14,
                TextColor = CSS_Color.FirstLevelTitleColor,
                Text = "4.8t"
                Text = (volume - recyclVolume) + "t"
            };
            flowView.AddChidren(flow_ElectricDirectDriveQuantityValuesButton);
            flowView.AddChidren(flow_ElectricDriveValuesButton);
            #endregion
@@ -567,13 +721,13 @@
            };
            socialContribution_InfoView_1.AddChidren(socialContribution_Info1_IconButton);
            var socialContribution_Info1_ValuesButton = new Button()
            socialContribution_Info1_ValuesButton = new Button()
            {
                X = Application.GetRealWidth(12),
                Y = Application.GetRealWidth(68),
                Width = Application.GetRealWidth(36),
                Height = Application.GetRealWidth(25),
                Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.recycl_volume.ToString()),
                Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.energy_electricity.ToString()),
                TextSize = 18,
                TextColor = CSS_Color.FirstLevelTitleColor,
                TextAlignment = TextAlignment.BottomLeft,
@@ -586,7 +740,7 @@
#endif
            socialContribution_InfoView_1.AddChidren(socialContribution_Info1_ValuesButton);
            var socialContribution_Info1_UintButton = new Button()
            socialContribution_Info1_UintButton = new Button()
            {
                X = socialContribution_Info1_ValuesButton.Right - Application.GetRealWidth(4),
                Y = Application.GetRealWidth(68),
@@ -637,7 +791,7 @@
            };
            socialContribution_InfoView_2.AddChidren(socialContribution_Info2_IconButton);
            var socialContribution_Info2_ValuesButton = new Button()
            socialContribution_Info2_ValuesButton = new Button()
            {
                X = Application.GetRealWidth(12),
                Y = Application.GetRealWidth(68),
@@ -656,7 +810,8 @@
#endif
            socialContribution_InfoView_2.AddChidren(socialContribution_Info2_ValuesButton);
            var socialContribution_Info2_UintButton = new Button()
            socialContribution_Info2_UintButton = new Button()
            {
                X = socialContribution_Info2_ValuesButton.Right - Application.GetRealWidth(4),
                Y = Application.GetRealWidth(68),
@@ -707,7 +862,7 @@
            };
            socialContribution_InfoView_3.AddChidren(socialContribution_Info3_IconButton);
            var socialContribution_Info3_ValuesButton = new Button()
            socialContribution_Info3_ValuesButton = new Button()
            {
                X = Application.GetRealWidth(12),
                Y = Application.GetRealWidth(68),
@@ -726,7 +881,7 @@
#endif
            socialContribution_InfoView_3.AddChidren(socialContribution_Info3_ValuesButton);
            var socialContribution_Info3_UintButton = new Button()
            socialContribution_Info3_UintButton = new Button()
            {
                X = socialContribution_Info3_ValuesButton.Right - Application.GetRealWidth(4),
                Y = Application.GetRealWidth(68),
@@ -759,10 +914,12 @@
        }
        /// <summary>
        /// 加载底部区域
        /// </summary>
        private void initBottomView()
        {
            var btnPowerControl = new Button()
            btnPowerControl = new Button()
            {
                Width = Application.GetRealWidth(50),
                Height = Application.GetRealWidth(50),
@@ -774,10 +931,12 @@
            };
            bottomView.AddChidren(btnPowerControl);
            btnPowerControl.MouseUpEventHandler = (sender, e) => {
            btnPowerControl.MouseUpEventHandler = (sender, e) =>
            {
                btnPowerControl.IsSelected = !btnPowerControl.IsSelected;
                new System.Threading.Thread(() => {
                new System.Threading.Thread(() =>
                {
                    Dictionary<string, string> d = new Dictionary<string, string>();
                    d.Add(FunctionAttributeKey.OnOff, btnPowerControl.IsSelected ? "on" : "off");
                    Control.Ins.SendWriteCommand(function, d);
@@ -787,10 +946,343 @@
        }
        /// <summary>
        /// 初始化控制事件
        /// </summary>
        private void initControlEvent()
        {
            //节能模式控制
            btnControlModeEconomic.MouseUpEventHandler = (sender, e) =>
            {
                if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString()) != WaterHeaterJinmao_Attr_ModeEnum.economic.ToString())
                {
                    new System.Threading.Thread(() =>
                    {
                        var dic = new Dictionary<string, string>();
                        dic.Add(WaterHeaterJinmao_AttrEnum.mode.ToString(), WaterHeaterJinmao_Attr_ModeEnum.economic.ToString());
                        Control.Ins.SendWriteCommand(function, dic);
                        function.SetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString(), WaterHeaterJinmao_Attr_ModeEnum.economic.ToString());
                        Application.RunOnMainThread(() =>
                        {
                            updateModeUI();
                        });
                    })
                    { IsBackground = true }.Start();
                }
            };
            //速热模式控制
            btnControlModeQuickHeat.MouseUpEventHandler = (sender, e) =>
            {
                if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString()) != WaterHeaterJinmao_Attr_ModeEnum.quick_heat.ToString())
                {
                    new System.Threading.Thread(() =>
                    {
                        var dic = new Dictionary<string, string>();
                        dic.Add(WaterHeaterJinmao_AttrEnum.mode.ToString(), WaterHeaterJinmao_Attr_ModeEnum.quick_heat.ToString());
                        Control.Ins.SendWriteCommand(function, dic);
                        function.SetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString(), WaterHeaterJinmao_Attr_ModeEnum.quick_heat.ToString());
                        Application.RunOnMainThread(() =>
                        {
                            updateModeUI();
                        });
                    })
                    { IsBackground = true }.Start();
                }
            };
            //设置温度调节
            setTemp_Bar.OnStopTrackingTouchEvent = (sender, e) =>
            {
                new System.Threading.Thread(() =>
                {
                    var dic = new Dictionary<string, string>();
                    dic.Add(WaterHeaterJinmao_AttrEnum.set_temp.ToString(), setTemp_Bar.Progress.ToString());
                    Control.Ins.SendWriteCommand(function, dic);
                    function.SetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString(), setTemp_Bar.Progress.ToString());
                })
                { IsBackground = true }.Start();
            };
            setTemp_Bar.OnProgressChangedEvent = (sender, e) => {
                setTemp_ValuesButton.Text = e.ToString();
            };
            //开关控制
            btnPowerControl.MouseUpEventHandler = (sender, e) =>
            {
                btnPowerControl.IsSelected = !btnPowerControl.IsSelected;
                function.SetAttrState(FunctionAttributeKey.OnOff.ToString(), btnPowerControl.IsSelected ? "on" : "off");
                new System.Threading.Thread(() =>
                {
                    var dic = new Dictionary<string, string>();
                    dic.Add(FunctionAttributeKey.OnOff.ToString(), function.GetAttrState(FunctionAttributeKey.OnOff.ToString()));
                    Control.Ins.SendWriteCommand(function, dic);
                })
                { IsBackground = true }.Start();
            };
        }
        /// <summary>
        /// 更新界面状态
        /// </summary>
        /// <param name="temp"></param>
        public void UpdateStatus(Function temp)
        {
            if (bodyView == null)
            {
                return;
            }
            //免费热水
            if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.mode_free.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.mode_free.ToString()))
            {
                function.SetAttrState(WaterHeaterJinmao_AttrEnum.mode_free.ToString(), temp.GetAttrState(WaterHeaterJinmao_AttrEnum.mode_free.ToString()));
                Application.RunOnMainThread(() =>
                {
                    updateFreeMode();
                });
            }
            //热水温度
            if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.temp.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.temp.ToString()))
            {
                function.SetAttrState(WaterHeaterJinmao_AttrEnum.temp.ToString(), temp.GetAttrState(WaterHeaterJinmao_AttrEnum.temp.ToString()));
                Application.RunOnMainThread(() =>
                {
                    updateTemp();
                });
            }
            //热水器模式
            if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString()))
            {
                function.SetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString(), temp.GetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString()));
                Application.RunOnMainThread(() =>
                {
                    updateModeUI();
                });
            }
            //热水器设置温度
            if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString()))
            {
                function.SetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString(), temp.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString()));
                Application.RunOnMainThread(() =>
                {
                    updateSetTemp();
                });
            }
            //热水流量
            if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.flow.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.flow.ToString()))
            {
                Application.RunOnMainThread(() =>
                {
                    updateFlow();
                });
            }
            //热水总量
            if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.volume.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.volume.ToString()) ||
                function.GetAttrState(WaterHeaterJinmao_AttrEnum.recycl_volume.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.recycl_volume.ToString()))
            {
                Application.RunOnMainThread(() =>
                {
                    updateVolume();
                });
            }
            //社会贡献-节电量
            if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.energy_electricity.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.energy_electricity.ToString()))
            {
                updateSocialContribution1();
            }
            //社会贡献-co2
            if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.co2.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.co2.ToString()))
            {
                updateSocialContribution2();
            }
            //社会贡献-植树
            if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.trees.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.trees.ToString()))
            {
                updateSocialContribution3();
            }
            //开关按钮
            if (function.GetAttrState(FunctionAttributeKey.OnOff.ToString()) != temp.GetAttrState(FunctionAttributeKey.OnOff.ToString()))
            {
                updatePowerButton();
            }
        }
        /// <summary>
        /// 更新免费热水模式状态UI
        /// </summary>
        private void updateFreeMode()
        {
            if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.mode_free.ToString()) != "true")
            {
                modeFreeView.BackgroundColor = 0x1500C22D;
                modeFreeView.Width = Width = Application.GetRealWidth(82 + 14);
                modeFree_IconButton.UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/ModeFree_True.png";
                modeFree_TextButton.Text = "热回收";
                modeFree_TextButton.TextColor = 0xFF00C22D;
            }
            else
            {
                modeFreeView.BackgroundColor = 0x15FC9C04;
                modeFreeView.Width = Width = Application.GetRealWidth(68 + 14);
                modeFree_IconButton.UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/ModeFree_False.png";
                modeFree_TextButton.Text = "用电";
                modeFree_TextButton.TextColor = 0xFFFC9C04;
            }
        }
        /// <summary>
        /// 更新热水温度UI
        /// </summary>
        private void updateTemp()
        {
            btnTempValues.Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.temp.ToString(), "---");
#if __IOS__
            btnTempValues.Width = btnTempValues.GetTextWidth() + Application.GetRealWidth(8);
#else
            btnTempValues.Width = btnTempValues.GetTextWidth();
#endif
            btnTempValues.Gravity = Gravity.CenterHorizontal;
            btnTempValuesUint.X = btnTempValues.Right - Application.GetRealWidth(4);
        }
        /// <summary>
        /// 更新模式UI
        /// </summary>
        private void updateModeUI()
        {
            if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString()) == WaterHeaterJinmao_Attr_ModeEnum.economic.ToString())
            {
                //节能
                mode_EconomicView.BorderColor = 0xFF00C22D;
                mode_EconomicView.BackgroundColor = 0xFFEBFAEE;
                mode_Economic_IconButton.UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/Mode_Economic_On.png";
                mode_Economic_TextButton.TextColor = CSS_Color.FirstLevelTitleColor;
                //速热
                mode_QuickHeatView.BorderColor = 0x0000C22D;
                mode_QuickHeatView.BorderWidth = (uint)Application.GetRealWidth(1);
                mode_QuickHeatView.BackgroundColor = CSS_Color.MainBackgroundColor;
                mode_QuickHeat_IconButton.UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/Mode_QuickHeat.png";
                mode_QuickHeat_TextButton.TextColor = CSS_Color.TextualColor;
            }
            else if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString()) == WaterHeaterJinmao_Attr_ModeEnum.quick_heat.ToString())
            {
                //节能
                mode_EconomicView.BorderColor = 0x0000C22D;
                mode_EconomicView.BackgroundColor = CSS_Color.MainBackgroundColor;
                mode_Economic_IconButton.UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/Mode_Economic.png";
                mode_Economic_TextButton.TextColor = CSS_Color.TextualColor;
                //速热
                mode_QuickHeatView.BorderColor = 0xFFFC9C04;
                mode_QuickHeatView.BackgroundColor = 0xFFFFF7EB;
                mode_QuickHeat_IconButton.UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/Mode_QuickHeat_On.png";
                mode_QuickHeat_TextButton.TextColor = CSS_Color.FirstLevelTitleColor;
            }
        }
        /// <summary>
        /// 更新热水器设置温度UI
        /// </summary>
        private void updateSetTemp()
        {
            setTemp_ValuesButton.Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString(), "---");
#if __IOS__
            setTemp_ValuesButton.Width = setTemp_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
#else
            setTemp_ValuesButton.Width = setTemp_ValuesButton.GetTextWidth();
#endif
            setTemp_ValuesButton.Gravity = Gravity.CenterHorizontal;
            setTemp_UintButton.X = setTemp_ValuesButton.Right - Application.GetRealWidth(4);
            double dd = 0;
            double.TryParse(function.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString(), "0"), out dd);
            setTemp_Bar.Progress = Convert.ToInt32(dd) - 35;
        }
        /// <summary>
        /// 更新热水流量数据UI
        /// </summary>
        private void updateFlow()
        {
            flow_ValuesButton.Text = "热水流量:" + function.GetAttrState(WaterHeaterJinmao_AttrEnum.flow.ToString()) + "L/min";
        }
        /// <summary>
        /// 更新热水总量数据UI
        /// </summary>
        private void updateVolume()
        {
            volumeString = function.GetAttrState(WaterHeaterJinmao_AttrEnum.volume.ToString());
            recyclVolumeString = function.GetAttrState(WaterHeaterJinmao_AttrEnum.recycl_volume.ToString());
            volume = 0;
            double.TryParse(volumeString, out volume);
            double.TryParse(recyclVolumeString, out recyclVolume);
            recyclVolumePercent = (int)(recyclVolume / volume * 100);
            flow_VolumeButton.Text = volumeString + "t";
            flow_ValuesBar.Progress = recyclVolumePercent;
            flow_HeatRecoveryProgressButton.Text = recyclVolumePercent + "%";
            flow_HeatRecoverytValuesButton.Text = recyclVolume + "t";
            flow_ElectricDriveProgressButton.Text = (100 - recyclVolumePercent) + "%";
            flow_ElectricDriveValuesButton.Text = (volume - recyclVolume) + "t";
        }
        /// <summary>
        /// 更新社会贡献1数据UI
        /// </summary>
        private void updateSocialContribution1()
        {
            socialContribution_Info1_ValuesButton.Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.energy_electricity.ToString());
#if __IOS__
            socialContribution_Info1_ValuesButton.Width = socialContribution_Info1_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
#else
            socialContribution_Info1_ValuesButton.Width = socialContribution_Info1_ValuesButton.GetTextWidth();
#endif
            socialContribution_Info1_UintButton.X = socialContribution_Info1_ValuesButton.Right - Application.GetRealWidth(4);
        }
        /// <summary>
        /// 更新社会贡2献数据UI
        /// </summary>
        private void updateSocialContribution2()
        {
            socialContribution_Info3_ValuesButton.Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.co2.ToString());
#if __IOS__
            socialContribution_Info3_ValuesButton.Width = socialContribution_Info2_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
#else
            socialContribution_Info2_ValuesButton.Width = socialContribution_Info2_ValuesButton.GetTextWidth();
#endif
            socialContribution_Info2_UintButton.X = socialContribution_Info2_ValuesButton.Right - Application.GetRealWidth(4);
        }
        /// <summary>
        /// 更新社会贡3献数据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
            socialContribution_Info3_UintButton.X = socialContribution_Info3_ValuesButton.Right - Application.GetRealWidth(4);
        }
        /// <summary>
        /// 更新开关按钮状态
        /// </summary>
        private void updatePowerButton()
        {
            btnPowerControl.IsSelected = function.GetAttrState(FunctionAttributeKey.OnOff.ToString()) == "on";
        }
    }
}
HDL_ON/UI/UI2/FuntionControlView/Acst/WetarHeaterJinmaoHistoryPage.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using HDL_ON.DAL.Server;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
using Shared;
@@ -8,22 +9,39 @@
    public class WetarHeaterJinmaoHistoryPage : FrameLayout
    {
        WetarHeaterJinmaoHistoryPage bodyView;
        Function device;
        Function function;
        FrameLayout infoView1;
        EchartsOption_Histogram tempEchartOption;
        MyEchartsViewOn infoView1_EchartsView;
        Button infoView1_Date_Day;
        Button infoView1_Date_Month;
        Button infoView1_Date_Year;
        Button infoView1_DateInfo_PreClickButton;
        Button infoView1_DateInfo_DateTextButton;
        Button infoView1_DateInfo_NextClickButton;
        /// <summary>
        /// echart容器
        /// </summary>
        MyEchartsViewOn tempEchartsView;
        public WetarHeaterJinmaoHistoryPage(Function function)
        FrameLayout infoView2;
        MyEchartsViewOn infoView2_EchartsView;
        EchartsOption_Histogram echartOption2;
        Button infoView2_Date_Day;
        Button infoView2_Date_Month;
        Button infoView2_Date_Year;
        Button infoView2_DateInfo_PreClickButton;
        Button infoView2_DateInfo_DateTextButton;
        Button infoView2_DateInfo_NextClickButton;
        public WetarHeaterJinmaoHistoryPage(Function deviceFunction)
        {
            bodyView = this;
            device = function;
            function = deviceFunction;
            this.BackgroundColor = CSS_Color.BackgroundColor;
        }
        public void LoadPage()
        {
            var topView = new TopViewDiv(bodyView, device.name);
            var topView = new TopViewDiv(bodyView, function.name);
            topView.maginY = 10;
            topView.LoadTopView();
@@ -35,7 +53,7 @@
            bodyView.AddChidren(contentView);
            #region 温度值
            var infoView1 = new FrameLayout()
            infoView1 = new FrameLayout()
            {
                Width = Application.GetRealWidth(343),
                Height = Application.GetRealWidth(382),
@@ -62,7 +80,7 @@
            };
            infoView1.AddChidren(infoView1_DateView);
            var infoView1_Date_Day = new Button()
            infoView1_Date_Day = new Button()
            {
                Width = Application.GetRealWidth(103),
                Height = Application.GetRealWidth(26),
@@ -80,8 +98,7 @@
            };
            infoView1_DateView.AddChidren(infoView1_Date_Day);
            var infoView1_Date_Month = new Button()
            infoView1_Date_Month = new Button()
            {
                Width = Application.GetRealWidth(103),
                Height = Application.GetRealWidth(26),
@@ -99,8 +116,7 @@
            };
            infoView1_DateView.AddChidren(infoView1_Date_Month);
            var infoView1_Date_Year = new Button()
            infoView1_Date_Year = new Button()
            {
                Width = Application.GetRealWidth(103),
                Height = Application.GetRealWidth(26),
@@ -135,13 +151,13 @@
            };
            infoView1_DateInfoView.AddChidren(infoView1_DateInfo_PreIconButton);
            var infoView1_DateInfo_PreClickButton = new Button()
            infoView1_DateInfo_PreClickButton = new Button()
            {
                Width = Application.GetRealWidth(32 + 6),
            };
            infoView1_DateInfoView.AddChidren(infoView1_DateInfo_PreClickButton);
            var infoView1_DateInfo_DateTextButton = new Button()
            infoView1_DateInfo_DateTextButton = new Button()
            {
                Gravity = Gravity.Center,
                Width = Application.GetRealWidth(200),
@@ -164,7 +180,7 @@
            };
            infoView1_DateInfoView.AddChidren(infoView1_DateInfo_NextIconButton);
            var infoView1_DateInfo_NextClickButton = new Button()
            infoView1_DateInfo_NextClickButton = new Button()
            {
                Width = Application.GetRealWidth(32 + 6),
            };
@@ -173,23 +189,23 @@
            #endregion
            #region 数据图表
            MyEchartsViewOn infoView1_EchartsView = new MyEchartsViewOn()
            infoView1_EchartsView = new MyEchartsViewOn()
            {
                Y = Application.GetRealWidth(101),
                Height = Application.GetRealWidth(246),
            };
            infoView1.AddChidren(infoView1_EchartsView);
            var echartOption = new EchartsOption_Histogram();
            echartOption.xTitle = "时间";
            echartOption.yTitle = "温度(℃)";
            echartOption.InitXdataText(new List<string>()
            tempEchartOption = new EchartsOption_Histogram();
            tempEchartOption.xTitle = "时间";
            tempEchartOption.yTitle = "温度(℃)";
            tempEchartOption.InitXdataText(new List<string>()
            {
                "21","22","23","24","25","26","26","27","28","29",
                "21","22","23","24","25","26","26","27","28","29",
                "21","22","23","24"
            });
            echartOption.InitYdataText(new List<EnvironmentalSensorHistor>() {
            tempEchartOption.InitYdataText(new List<EnvironmentalSensorHistor>() {
                new EnvironmentalSensorHistor{ fieldName = "1", fieldValue= "23"  },
                new EnvironmentalSensorHistor{ fieldName = "2", fieldValue= "22"  },
                new EnvironmentalSensorHistor{ fieldName = "3", fieldValue= "11"  },
@@ -215,7 +231,7 @@
                new EnvironmentalSensorHistor{ fieldName = "23", fieldValue= "11"  },
                new EnvironmentalSensorHistor{ fieldName = "24", fieldValue= "21"  },
            });
            var ddd = echartOption.InitOption();
            var ddd = tempEchartOption.InitOption();
            infoView1_EchartsView.ShowWithOption(ddd);
            infoView1.AddChidren(new Button()
@@ -238,7 +254,8 @@
            });
            #region 用水量
            var infoView2 = new FrameLayout()
            infoView2 = new FrameLayout()
            {
                Width = Application.GetRealWidth(343),
                Height = Application.GetRealWidth(382),
@@ -266,7 +283,7 @@
            };
            infoView2.AddChidren(infoView2_DateView);
            var infoView2_Date_Day = new Button()
            infoView2_Date_Day = new Button()
            {
                Width = Application.GetRealWidth(103),
                Height = Application.GetRealWidth(26),
@@ -285,7 +302,7 @@
            infoView2_DateView.AddChidren(infoView2_Date_Day);
            var infoView2_Date_Month = new Button()
            infoView2_Date_Month = new Button()
            {
                Width = Application.GetRealWidth(103),
                Height = Application.GetRealWidth(26),
@@ -304,7 +321,7 @@
            infoView2_DateView.AddChidren(infoView2_Date_Month);
            var infoView2_Date_Year = new Button()
            infoView2_Date_Year = new Button()
            {
                Width = Application.GetRealWidth(103),
                Height = Application.GetRealWidth(26),
@@ -339,13 +356,13 @@
            };
            infoView2_DateInfoView.AddChidren(infoView2_DateInfo_PreIconButton);
            var infoView2_DateInfo_PreClickButton = new Button()
            infoView2_DateInfo_PreClickButton = new Button()
            {
                Width = Application.GetRealWidth(32 + 6),
            };
            infoView2_DateInfoView.AddChidren(infoView2_DateInfo_PreClickButton);
            var infoView2_DateInfo_DateTextButton = new Button()
            infoView2_DateInfo_DateTextButton = new Button()
            {
                Gravity = Gravity.Center,
                Width = Application.GetRealWidth(200),
@@ -357,7 +374,6 @@
            };
            infoView2_DateInfoView.AddChidren(infoView2_DateInfo_DateTextButton);
            var infoView2_DateInfo_NextIconButton = new Button()
            {
                X = Application.GetRealWidth(343 - 18 - 6),
@@ -368,7 +384,7 @@
            };
            infoView2_DateInfoView.AddChidren(infoView2_DateInfo_NextIconButton);
            var infoView2_DateInfo_NextClickButton = new Button()
            infoView2_DateInfo_NextClickButton = new Button()
            {
                Width = Application.GetRealWidth(32 + 6),
            };
@@ -377,16 +393,16 @@
            #endregion
            #region 数据图表
            MyEchartsViewOn infoView2_EchartsView = new MyEchartsViewOn()
            infoView2_EchartsView = new MyEchartsViewOn()
            {
                Y = Application.GetRealWidth(101),
                Height = Application.GetRealWidth(246),
            };
            infoView2.AddChidren(infoView2_EchartsView);
            var echartOption2 = new EchartsOption_Histogram();
            echartOption2 = new EchartsOption_Histogram();
            echartOption2.xTitle = "时间";
            echartOption2.yTitle = "温度(℃)";
            echartOption2.yTitle = "用水量(t)";
            echartOption2.InitXdataText(new List<string>()
            {
                "21","22","23","24","25","26","26","27","28","29",
@@ -443,6 +459,137 @@
            });
        }
        /// <summary>
        /// 读取温度值历史数据
        /// </summary>
        private void getTempHistory(string queryType)
        {
            var loadPage = new Loading()
            {
                LodingBackgroundColor = 0x88888888,
            };
            infoView1.AddChidren(loadPage);
            new System.Threading.Thread(() =>
            {
                try
                {
                    Application.RunOnMainThread(() =>
                    {
                        loadPage.Start(Language.StringByID(StringId.PleaseWait));
                    });
                    var revertObj = new HttpServerRequest().GetSensorHistory(queryType, function.deviceId, WaterHeaterJinmao_AttrEnum.temp.ToString());
                    if (revertObj != null)
                    {
                        if (revertObj.Code == StateCode.SUCCESS)
                        {
                            var revertData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<EnvironmentalSensorHistor>>(revertObj.Data.ToString());
                            List<string> vs = new List<string>();
                            foreach (var data in revertData)
                            {
                                vs.Add(data.fieldName);
                            }
                            tempEchartOption.InitXdataText(vs);
                            tempEchartOption.InitYdataText(revertData);
                            Application.RunOnMainThread(() =>
                            {
                                infoView1_EchartsView.ShowWithOption(tempEchartOption.InitOption());
                            });
                        }
                    }
                }
                catch (Exception ex)
                {
                    MainPage.Log($"history error : {ex.Message}");
                }
                finally
                {
                    Application.RunOnMainThread(() =>
                    {
                        loadPage.Hide();
                    });
                }
            })
            { IsBackground = true }.Start();
        }
        /// <summary>
        /// 获取用水量历史记录
        /// </summary>
        /// <param name="queryType"></param>
        private void getWaterHistory(string queryType)
        {
            var loadPage = new Loading()
            {
                LodingBackgroundColor = 0x88888888,
            };
            infoView2.AddChidren(loadPage);
            new System.Threading.Thread(() =>
            {
                try
                {
                    Application.RunOnMainThread(() =>
                    {
                        loadPage.Start(Language.StringByID(StringId.PleaseWait));
                    });
                    var revertObj = new HttpServerRequest().GetSensorHistory(queryType, function.deviceId, WaterHeaterJinmao_AttrEnum.volume.ToString());
                    if (revertObj != null)
                    {
                        if (revertObj.Code == StateCode.SUCCESS)
                        {
                            var revertData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<EnvironmentalSensorHistor>>(revertObj.Data.ToString());
                            List<string> vs = new List<string>();
                            foreach (var data in revertData)
                            {
                                vs.Add(data.fieldName);
                            }
                            echartOption2.InitXdataText(vs);
                            echartOption2.InitYdataText(revertData);
                            Application.RunOnMainThread(() =>
                            {
                                infoView2_EchartsView.ShowWithOption(echartOption2.InitOption());
                            });
                        }
                    }
                }
                catch (Exception ex)
                {
                    MainPage.Log($"history 2 error : {ex.Message}");
                }
                finally
                {
                    Application.RunOnMainThread(() =>
                    {
                        loadPage.Hide();
                    });
                }
            })
            { IsBackground = true }.Start();
        }
        private void initQueryButton()
        {
            infoView1_Date_Day.MouseUpEventHandler = (sender, e) => {
                if (infoView1_Date_Day.IsSelected)
                {
                    return;
                }
                infoView1_Date_Day.IsSelected = true;
                infoView1_Date_Month.IsSelected = false;
                infoView1_Date_Year.IsSelected = false;
                //getTempHistory("day")
            };
        }
    }
}