using System; using HDL_ON.Entity; using HDL_ON.UI.CSS; using Shared; namespace HDL_ON.UI { public class InverterJinmaoPage : FrameLayout { FrameLayout bodyView; Function function; /// /// 今日发电量数据按钮 /// Button pvGenerate_TodayValuesButton; /// /// 今日发电量单位按钮 /// Button pvGenerate_todayUintButton; /// /// 累计发电量数据按钮 /// Button pvGenerate_TotalValuesButton; /// /// 今日用电量数据按钮 /// Button pvLoad_TodayValuesButton; /// /// 累计用电量数据按钮 /// Button pvLoad_TotalValuesButton; /// /// 光伏运行状态信息区域 /// FrameLayout pvRunStatusInfoView; /// /// 光伏运行状态图标按钮 /// Button pvRunStatus_IconButtonp; /// /// 光伏运行状态文本按钮 /// Button pvRunStatus_TextButton; /// /// 光伏发电功能数据按钮 /// Button pvPower_ValuesButton; /// /// 光伏今日发电量数据按钮 /// Button pvGeneration_TodayValuesButton; /// /// 光伏本月发电量数据按钮 /// Button pvGeneration_MonthValuesButton; /// /// 光伏本年发电量数据按钮 /// Button pvGeneration_YearValuesButton; public InverterJinmaoPage() { bodyView = this; try { function = FunctionList.List.GetInverterJinmaoList()[0]; } catch (Exception ex) { MainPage.Log($"{ex.Message}"); this.RemoveFromParent(); } BackgroundColor = CSS_Color.BackgroundColor; } public void LoadPage() { new TopViewDiv(bodyView, Language.StringByID(StringId.NewEnergy)) { maginY = 10 }.LoadTopView(); var contentView = new VerticalScrolViewLayout() { Y = Application.GetRealHeight(74), Height = Application.GetRealHeight(Application.DesignHeight - 74), }; bodyView.AddChidren(contentView); contentView.AddChidren(new Button() { Height = Application.GetRealWidth(16), }); #region 发电量 用电量 var electricityQuantityView = new FrameLayout() { Width = Application.GetRealWidth(343), Height = Application.GetRealWidth(99), Gravity = Gravity.CenterHorizontal, }; contentView.AddChidren(electricityQuantityView); #region 发电量 Electricity generation var electricityGenerationView = new FrameLayout() { Width = Application.GetRealWidth(181), Height = Application.GetRealWidth(99), BackgroundImagePath = "FunctionIcon/Acst/Inverter/ElectricityGenerationBg.png" }; electricityQuantityView.AddChidren(electricityGenerationView); var pv_IconButton = new Button() { X = Application.GetRealWidth(14), Y = Application.GetRealWidth(16), Width = Application.GetRealWidth(12), Height = Application.GetRealWidth(12), UnSelectedImagePath = "FunctionIcon/Acst/Inverter/ElectricityGenerationIcon.png" }; electricityQuantityView.AddChidren(pv_IconButton); var pv_TextButton = new Button() { X = Application.GetRealWidth(32), Y = Application.GetRealWidth(12), Width = Application.GetRealWidth(140), Height = Application.GetRealWidth(20), Text = "今日发电量", TextSize = CSS_FontSize.TextFontSize, TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.MainBackgroundColor, }; electricityGenerationView.AddChidren(pv_TextButton); pvGenerate_TodayValuesButton = new Button() { X = Application.GetRealWidth(12), Y = Application.GetRealWidth(34), Height = Application.GetRealWidth(24), Text = function.GetAttrState(InverterJinmao_AttrEnum.pv_electricity_today.ToString()), TextColor = CSS_Color.MainBackgroundColor, TextSize = 18, IsBold = true, }; electricityGenerationView.AddChidren(pvGenerate_TodayValuesButton); #if __IOS__ pvGenerate_TodayValuesButton.TextAlignment = TextAlignment.TopLeft; pvGenerate_TodayValuesButton.Width = pvGenerate_TodayValuesButton.GetTextWidth() + Application.GetRealWidth(8); #else pvGenerate_TodayValuesButton.TextAlignment = TextAlignment.BottomLeft; pvGenerate_TodayValuesButton.Width = pvGenerate_TodayValuesButton.GetTextWidth(); #endif pvGenerate_todayUintButton = new Button() { Y = Application.GetRealWidth(43), Height = Application.GetRealWidth(17), Text = "kw", TextColor = CSS_Color.MainBackgroundColor, TextSize = 12, TextAlignment = TextAlignment.CenterLeft, }; pvGenerate_todayUintButton.X = pvGenerate_TodayValuesButton.Right; electricityGenerationView.AddChidren(pvGenerate_todayUintButton); pvGenerate_TotalValuesButton = new Button() { X = Application.GetRealWidth(12), Y = Application.GetRealWidth(69), Height = Application.GetRealWidth(18), Text = "累计发电量:" + function.GetAttrState(InverterJinmao_AttrEnum.pv_electricity.ToString()), TextColor = CSS_Color.MainBackgroundColor, TextSize = 12, TextAlignment = TextAlignment.CenterLeft, //IsBold = true, }; electricityGenerationView.AddChidren(pvGenerate_TotalValuesButton); #endregion #region 用电量 Electricity consumption 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(loadEleView); var loadEle_IconButton = new Button() { X = Application.GetRealWidth(155), Y = Application.GetRealWidth(16), Width = Application.GetRealWidth(12), Height = Application.GetRealWidth(12), UnSelectedImagePath = "FunctionIcon/Acst/Inverter/ElectricityConsumptionIcon.png" }; loadEleView.AddChidren(loadEle_IconButton); var loadEle_TodayTextButton = new Button() { //X = Application.GetRealWidth(181 - 32), Y = Application.GetRealWidth(12), Width = Application.GetRealWidth(181 - 32), Height = Application.GetRealWidth(20), Text = "今日用电量", TextSize = CSS_FontSize.TextFontSize, TextAlignment = TextAlignment.CenterRight, TextColor = CSS_Color.MainBackgroundColor, }; loadEleView.AddChidren(loadEle_TodayTextButton); var loadEle_TodayUintButton = new Button() { Y = Application.GetRealWidth(43), Height = Application.GetRealWidth(17), Text = "kw", TextColor = CSS_Color.MainBackgroundColor, TextSize = 12, TextAlignment = TextAlignment.CenterRight, }; loadEleView.AddChidren(loadEle_TodayUintButton); #if __IOS__ loadEle_TodayUintButton.Width = loadEle_TodayUintButton.GetTextWidth() + Application.GetRealWidth(8); #else loadEle_TodayUintButton.Width = loadEle_TodayUintButton.GetTextWidth(); #endif loadEle_TodayUintButton.X = Application.GetRealWidth(181 - 12) - loadEle_TodayUintButton.Width; pvLoad_TodayValuesButton = new Button() { X = Application.GetRealWidth(81 - 12) - loadEle_TodayUintButton.Width, Y = Application.GetRealWidth(34), Height = Application.GetRealWidth(53), Width = Application.GetRealWidth(100), Text = function.GetAttrState(InverterJinmao_AttrEnum.load_electricity_today.ToString()), TextColor = CSS_Color.MainBackgroundColor, TextSize = 18, TextAlignment = TextAlignment.TopRight, IsBold = true, }; loadEleView.AddChidren(pvLoad_TodayValuesButton); pvLoad_TotalValuesButton = new Button() { Y = Application.GetRealWidth(69), Height = Application.GetRealWidth(18), Width = Application.GetRealWidth(181 - 12), Text = "累计用电量:" + function.GetAttrState(InverterJinmao_AttrEnum.load_electricity.ToString()), TextColor = CSS_Color.MainBackgroundColor, TextSize = 12, TextAlignment = TextAlignment.CenterRight, //IsBold = true, }; loadEleView.AddChidren(pvLoad_TotalValuesButton); #endregion var goHistroyButton = new Button(); electricityQuantityView.AddChidren(goHistroyButton); goHistroyButton.MouseUpEventHandler = (sender, e) => { var page = new InverterJinmaoHistroyPage(function); MainPage.BasePageView.AddChidren(page); page.LoadPage(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; #endregion contentView.AddChidren(new Button() { Height = Application.GetRealWidth(8), }); #region 光伏运行状态 var pvRunStatus_TitleButton = new Button() { X = Application.GetRealWidth(16), Height = Application.GetRealWidth(47), TextAlignment = TextAlignment.CenterLeft, Text = "光伏运行状态", TextColor = CSS_Color.FirstLevelTitleColor, TextSize = 16, IsBold = true, }; contentView.AddChidren(pvRunStatus_TitleButton); var pvEleGenerationInfoView = new FrameLayout() { Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(343), Height = Application.GetRealWidth(253), BackgroundColor = CSS_Color.MainBackgroundColor, Radius = (uint)Application.GetRealHeight(12), BorderColor = 0x00FFFFFF, BorderWidth = 0, }; contentView.AddChidren(pvEleGenerationInfoView); #region 光伏运行状态 pvRunStatusInfoView = new FrameLayout() { X = 0 - Application.GetRealWidth(14), Y = Application.GetRealWidth(12), Width = Application.GetRealWidth(68 + 14), Height = Application.GetRealWidth(28), BackgroundColor = 0x154484F4, Radius = (uint)Application.GetRealHeight(14), BorderColor = 0x00FFFFFF, BorderWidth = 0, }; pvEleGenerationInfoView.AddChidren(pvRunStatusInfoView); pvRunStatus_IconButtonp = new Button() { X = Application.GetRealWidth(8 + 14), Gravity = Gravity.CenterVertical, Width = Application.GetRealWidth(12), Height = Application.GetRealWidth(12), UnSelectedImagePath = "FunctionIcon/Acst/Inverter/PvIconRun.png", }; pvRunStatusInfoView.AddChidren(pvRunStatus_IconButtonp); pvRunStatus_TextButton = new Button() { X = Application.GetRealWidth(8 + 14 + 4 + 12), TextAlignment = TextAlignment.CenterLeft, TextSize = 14, TextColor = 0xFF4484F4, Text = "运行", }; pvRunStatusInfoView.AddChidren(pvRunStatus_TextButton); var powerGenerationView = new FrameLayout() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealWidth(20), Width = Application.GetRealWidth(151), Height = Application.GetRealWidth(151), BackgroundImagePath = "FunctionIcon/Acst/Inverter/PvBgRun.png" }; pvEleGenerationInfoView.AddChidren(powerGenerationView); #endregion #region 光伏发电量 #region 光伏发电功率 pvPower_ValuesButton = new Button() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealWidth(46), Width = Application.GetRealWidth(100), Height = Application.GetRealWidth(32), Text = function.GetAttrState(InverterJinmao_AttrEnum.pv_power.ToString()), TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = 24, IsBold = true, }; powerGenerationView.AddChidren(pvPower_ValuesButton); var powerGeneration_TextButton = new Button() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealWidth(78), //Width = Application.GetRealWidth(100), Height = Application.GetRealWidth(25), Text = "实时发电功率 (kwh)", TextAlignment = TextAlignment.Center, TextColor = CSS_Color.TextualColor, TextSize = 12, }; powerGenerationView.AddChidren(powerGeneration_TextButton); #endregion #region 光伏今日发电量 pvGeneration_TodayValuesButton = new Button() { X = Application.GetRealWidth(16), Y = Application.GetRealWidth(191), Width = Application.GetRealWidth(100), Height = Application.GetRealWidth(24), Text = function.GetAttrState(InverterJinmao_AttrEnum.pv_electricity_today.ToString()), TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = 18, IsBold = true, }; pvEleGenerationInfoView.AddChidren(pvGeneration_TodayValuesButton); var powerGeneration_TodayTextButton = new Button() { X = Application.GetRealWidth(16), Y = Application.GetRealWidth(220), Width = Application.GetRealWidth(100), Height = Application.GetRealWidth(17), Text = "今日发电量 (kw)", TextAlignment = TextAlignment.Center, TextColor = CSS_Color.TextualColor, TextSize = 12, }; pvEleGenerationInfoView.AddChidren(powerGeneration_TodayTextButton); #endregion #region 光伏本月发电量 pvGeneration_MonthValuesButton = new Button() { X = Application.GetRealWidth(16 + 105), Y = Application.GetRealWidth(191), Width = Application.GetRealWidth(100), Height = Application.GetRealWidth(24), Text = function.GetAttrState(InverterJinmao_AttrEnum.pv_electricity_month.ToString()), TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = 18, IsBold = true, }; pvEleGenerationInfoView.AddChidren(pvGeneration_MonthValuesButton); var powerGeneration_MonthTextButton = new Button() { X = Application.GetRealWidth(16 + 105), Y = Application.GetRealWidth(220), Width = Application.GetRealWidth(100), Height = Application.GetRealWidth(17), Text = "本月发电量 (kw)", TextAlignment = TextAlignment.Center, TextColor = CSS_Color.TextualColor, TextSize = 12, }; pvEleGenerationInfoView.AddChidren(powerGeneration_MonthTextButton); #endregion #region 光伏本年发电量 pvGeneration_YearValuesButton = new Button() { X = Application.GetRealWidth(16 + 212), Y = Application.GetRealWidth(191), Width = Application.GetRealWidth(100), Height = Application.GetRealWidth(24), Text = function.GetAttrState(InverterJinmao_AttrEnum.pv_electricity.ToString()), TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = 18, IsBold = true, }; pvEleGenerationInfoView.AddChidren(pvGeneration_YearValuesButton); var powerGeneration_YearTextButton = new Button() { X = Application.GetRealWidth(16 + 212), Y = Application.GetRealWidth(220), Width = Application.GetRealWidth(100), Height = Application.GetRealWidth(17), Text = "累计发电量 (kw)", TextAlignment = TextAlignment.Center, TextColor = CSS_Color.TextualColor, TextSize = 12, }; pvEleGenerationInfoView.AddChidren(powerGeneration_YearTextButton); #endregion #endregion contentView.AddChidren(new Button() { Height = Application.GetRealWidth(12), }); #region 用电量状态 electricity usage status var electricityUsageStatusView = new FrameLayout() { Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(343), Height = Application.GetRealWidth(253), BackgroundColor = CSS_Color.MainBackgroundColor, Radius = (uint)Application.GetRealHeight(12), BorderColor = 0x00FFFFFF, BorderWidth = 0, }; contentView.AddChidren(electricityUsageStatusView); var powerUsageView = new FrameLayout() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealWidth(20), Width = Application.GetRealWidth(151), Height = Application.GetRealWidth(151), BackgroundImagePath = "FunctionIcon/Acst/Inverter/PvBgDischarge.png" }; electricityUsageStatusView.AddChidren(powerUsageView); var powerUsage_ValuesButton = new Button() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealWidth(46), Width = Application.GetRealWidth(100), Height = Application.GetRealWidth(32), Text = function.GetAttrState(InverterJinmao_AttrEnum.load_active_power.ToString()), TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = 24, IsBold = true, }; powerUsageView.AddChidren(powerUsage_ValuesButton); var powerUsage_TextButton = new Button() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealWidth(78), //Width = Application.GetRealWidth(100), Height = Application.GetRealWidth(25), Text = "实时用电功率 (kwh)", TextAlignment = TextAlignment.Center, TextColor = CSS_Color.TextualColor, TextSize = 12, }; powerUsageView.AddChidren(powerUsage_TextButton); var powerUsage_TodayValuesButton = new Button() { X = Application.GetRealWidth(16), Y = Application.GetRealWidth(191), Width = Application.GetRealWidth(100), Height = Application.GetRealWidth(24), Text = function.GetAttrState(InverterJinmao_AttrEnum.load_electricity_today.ToString()), TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = 18, IsBold = true, }; electricityUsageStatusView.AddChidren(powerUsage_TodayValuesButton); var powerUsage_TodayTextButton = new Button() { X = Application.GetRealWidth(16), Y = Application.GetRealWidth(220), Width = Application.GetRealWidth(100), Height = Application.GetRealWidth(17), Text = "今日用电量 (kw)", TextAlignment = TextAlignment.Center, TextColor = CSS_Color.TextualColor, TextSize = 12, }; electricityUsageStatusView.AddChidren(powerUsage_TodayTextButton); var powerUsage_MonthValuesButton = new Button() { X = Application.GetRealWidth(16 + 105), Y = Application.GetRealWidth(191), Width = Application.GetRealWidth(100), Height = Application.GetRealWidth(24), Text = function.GetAttrState(InverterJinmao_AttrEnum.load_electricity_month.ToString()), TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = 18, IsBold = true, }; electricityUsageStatusView.AddChidren(powerUsage_MonthValuesButton); var powerUsage_MonthTextButton = new Button() { X = Application.GetRealWidth(16 + 105), Y = Application.GetRealWidth(220), Width = Application.GetRealWidth(100), Height = Application.GetRealWidth(17), Text = "本月用电量 (kw)", TextAlignment = TextAlignment.Center, TextColor = CSS_Color.TextualColor, TextSize = 12, }; electricityUsageStatusView.AddChidren(powerUsage_MonthTextButton); var powerUsage_YearValuesButton = new Button() { X = Application.GetRealWidth(16 + 212), Y = Application.GetRealWidth(191), Width = Application.GetRealWidth(100), Height = Application.GetRealWidth(24), Text = function.GetAttrState(InverterJinmao_AttrEnum.load_electricity.ToString()), TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = 18, IsBold = true, }; electricityUsageStatusView.AddChidren(powerUsage_YearValuesButton); var powerUsage_YearTextButton = new Button() { X = Application.GetRealWidth(16 + 212), Y = Application.GetRealWidth(220), Width = Application.GetRealWidth(100), Height = Application.GetRealWidth(17), Text = "本年用电量 (kw)", TextAlignment = TextAlignment.Center, TextColor = CSS_Color.TextualColor, TextSize = 12, }; electricityUsageStatusView.AddChidren(powerUsage_YearTextButton); #endregion #endregion contentView.AddChidren(new Button() { Height = Application.GetRealWidth(8) }); #region 储能运行状态 Energy storage var esRunStatus_TitleButton = new Button() { X = Application.GetRealWidth(16), Height = Application.GetRealWidth(47), TextAlignment = TextAlignment.CenterLeft, Text = "储能运行状态", TextColor = CSS_Color.FirstLevelTitleColor, TextSize = 16, IsBold = true, }; contentView.AddChidren(esRunStatus_TitleButton); #region var esStatusView = new FrameLayout() { Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(343), Height = Application.GetRealWidth(194), BackgroundColor = CSS_Color.MainBackgroundColor, Radius = (uint)Application.GetRealHeight(12), BorderColor = 0x00FFFFFF, BorderWidth = 0, }; contentView.AddChidren(esStatusView); var esStatus_InfoView = new FrameLayout() { X = 0 - Application.GetRealWidth(14), Y = Application.GetRealWidth(12), Width = Application.GetRealWidth(68 + 14), Height = Application.GetRealWidth(28), BackgroundColor = 0x1500C22D, Radius = (uint)Application.GetRealHeight(14), BorderColor = 0x00FFFFFF, BorderWidth = 0, }; esStatusView.AddChidren(esStatus_InfoView); var esRunStatus_Info_IconButton = new Button() { X = Application.GetRealWidth(8 + 14), Gravity = Gravity.CenterVertical, Width = Application.GetRealWidth(12), Height = Application.GetRealWidth(12), UnSelectedImagePath = "FunctionIcon/Acst/Inverter/EsIconCharg.png", }; esStatus_InfoView.AddChidren(esRunStatus_Info_IconButton); var esRunStatus_Info_TextButton = new Button() { X = Application.GetRealWidth(8 + 14 + 4 + 12), TextAlignment = TextAlignment.CenterLeft, TextSize = 14, TextColor = 0xFF00C22D, Text = "充电", }; esStatus_InfoView.AddChidren(esRunStatus_Info_TextButton); var esRunStatus_BatteryValuesButton = new Button() { Y = Application.GetRealWidth(18), Height = Application.GetRealWidth(17), TextAlignment = TextAlignment.CenterRight, Text = function.GetAttrState(InverterJinmao_AttrEnum.battery_soc.ToString()) + "%", TextSize = 12, TextColor = 0xFF00C22D, }; #if __IOS__ esRunStatus_BatteryValuesButton.Width = esRunStatus_BatteryValuesButton.GetTextWidth() + Application.GetRealWidth(8); #else esRunStatus_BatteryValuesButton.Width = esRunStatus_BatteryValuesButton.GetTextWidth(); #endif esRunStatus_BatteryValuesButton.X = Application.GetRealWidth(343 - 12) - esRunStatus_BatteryValuesButton.Width; esStatusView.AddChidren(esRunStatus_BatteryValuesButton); var esRunStatus_BatteryIconButton = new Button() { X = Application.GetRealWidth(343 - 12 - 20) - esRunStatus_BatteryValuesButton.Width, Y = Application.GetRealWidth(16), Width = Application.GetRealWidth(20), Height = Application.GetRealWidth(20), UnSelectedImagePath = "FunctionIcon/Acst/Inverter/BatteryIconCharg.png", }; esStatusView.AddChidren(esRunStatus_BatteryIconButton); var esRunStatus_ValuesInfoView = new FrameLayout() { Width = Application.GetRealWidth(282), Height = Application.GetRealWidth(153), Gravity = Gravity.CenterHorizontal, Y = Application.GetRealWidth(40), BackgroundImagePath = "FunctionIcon/Acst/Inverter/EnergyStorageStatusBg.png", }; esStatusView.AddChidren(esRunStatus_ValuesInfoView); #region 实时充电功率 var esRunStatus_ChargeValuesView = new FrameLayout() { X = Application.GetRealWidth(15), Width = Application.GetRealWidth(128), Height = Application.GetRealWidth(128), }; esRunStatus_ValuesInfoView.AddChidren(esRunStatus_ChargeValuesView); var esRunStatus_ChargeValuesButton = new Button() { Y = Application.GetRealWidth(36), Height = Application.GetRealWidth(32), TextAlignment = TextAlignment.Center, Text = function.GetAttrState(InverterJinmao_AttrEnum.ess_charge_power.ToString()), TextColor = CSS_Color.FirstLevelTitleColor, TextSize = 24, IsBold = true, }; esRunStatus_ChargeValuesView.AddChidren(esRunStatus_ChargeValuesButton); var esRunStatus_ChargeTextButton = new Button() { X = Application.GetRealWidth(1), Y = Application.GetRealWidth(76), Height = Application.GetRealWidth(17), TextAlignment = TextAlignment.Center, Text = "实时充电功率(kwh)", TextColor = CSS_Color.TextualColor, TextSize = 12, }; esRunStatus_ChargeValuesView.AddChidren(esRunStatus_ChargeTextButton); #endregion #region 实时放电功率 var esRunStatus_DischargeValuesView = new FrameLayout() { X = Application.GetRealWidth(132+13), Width = Application.GetRealWidth(128), Height = Application.GetRealWidth(128), }; esRunStatus_ValuesInfoView.AddChidren(esRunStatus_DischargeValuesView); var esRunStatus_DischargeValuesButton = new Button() { Y = Application.GetRealWidth(36), Height = Application.GetRealWidth(32), TextAlignment = TextAlignment.Center, Text = function.GetAttrState(InverterJinmao_AttrEnum.ess_discharg_power.ToString()), TextColor = CSS_Color.FirstLevelTitleColor, TextSize = 24, IsBold = true, }; esRunStatus_DischargeValuesView.AddChidren(esRunStatus_DischargeValuesButton); var esRunStatus_DischargeTextButton = new Button() { X = Application.GetRealWidth(1), Y = Application.GetRealWidth(76), Height = Application.GetRealWidth(17), TextAlignment = TextAlignment.Center, Text = "实时放电功率(kwh)", TextColor = CSS_Color.TextualColor, TextSize = 12, }; esRunStatus_DischargeValuesView.AddChidren(esRunStatus_DischargeTextButton); #endregion #endregion #endregion contentView.AddChidren(new Button() { Height = Application.GetRealWidth(8) }); #region 社会贡献 Social contribution contentView.AddChidren(new Button() { Height = Application.GetRealWidth(46), Width = Application.GetRealWidth(100), X = Application.GetRealWidth(16), Text = "社会贡献", TextAlignment = TextAlignment.CenterLeft, TextSize = 16, TextColor = CSS_Color.FirstLevelTitleColor, IsBold = true }); var socialContributionView = new HorizontalScrolViewLayout() { Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(343), Height = Application.GetRealHeight(142), ScrollEnabled = false, }; contentView.AddChidren(socialContributionView); #region 节约标准煤 var socialContribution_InfoView_1 = new FrameLayout() { Width = Application.GetRealWidth(109), Height = Application.GetRealWidth(130), BackgroundImagePath = "FunctionIcon/Acst/Inverter/SocialContributionInfoBg_Coal.png" }; socialContributionView.AddChidren(socialContribution_InfoView_1); var socialContribution_Info1_IconButton = new Button() { X = Application.GetRealWidth(12), Y = Application.GetRealWidth(16), Width = Application.GetRealWidth(36), Height = Application.GetRealWidth(36), UnSelectedImagePath = "FunctionIcon/Acst/Inverter/SocialContributionInfoIcon_Coal.png" }; socialContribution_InfoView_1.AddChidren(socialContribution_Info1_IconButton); var socialContribution_Info1_ValuesButton = new Button() { X = Application.GetRealWidth(12), Y = Application.GetRealWidth(68), Width = Application.GetRealWidth(36), Height = Application.GetRealWidth(25), Text = function.GetAttrState(InverterJinmao_AttrEnum.coal.ToString()), TextSize = 18, TextColor = CSS_Color.FirstLevelTitleColor, TextAlignment = TextAlignment.BottomLeft, IsBold = true, }; #if __IOS__ socialContribution_Info1_ValuesButton.Width = socialContribution_Info1_ValuesButton.GetTextWidth() + Application.GetRealWidth(8); #else socialContribution_Info1_ValuesButton.Width = socialContribution_Info1_ValuesButton.GetTextWidth(); #endif socialContribution_InfoView_1.AddChidren(socialContribution_Info1_ValuesButton); var socialContribution_Info1_UintButton = new Button() { X = socialContribution_Info1_ValuesButton.Right - Application.GetRealWidth(4), Y = Application.GetRealWidth(68), Width = Application.GetRealWidth(50), Height = Application.GetRealWidth(23), Text = "吨", TextSize = 12, TextColor = CSS_Color.FirstLevelTitleColor, TextAlignment = TextAlignment.BottomLeft, }; socialContribution_InfoView_1.AddChidren(socialContribution_Info1_UintButton); var socialContribution_Info1_TipButton = new Button() { X = Application.GetRealWidth(12), Y = Application.GetRealWidth(98), Width = Application.GetRealWidth(100), Height = Application.GetRealWidth(17), Text = "节约标准煤", TextSize = 12, TextColor = 0xFF798394, TextAlignment = TextAlignment.CenterLeft, }; socialContribution_InfoView_1.AddChidren(socialContribution_Info1_TipButton); #endregion socialContributionView.AddChidren(new Button() { Width = Application.GetRealWidth(8), }); #region CO2减排量 var socialContribution_InfoView_2 = new FrameLayout() { Width = Application.GetRealWidth(109), Height = Application.GetRealWidth(130), BackgroundImagePath = "FunctionIcon/Acst/WaterHeater/SocialContributionInfoBg_2.png" }; socialContributionView.AddChidren(socialContribution_InfoView_2); var socialContribution_Info2_IconButton = new Button() { X = Application.GetRealWidth(12), Y = Application.GetRealWidth(16), Width = Application.GetRealWidth(36), Height = Application.GetRealWidth(36), UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/SocialContributionInfoIcon_2.png" }; socialContribution_InfoView_2.AddChidren(socialContribution_Info2_IconButton); var socialContribution_Info2_ValuesButton = new Button() { X = Application.GetRealWidth(12), Y = Application.GetRealWidth(68), Width = Application.GetRealWidth(36), Height = Application.GetRealWidth(25), Text = function.GetAttrState(InverterJinmao_AttrEnum.co2.ToString()), TextSize = 18, TextColor = CSS_Color.FirstLevelTitleColor, TextAlignment = TextAlignment.BottomLeft, IsBold = true, }; #if __IOS__ socialContribution_Info2_ValuesButton.Width = socialContribution_Info2_ValuesButton.GetTextWidth() + Application.GetRealWidth(8); #else socialContribution_Info2_ValuesButton.Width = socialContribution_Info2_ValuesButton.GetTextWidth(); #endif socialContribution_InfoView_2.AddChidren(socialContribution_Info2_ValuesButton); var socialContribution_Info2_UintButton = new Button() { X = socialContribution_Info2_ValuesButton.Right - Application.GetRealWidth(4), Y = Application.GetRealWidth(68), Width = Application.GetRealWidth(50), Height = Application.GetRealWidth(23), Text = "吨", TextSize = 12, TextColor = CSS_Color.FirstLevelTitleColor, TextAlignment = TextAlignment.BottomLeft, }; socialContribution_InfoView_2.AddChidren(socialContribution_Info2_UintButton); var socialContribution_Info2_TipButton = new Button() { X = Application.GetRealWidth(12), Y = Application.GetRealWidth(98), Width = Application.GetRealWidth(100), Height = Application.GetRealWidth(17), Text = "CO2减排量", TextSize = 12, TextColor = 0xFF798394, TextAlignment = TextAlignment.CenterLeft, }; socialContribution_InfoView_2.AddChidren(socialContribution_Info2_TipButton); #endregion socialContributionView.AddChidren(new Button() { Width = Application.GetRealWidth(8), }); #region 等效植树量 var socialContribution_InfoView_3 = new FrameLayout() { Width = Application.GetRealWidth(109), Height = Application.GetRealWidth(130), BackgroundImagePath = "FunctionIcon/Acst/WaterHeater/SocialContributionInfoBg_3.png" }; socialContributionView.AddChidren(socialContribution_InfoView_3); var socialContribution_Info3_IconButton = new Button() { X = Application.GetRealWidth(12), Y = Application.GetRealWidth(16), Width = Application.GetRealWidth(36), Height = Application.GetRealWidth(36), UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/SocialContributionInfoIcon_3.png" }; socialContribution_InfoView_3.AddChidren(socialContribution_Info3_IconButton); var socialContribution_Info3_ValuesButton = new Button() { X = Application.GetRealWidth(12), Y = Application.GetRealWidth(68), Width = Application.GetRealWidth(36), Height = Application.GetRealWidth(25), Text = function.GetAttrState(InverterJinmao_AttrEnum.trees.ToString()), TextSize = 18, TextColor = CSS_Color.FirstLevelTitleColor, TextAlignment = TextAlignment.BottomLeft, IsBold = true, }; #if __IOS__ socialContribution_Info3_ValuesButton.Width = socialContribution_Info3_ValuesButton.GetTextWidth() + Application.GetRealWidth(8); #else socialContribution_Info3_ValuesButton.Width = socialContribution_Info3_ValuesButton.GetTextWidth(); #endif socialContribution_InfoView_3.AddChidren(socialContribution_Info3_ValuesButton); var socialContribution_Info3_UintButton = new Button() { X = socialContribution_Info3_ValuesButton.Right - Application.GetRealWidth(4), Y = Application.GetRealWidth(68), Width = Application.GetRealWidth(50), Height = Application.GetRealWidth(23), Text = "棵", TextSize = 12, TextColor = CSS_Color.FirstLevelTitleColor, TextAlignment = TextAlignment.BottomLeft, }; socialContribution_InfoView_3.AddChidren(socialContribution_Info3_UintButton); var socialContribution_Info3_TipButton = new Button() { X = Application.GetRealWidth(12), Y = Application.GetRealWidth(98), Width = Application.GetRealWidth(100), Height = Application.GetRealWidth(17), Text = "等效植树量", TextSize = 12, TextColor = 0xFF798394, TextAlignment = TextAlignment.CenterLeft, }; socialContribution_InfoView_3.AddChidren(socialContribution_Info3_TipButton); #endregion #endregion } /// /// 更新界面数据 /// /// 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(); } }); } /// /// 更新今日发电量 /// private void upatePvGenerateTodayValues() { pvGenerate_TodayValuesButton.Text = pvGeneration_TodayValuesButton.Text = function.GetAttrState(InverterJinmao_AttrEnum.pv_electricity_today.ToString()); pvGenerate_todayUintButton.X = pvGenerate_TodayValuesButton.Right; } /// /// 更新光伏本月发电量 /// private void upatePvGenerateMonthValues() { pvGeneration_MonthValuesButton.Text = function.GetAttrState(InverterJinmao_AttrEnum.pv_electricity_month.ToString()); } /// /// 更新光伏本年发电量 /// private void upatePvGenerateYearValues() { pvGeneration_YearValuesButton.Text = function.GetAttrState(InverterJinmao_AttrEnum.pv_electricity.ToString()); } /// /// 更新累计发电量 /// private void upatePvGenerateTotalValues() { pvGenerate_TodayValuesButton.Text = "累计发电量:" + function.GetAttrState(InverterJinmao_AttrEnum.pv_electricity.ToString()); } /// /// 更新今日用电量 /// private void upatePvLoadTodayValues() { pvLoad_TodayValuesButton.Text = function.GetAttrState(InverterJinmao_AttrEnum.load_electricity_today.ToString()); } /// /// 更新累计用电量 /// private void upatePvLoadTotalValues() { pvLoad_TotalValuesButton.Text = "累计用电量:" + function.GetAttrState(InverterJinmao_AttrEnum.load_electricity.ToString()); } /// /// 更新光伏运行状态 /// 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; } } /// /// 更新光伏发电功率 /// private void upatePvPower() { pvPower_ValuesButton.Text = function.GetAttrState(InverterJinmao_AttrEnum.pv_power.ToString()); } } }