using System;
|
using System.Collections.Generic;
|
using HDL_ON.DAL.Server;
|
using HDL_ON.DriverLayer;
|
using HDL_ON.Entity;
|
using HDL_ON.UI.CSS;
|
using Shared;
|
|
namespace HDL_ON.UI
|
{
|
public class InverterJinmaoPage : FrameLayout
|
{
|
static InverterJinmaoPage 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 loadEle_TodayUintButton;
|
/// <summary>
|
/// 累计用电量数据按钮
|
/// </summary>
|
Button pvLoad_TotalValuesButton;
|
/// <summary>
|
/// 光伏运行状态信息区域
|
/// </summary>
|
FrameLayout pvRunStatusInfoView;
|
/// <summary>
|
/// 光伏运行状态图标按钮
|
/// </summary>
|
Button pvRunStatus_IconButton;
|
/// <summary>
|
/// 光伏运行状态文本按钮
|
/// </summary>
|
Button pvRunStatus_TextButton;
|
/// <summary>
|
/// 光伏发电功能数据按钮
|
/// </summary>
|
Button pvPower_ValuesButton;
|
/// <summary>
|
/// 光伏今日发电量数据按钮
|
/// </summary>
|
Button pvGeneration_TodayValuesButton;
|
/// <summary>
|
/// 光伏本月发电量数据按钮
|
/// </summary>
|
Button pvGeneration_MonthValuesButton;
|
/// <summary>
|
/// 光伏实时用电功率数据按钮
|
/// </summary>
|
Button loadElec_ValuesButton;
|
/// <summary>
|
/// 光伏状态今日用电量数据按钮
|
/// </summary>
|
Button powerUsage_TodayValuesButton;
|
/// <summary>
|
/// 光伏状态本月用电量数据按钮
|
/// </summary>
|
Button loadElec_MonthValuesButton;
|
/// <summary>
|
/// 储能运行状态信息区域
|
/// </summary>
|
FrameLayout esStatus_InfoView;
|
/// <summary>
|
/// 储能运行状态图标按钮
|
/// </summary>
|
Button esRunStatus_Info_IconButton;
|
/// <summary>
|
/// 储能运行状态文本按钮
|
/// </summary>
|
Button esRunStatus_Info_TextButton;
|
/// <summary>
|
/// 储能电池状态图标按钮
|
/// </summary>
|
Button esRunStatus_BatteryIconButton;
|
/// <summary>
|
/// 储能电池状态百分比按钮
|
/// </summary>
|
Button esRunStatus_BatteryValuesButton;
|
/// <summary>
|
/// 储能实时充电功率
|
/// </summary>
|
Button esRunStatus_ChargeValuesButton;
|
/// <summary>
|
/// 储能实时放电功率
|
/// </summary>
|
Button esRunStatus_DischargeValuesButton;
|
|
/// <summary>
|
/// </summary>
|
Button socialContribution_Info1_ValuesButton;
|
/// <summary>
|
/// </summary>
|
Button socialContribution_Info1_UintButton;
|
/// <summary>
|
/// </summary>
|
Button socialContribution_Info2_ValuesButton;
|
/// <summary>
|
/// </summary>
|
Button socialContribution_Info2_UintButton;
|
/// <summary>
|
/// </summary>
|
Button socialContribution_Info3_UintButton;
|
/// <summary>
|
/// </summary>
|
Button socialContribution_Info3_ValuesButton;
|
|
#if __ANDROID__
|
private string fontName = "BEBAS.ttf";
|
#else
|
private string fontName = "BEBAS";
|
#endif
|
|
|
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)- Application.GetRealHeight(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,
|
FontName = fontName,
|
};
|
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.Y = Application.GetRealWidth(37);
|
pvGenerate_TodayValuesButton.Width = pvGenerate_TodayValuesButton.GetTextWidth() + Application.GetRealWidth(4);
|
#endif
|
pvGenerate_todayUintButton = new Button()
|
{
|
Y = Application.GetRealWidth(44),
|
Height = Application.GetRealWidth(17),
|
Text = "kwh",
|
TextColor = CSS_Color.MainBackgroundColor,
|
TextSize = 12,
|
TextAlignment = TextAlignment.CenterLeft,
|
};
|
pvGenerate_todayUintButton.X = pvGenerate_TodayValuesButton.Right - Application.GetRealWidth(2);
|
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,
|
};
|
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);
|
|
|
loadEle_TodayUintButton = new Button()
|
{
|
Y = Application.GetRealWidth(45),
|
Height = Application.GetRealWidth(17),
|
Text = "kwh",
|
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 - 8) - 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,
|
FontName = fontName,
|
};
|
#if __IOS__
|
pvLoad_TodayValuesButton.Y = Application.GetRealWidth(34);
|
pvLoad_TodayValuesButton.X = Application.GetRealWidth(81 - 8) - loadEle_TodayUintButton.Width;
|
#else
|
pvLoad_TodayValuesButton.Y = Application.GetRealWidth(37);
|
pvLoad_TodayValuesButton.X = Application.GetRealWidth(81 - 16) - loadEle_TodayUintButton.Width;
|
#endif
|
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_IconButton = 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_IconButton);
|
|
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/PvBgRunBg.png"
|
};
|
pvEleGenerationInfoView.AddChidren(powerGenerationView);
|
|
var powerGenerationBg = new Button()
|
{
|
UnSelectedImagePath = "FunctionIcon/Acst/Inverter/PvBgRun.png"
|
};
|
powerGenerationView.AddChidren(powerGenerationBg);
|
|
new System.Threading.Thread(() =>
|
{
|
try
|
{
|
int index = 1;
|
float pvPower = 0.00f;
|
while (index < 361)
|
{
|
float.TryParse(function.GetAttrState(InverterJinmao_AttrEnum.pv_power.ToString()), out pvPower);
|
if (pvPower > 0.00f)
|
{
|
Application.RunOnMainThread(() =>
|
{
|
powerGenerationBg.SetRotation(1f * index++);
|
});
|
System.Threading.Thread.Sleep(50);
|
if (index == 361)
|
{
|
index = 1;
|
}
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
MainPage.Log("Error", $"金茂UI控件旋转异常:{ex.Message}");
|
}
|
})
|
{ IsBackground = true }.Start();
|
|
#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,
|
FontName = fontName,
|
};
|
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 = "实时发电功率 (kw)",
|
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,
|
FontName = fontName,
|
};
|
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 = "今日发电量 (kwh)",
|
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,
|
FontName = fontName,
|
};
|
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 = "本月发电量 (kwh)",
|
TextAlignment = TextAlignment.Center,
|
TextColor = CSS_Color.TextualColor,
|
TextSize = 12,
|
};
|
pvEleGenerationInfoView.AddChidren(powerGeneration_MonthTextButton);
|
#endregion
|
|
#region 光伏本年发电量
|
var pvGeneration_YearValuesButton = new Button()
|
{
|
X = Application.GetRealWidth(16 + 212),
|
Y = Application.GetRealWidth(191),
|
Width = Application.GetRealWidth(100),
|
Height = Application.GetRealWidth(24),
|
Text = "---",
|
TextAlignment = TextAlignment.Center,
|
TextColor = CSS_Color.FirstLevelTitleColor,
|
TextSize = 18,
|
IsBold = true,
|
FontName = fontName,
|
};
|
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 = "本年发电量 (kwh)",
|
TextAlignment = TextAlignment.Center,
|
TextColor = CSS_Color.TextualColor,
|
TextSize = 12,
|
};
|
pvEleGenerationInfoView.AddChidren(powerGeneration_YearTextButton);
|
new System.Threading.Thread(() =>
|
{
|
try
|
{
|
var revertObj = new HttpServerRequest().GetSensorHistory("custom_year",
|
function.deviceId, InverterJinmao_AttrEnum.pv_electricity.ToString(), DateTime.Now.Year.ToString());
|
if (revertObj != null)
|
{
|
if (revertObj.Code == StateCode.SUCCESS)
|
{
|
var revertData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<EnvironmentalSensorHistor>>(revertObj.Data.ToString());
|
double totalValues = 0.0;
|
double values = 0.0;
|
foreach (var data in revertData)
|
{
|
double.TryParse(data.fieldValue, out values);
|
totalValues += values;
|
}
|
Application.RunOnMainThread(() =>
|
{
|
pvGeneration_YearValuesButton.Text = totalValues.ToString();
|
if (pvGeneration_YearValuesButton.Width < pvGeneration_YearValuesButton.GetTextWidth())
|
{
|
pvGeneration_YearValuesButton.TextSize = 12;
|
}
|
//while (true)
|
//{
|
// if (pvGeneration_YearValuesButton.Width < pvGeneration_YearValuesButton.GetTextWidth())
|
// {
|
// pvGeneration_YearValuesButton.TextSize=12;
|
// }
|
// else
|
// {
|
// break;
|
// }
|
//}
|
});
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
MainPage.Log("Error", "读取金茂本年发电量数据异常:" + ex.Message);
|
}
|
})
|
{ IsBackground = true }.Start();
|
|
#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/PvBgDischargeBg.png"
|
};
|
electricityUsageStatusView.AddChidren(powerUsageView);
|
|
var powerUsageBg = new Button()
|
{
|
UnSelectedImagePath = "FunctionIcon/Acst/Inverter/PvBgDischarge.png"
|
};
|
powerUsageView.AddChidren(powerUsageBg);
|
|
new System.Threading.Thread(() =>
|
{
|
try
|
{
|
int index = 1;
|
float loadPower = 0.00f;
|
while (index < 361)
|
{
|
float.TryParse(function.GetAttrState(InverterJinmao_AttrEnum.load_active_power.ToString()), out loadPower);
|
if (loadPower > 0.00f)
|
{
|
Application.RunOnMainThread(() =>
|
{
|
powerUsageBg.SetRotation(1f * index++);
|
});
|
System.Threading.Thread.Sleep(50);
|
if (index == 361)
|
{
|
index = 1;
|
}
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
MainPage.Log("Error", $"金茂UI控件旋转异常2:{ex.Message}");
|
}
|
})
|
{ IsBackground = true }.Start();
|
|
loadElec_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,
|
FontName = fontName,
|
};
|
powerUsageView.AddChidren(loadElec_ValuesButton);
|
|
var powerUsage_TextButton = new Button()
|
{
|
Gravity = Gravity.CenterHorizontal,
|
Y = Application.GetRealWidth(78),
|
//Width = Application.GetRealWidth(100),
|
Height = Application.GetRealWidth(25),
|
Text = "实时用电功率 (kw)",
|
TextAlignment = TextAlignment.Center,
|
TextColor = CSS_Color.TextualColor,
|
TextSize = 12,
|
};
|
powerUsageView.AddChidren(powerUsage_TextButton);
|
|
|
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,
|
FontName = fontName,
|
};
|
electricityUsageStatusView.AddChidren(powerUsage_TodayValuesButton);
|
|
var loadElec_TodayTextButton = new Button()
|
{
|
X = Application.GetRealWidth(16),
|
Y = Application.GetRealWidth(220),
|
Width = Application.GetRealWidth(100),
|
Height = Application.GetRealWidth(17),
|
Text = "今日用电量 (kwh)",
|
TextAlignment = TextAlignment.Center,
|
TextColor = CSS_Color.TextualColor,
|
TextSize = 12,
|
};
|
electricityUsageStatusView.AddChidren(loadElec_TodayTextButton);
|
|
loadElec_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,
|
FontName = fontName,
|
};
|
electricityUsageStatusView.AddChidren(loadElec_MonthValuesButton);
|
|
var powerUsage_MonthTextButton = new Button()
|
{
|
X = Application.GetRealWidth(16 + 105),
|
Y = Application.GetRealWidth(220),
|
Width = Application.GetRealWidth(100),
|
Height = Application.GetRealWidth(17),
|
Text = "本月用电量 (kwh)",
|
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,
|
FontName = fontName,
|
};
|
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 = "本年用电量 (kwh)",
|
TextAlignment = TextAlignment.Center,
|
TextColor = CSS_Color.TextualColor,
|
TextSize = 12,
|
};
|
electricityUsageStatusView.AddChidren(powerUsage_YearTextButton);
|
|
|
new System.Threading.Thread(() =>
|
{
|
try
|
{
|
var revertObj = new HttpServerRequest().GetSensorHistory("custom_year",
|
function.deviceId, InverterJinmao_AttrEnum.load_electricity.ToString(), DateTime.Now.Year.ToString());
|
if (revertObj != null)
|
{
|
if (revertObj.Code == StateCode.SUCCESS)
|
{
|
var revertData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<EnvironmentalSensorHistor>>(revertObj.Data.ToString());
|
double totalValues = 0.0;
|
double values = 0.0;
|
foreach (var data in revertData)
|
{
|
double.TryParse(data.fieldValue, out values);
|
totalValues += values;
|
}
|
Application.RunOnMainThread(() =>
|
{
|
powerUsage_YearValuesButton.Text = totalValues.ToString();
|
if (powerUsage_YearValuesButton.Width < powerUsage_YearValuesButton.GetTextWidth())
|
{
|
powerUsage_YearValuesButton.TextSize = 12;
|
}
|
//while (true)
|
//{
|
// if (powerUsage_YearValuesButton.Width < powerUsage_YearValuesButton.GetTextWidth())
|
// {
|
// powerUsage_YearValuesButton.TextSize-=1;
|
// if (powerUsage_YearValuesButton.TextSize <= 10)
|
// {
|
// break;
|
// }
|
// }
|
// else
|
// {
|
// break;
|
// }
|
//}
|
});
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
MainPage.Log("Error", "读取金茂本年发电量数据异常:" + ex.Message);
|
}
|
})
|
{ IsBackground = true }.Start();
|
|
#endregion
|
|
|
#endregion
|
|
if (function.attributes.Find((obj) => obj.key == InverterJinmao_AttrEnum.ess_status.ToString()) != null)
|
{
|
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);
|
|
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);
|
|
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);
|
|
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);
|
|
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,
|
};
|
esRunStatus_BatteryValuesButton.Width = esRunStatus_BatteryValuesButton.GetTextWidth() + Application.GetRealWidth(8);
|
esRunStatus_BatteryValuesButton.X = Application.GetRealWidth(343 - 12) - esRunStatus_BatteryValuesButton.Width;
|
esStatusView.AddChidren(esRunStatus_BatteryValuesButton);
|
|
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",
|
SelectedImagePath = "FunctionIcon/Acst/Inverter/BatteryIconCharg100.png",
|
IsSelected = esRunStatus_BatteryValuesButton.Text == "100%"
|
};
|
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);
|
|
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,
|
FontName = fontName,
|
};
|
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 = "实时充电功率(kw)",
|
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);
|
|
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,
|
FontName = fontName,
|
};
|
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 = "实时放电功率(kw)",
|
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.GetRealWidth(142),//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_ValuesView = new FrameLayout()
|
{
|
Y = Application.GetRealWidth(68),
|
Height = Application.GetRealWidth(25),
|
};
|
socialContribution_InfoView_1.AddChidren(socialContribution_Info1_ValuesView);
|
|
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,
|
FontName = fontName,
|
};
|
socialContribution_Info1_ValuesButton.Width = socialContribution_Info1_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
|
socialContribution_Info1_ValuesView.AddChidren(socialContribution_Info1_ValuesButton);
|
|
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,
|
TextAlignment = TextAlignment.BottomLeft,
|
TextColor = CSS_Color.FirstLevelTitleColor,
|
};
|
socialContribution_Info1_ValuesView.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_ValuesView = new FrameLayout()
|
{
|
Y = Application.GetRealWidth(68),
|
Height = Application.GetRealWidth(25),
|
};
|
socialContribution_InfoView_2.AddChidren(socialContribution_Info2_ValuesView);
|
|
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,
|
FontName = fontName,
|
};
|
socialContribution_Info2_ValuesButton.Width = socialContribution_Info2_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
|
socialContribution_Info2_ValuesView.AddChidren(socialContribution_Info2_ValuesButton);
|
|
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_Info2_ValuesView.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_ValuesView = new FrameLayout()
|
{
|
Y = Application.GetRealWidth(68),
|
Height = Application.GetRealWidth(25),
|
};
|
socialContribution_InfoView_3.AddChidren(socialContribution_Info3_ValuesView);
|
|
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,
|
FontName = fontName,
|
};
|
socialContribution_Info3_ValuesButton.Width = socialContribution_Info3_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
|
socialContribution_Info3_ValuesView.AddChidren(socialContribution_Info3_ValuesButton);
|
|
socialContribution_Info3_UintButton = new Button()
|
{
|
X = socialContribution_Info3_ValuesButton.Right - Application.GetRealWidth(4),
|
//Y = Application.GetRealWidth(68),
|
Width = Application.GetRealWidth(50),
|
//Height = Application.GetRealWidth(23),
|
Text = "棵",
|
TextSize = 12,
|
TextColor = CSS_Color.FirstLevelTitleColor,
|
TextAlignment = TextAlignment.BottomLeft,
|
};
|
socialContribution_Info3_ValuesView.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
|
|
Control.Ins.SendReadCommand(function);
|
}
|
/// <summary>
|
/// 更新界面数据
|
/// </summary>
|
/// <param name="temp"></param>
|
public static void UpdateStatus(Function temp)
|
{
|
if (bodyView == null)
|
{
|
return;
|
}
|
Application.RunOnMainThread(() =>
|
{
|
try
|
{
|
/// 更新今日发电量
|
bodyView.upatePvGenerateTodayValues();
|
/// 更新累计发电量
|
bodyView.upatePvGenerateTotalValues();
|
/// 更新今日用电量
|
bodyView.upatePvLoadTodayValues();
|
/// 更新累计用电量
|
bodyView.upatePvLoadTotalValues();
|
/// 更新光伏运行状态
|
bodyView.upatePvRunStatus();
|
/// 更新光伏发电功率
|
bodyView.updatePvPower();
|
/// 更新光伏本月发电量
|
bodyView.upatePvGenerateMonthValues();
|
/// 更新光伏用电功率
|
bodyView.updateLoadElec();
|
///更新光伏状态本月用电量
|
bodyView.updateLoadElecMonthValues();
|
//更新储能运行状态
|
bodyView.updateEsRunStates();
|
//更新储能电池百分比
|
bodyView.updateEsBatterySoc();
|
//更新储能实时充电状态
|
bodyView.updateEsCharge();
|
//更新储能实时放电状态
|
bodyView.updateEsDischarge();
|
bodyView.updateSocialContribution1();
|
bodyView.updateSocialContribution2();
|
bodyView.updateSocialContribution3();
|
}
|
catch (Exception ex)
|
{
|
MainPage.Log("Error", $"金茂光伏更新异常:{ex.StackTrace}");
|
}
|
});
|
}
|
|
/// <summary>
|
/// 更新今日发电量
|
/// </summary>
|
private void upatePvGenerateTodayValues()
|
{
|
pvGenerate_TodayValuesButton.Text = pvGeneration_TodayValuesButton.Text = function.GetAttrState(InverterJinmao_AttrEnum.pv_electricity_today.ToString());
|
|
#if __IOS__
|
pvGenerate_TodayValuesButton.TextAlignment = TextAlignment.TopLeft;
|
pvGenerate_TodayValuesButton.Width = pvGenerate_TodayValuesButton.GetTextWidth() + Application.GetRealWidth(8);
|
#else
|
pvGenerate_TodayValuesButton.TextAlignment = TextAlignment.BottomLeft;
|
pvGenerate_TodayValuesButton.Y = Application.GetRealWidth(37);
|
pvGenerate_TodayValuesButton.Width = pvGenerate_TodayValuesButton.GetTextWidth() + Application.GetRealWidth(4);
|
#endif
|
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 upatePvGenerateTotalValues()
|
{
|
pvGenerate_TotalValuesButton.Text = "累计发电量:" + function.GetAttrState(InverterJinmao_AttrEnum.pv_electricity.ToString());
|
}
|
/// <summary>
|
/// 更新今日用电量
|
/// </summary>
|
private void upatePvLoadTodayValues()
|
{
|
pvLoad_TodayValuesButton.Text = powerUsage_TodayValuesButton.Text = function.GetAttrState(InverterJinmao_AttrEnum.load_electricity_today.ToString());
|
|
#if __IOS__
|
pvLoad_TodayValuesButton.Y = Application.GetRealWidth(34);
|
pvLoad_TodayValuesButton.X = Application.GetRealWidth(81 - 8) - loadEle_TodayUintButton.Width;
|
#else
|
pvLoad_TodayValuesButton.Y = Application.GetRealWidth(37);
|
pvLoad_TodayValuesButton.X = Application.GetRealWidth(81 - 16) - loadEle_TodayUintButton.Width;
|
#endif
|
}
|
/// <summary>
|
/// 更新本月用电量
|
/// </summary>
|
private void updateLoadElecMonthValues()
|
{
|
loadElec_MonthValuesButton.Text = function.GetAttrState(InverterJinmao_AttrEnum.load_electricity_month.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_IconButton.UnSelectedImagePath = "FunctionIcon/Acst/Inverter/PvIconRun.png";
|
pvRunStatus_TextButton.Text = "运行";
|
pvRunStatus_TextButton.TextColor = 0xFF4484F4;
|
break;
|
case "fault":
|
pvRunStatusInfoView.BackgroundColor = 0x15FF4747;
|
pvRunStatus_IconButton.UnSelectedImagePath = "FunctionIcon/Acst/Inverter/PvIconFault.png";
|
pvRunStatus_TextButton.Text = "故障";
|
pvRunStatus_TextButton.TextColor = 0xFFFF4747;
|
break;
|
case "standby":
|
pvRunStatusInfoView.BackgroundColor = 0x15798394;
|
pvRunStatus_IconButton.UnSelectedImagePath = "FunctionIcon/Acst/Inverter/PvIconStandby.png";
|
pvRunStatus_TextButton.Text = "待机";
|
pvRunStatus_TextButton.TextColor = 0xFF798394;
|
break;
|
}
|
|
}
|
/// <summary>
|
/// 更新光伏发电功率
|
/// </summary>
|
private void updatePvPower()
|
{
|
pvPower_ValuesButton.Text = function.GetAttrState(InverterJinmao_AttrEnum.pv_power.ToString());
|
}
|
/// <summary>
|
/// 更新光伏用电功率
|
/// </summary>
|
private void updateLoadElec()
|
{
|
loadElec_ValuesButton.Text = function.GetAttrState(InverterJinmao_AttrEnum.load_active_power.ToString());
|
}
|
/// <summary>
|
/// 更新储能运行状态
|
/// </summary>
|
private void updateEsRunStates()
|
{
|
if (function.attributes.Find((obj) => obj.key == InverterJinmao_AttrEnum.ess_status.ToString()) != null)
|
{
|
switch (function.GetAttrState(InverterJinmao_AttrEnum.ess_status.ToString()))
|
{
|
case "charge":
|
esStatus_InfoView.BackgroundColor = 0x1500C22D;
|
esRunStatus_Info_TextButton.TextColor = esRunStatus_BatteryValuesButton.TextColor = 0xFF00C22D;
|
esRunStatus_Info_IconButton.UnSelectedImagePath = "FunctionIcon/Acst/Inverter/EsIconCharg.png";
|
esRunStatus_Info_TextButton.Text = "充电";
|
esRunStatus_BatteryIconButton.UnSelectedImagePath = "FunctionIcon/Acst/Inverter/BatteryIconCharg.png";
|
esRunStatus_BatteryIconButton.SelectedImagePath = "FunctionIcon/Acst/Inverter/BatteryIconCharg100.png";
|
break;
|
case "discharge":
|
esStatus_InfoView.BackgroundColor = 0x15FC9C04;
|
esRunStatus_Info_TextButton.TextColor = esRunStatus_BatteryValuesButton.TextColor = 0xFFFC9C04;
|
esRunStatus_Info_IconButton.UnSelectedImagePath = "FunctionIcon/Acst/Inverter/EsIconDischarge.png";
|
esRunStatus_Info_TextButton.Text = "放电";
|
esRunStatus_BatteryIconButton.UnSelectedImagePath = "FunctionIcon/Acst/Inverter/BatteryIconDischarg.png";
|
esRunStatus_BatteryIconButton.SelectedImagePath = "FunctionIcon/Acst/Inverter/BatteryIconDischarg100.png";
|
break;
|
case "shutdown":
|
esStatus_InfoView.BackgroundColor = 0x15798394;
|
esRunStatus_Info_TextButton.TextColor = esRunStatus_BatteryValuesButton.TextColor = 0xFF798394;
|
esRunStatus_Info_IconButton.UnSelectedImagePath = "FunctionIcon/Acst/Inverter/EsIconShutdown.png";
|
esRunStatus_Info_TextButton.Text = "停机";
|
esRunStatus_BatteryIconButton.UnSelectedImagePath = "FunctionIcon/Acst/Inverter/BatteryIconShutdown.png";
|
esRunStatus_BatteryIconButton.SelectedImagePath = "FunctionIcon/Acst/Inverter/BatteryIconShutdown100.png";
|
break;
|
case "fault":
|
esStatus_InfoView.BackgroundColor = 0x15FF4747;
|
esRunStatus_Info_TextButton.TextColor = esRunStatus_BatteryValuesButton.TextColor = 0xFFFF4747;
|
esRunStatus_Info_IconButton.UnSelectedImagePath = "FunctionIcon/Acst/Inverter/EsIconFault.png";
|
esRunStatus_Info_TextButton.Text = "故障";
|
esRunStatus_BatteryIconButton.UnSelectedImagePath = "FunctionIcon/Acst/Inverter/BatteryIconFault.png";
|
esRunStatus_BatteryIconButton.SelectedImagePath = "FunctionIcon/Acst/Inverter/BatteryIconFault100.png";
|
break;
|
}
|
}
|
}
|
/// <summary>
|
/// 更新储能电池百分比状态
|
/// </summary>
|
private void updateEsBatterySoc()
|
{
|
if (function.attributes.Find((obj) => obj.key == InverterJinmao_AttrEnum.ess_status.ToString()) != null)
|
{
|
esRunStatus_BatteryValuesButton.Text = function.GetAttrState(InverterJinmao_AttrEnum.battery_soc.ToString()) + "%";
|
if (esRunStatus_BatteryIconButton.Text == "100%")
|
{
|
esRunStatus_BatteryIconButton.IsSelected = true;
|
}
|
}
|
}
|
/// <summary>
|
/// 更新储能实时充电状态
|
/// </summary>
|
private void updateEsCharge()
|
{
|
if (function.attributes.Find((obj) => obj.key == InverterJinmao_AttrEnum.ess_status.ToString()) != null)
|
{
|
esRunStatus_ChargeValuesButton.Text = function.GetAttrState(InverterJinmao_AttrEnum.ess_charge_power.ToString());
|
}
|
}
|
/// <summary>
|
/// 更新储能实时放电状态
|
/// </summary>
|
private void updateEsDischarge()
|
{
|
if (function.attributes.Find((obj) => obj.key == InverterJinmao_AttrEnum.ess_status.ToString()) != null)
|
{
|
esRunStatus_DischargeValuesButton.Text = function.GetAttrState(InverterJinmao_AttrEnum.ess_discharg_power.ToString());
|
}
|
}
|
/// <summary>
|
/// 更新社会贡献1数据UI
|
/// </summary>
|
private void updateSocialContribution1()
|
{
|
socialContribution_Info1_ValuesButton.Text = function.GetAttrState(InverterJinmao_AttrEnum.coal.ToString());
|
socialContribution_Info1_ValuesButton.Width = socialContribution_Info1_ValuesButton.GetTextWidth();
|
if (socialContribution_Info1_ValuesButton.Width > Application.GetRealWidth(61))
|
{
|
socialContribution_Info1_ValuesButton.TextSize = 14;
|
socialContribution_Info1_ValuesButton.Width = socialContribution_Info1_ValuesButton.GetTextWidth();
|
socialContribution_Info1_UintButton.Height = Application.GetRealWidth(25);
|
}
|
#if __IOS__
|
socialContribution_Info1_ValuesButton.Width += Application.GetRealWidth(6);
|
socialContribution_Info1_UintButton.X = socialContribution_Info1_ValuesButton.Right - Application.GetRealWidth(4);
|
#else
|
socialContribution_Info1_UintButton.X = socialContribution_Info1_ValuesButton.Right +Application.GetRealWidth(2);
|
#endif
|
}
|
/// <summary>
|
/// 更新社会贡2献数据UI
|
/// </summary>
|
private void updateSocialContribution2()
|
{
|
socialContribution_Info2_ValuesButton.Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.co2.ToString());
|
socialContribution_Info2_ValuesButton.Width = socialContribution_Info2_ValuesButton.GetTextWidth();
|
if (socialContribution_Info2_ValuesButton.Width > Application.GetRealWidth(61))
|
{
|
socialContribution_Info2_ValuesButton.TextSize = 14;
|
socialContribution_Info2_ValuesButton.Width = socialContribution_Info2_ValuesButton.GetTextWidth();
|
}
|
#if __IOS__
|
socialContribution_Info2_ValuesButton.Width += Application.GetRealWidth(6);
|
socialContribution_Info2_UintButton.X = socialContribution_Info2_ValuesButton.Right - Application.GetRealWidth(4);
|
#else
|
socialContribution_Info2_UintButton.X = socialContribution_Info2_ValuesButton.Right +Application.GetRealWidth(2);
|
#endif
|
|
}
|
/// <summary>
|
/// 更新社会贡3献数据UI
|
/// </summary>
|
private void updateSocialContribution3()
|
{
|
socialContribution_Info3_ValuesButton.Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.trees.ToString());
|
socialContribution_Info3_ValuesButton.Width = socialContribution_Info3_ValuesButton.GetTextWidth();
|
if (socialContribution_Info3_ValuesButton.Width > Application.GetRealWidth(61))
|
{
|
socialContribution_Info3_ValuesButton.TextSize = 14;
|
socialContribution_Info3_ValuesButton.Width = socialContribution_Info3_ValuesButton.GetTextWidth();
|
socialContribution_Info3_UintButton.Height = Application.GetRealWidth(25);
|
}
|
#if __IOS__
|
socialContribution_Info3_ValuesButton.Width += Application.GetRealWidth(6);
|
socialContribution_Info3_UintButton.X = socialContribution_Info3_ValuesButton.Right - Application.GetRealWidth(4);
|
#else
|
socialContribution_Info3_UintButton.X = socialContribution_Info3_ValuesButton.Right +Application.GetRealWidth(2);
|
#endif
|
}
|
}
|
}
|