wxr
2024-08-27 7b9c970fd38835624f07185cd2ce4659dbb93200
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),
                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,27 +242,27 @@
                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),
                Width = Application.GetRealWidth(181-12),
                Width = Application.GetRealWidth(181 - 12),
                Text = "累计用电量:" + function.GetAttrState(InverterJinmao_AttrEnum.load_electricity.ToString()),
                TextColor = CSS_Color.MainBackgroundColor,
                TextSize = 12,
                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
@@ -635,7 +688,7 @@
            var esRunStatus_BatteryIconButton = new Button()
            {
                X = Application.GetRealWidth(343 - 12 -20) - esRunStatus_BatteryValuesButton.Width,
                X = Application.GetRealWidth(343 - 12 - 20) - esRunStatus_BatteryValuesButton.Width,
                Y = Application.GetRealWidth(16),
                Width = Application.GetRealWidth(20),
                Height = Application.GetRealWidth(20),
@@ -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());
        }
    }
}