Add display messages, Battery alarms and warnings
This commit is contained in:
parent
c2f32cdc95
commit
4ee7aebf95
|
@ -99,12 +99,25 @@ internal static class Program
|
||||||
|
|
||||||
StatusRecord ReadStatus()
|
StatusRecord ReadStatus()
|
||||||
{
|
{
|
||||||
|
Console.WriteLine(" Reading AcDC");
|
||||||
var acDc = acDcDevices.Read();
|
var acDc = acDcDevices.Read();
|
||||||
|
|
||||||
|
Console.WriteLine(" Reading dcDc");
|
||||||
var dcDc = dcDcDevices.Read();
|
var dcDc = dcDcDevices.Read();
|
||||||
|
|
||||||
|
Console.WriteLine(" Reading battery");
|
||||||
var battery = batteryDevices.Read();
|
var battery = batteryDevices.Read();
|
||||||
|
|
||||||
|
Console.WriteLine(" Reading relays");
|
||||||
var relays = saliMaxRelaysDevice.Read();
|
var relays = saliMaxRelaysDevice.Read();
|
||||||
|
|
||||||
|
Console.WriteLine(" loadOnAcIsland");
|
||||||
var loadOnAcIsland = acIslandLoadMeter.Read();
|
var loadOnAcIsland = acIslandLoadMeter.Read();
|
||||||
|
|
||||||
|
Console.WriteLine(" Reading gridMeter");
|
||||||
var gridMeter = gridMeterDevice.Read();
|
var gridMeter = gridMeterDevice.Read();
|
||||||
|
|
||||||
|
Console.WriteLine(" Reading pvOnDc");
|
||||||
var pvOnDc = amptDevice.Read();
|
var pvOnDc = amptDevice.Read();
|
||||||
|
|
||||||
var pvOnAcGrid = AcPowerDevice.Null;
|
var pvOnAcGrid = AcPowerDevice.Null;
|
||||||
|
@ -241,17 +254,15 @@ internal static class Program
|
||||||
var dcLinkVoltage = TextBlock.AlignCenterHorizontal("",
|
var dcLinkVoltage = TextBlock.AlignCenterHorizontal("",
|
||||||
s.DcDc.Dc.Link.Voltage.ToDisplayString(),
|
s.DcDc.Dc.Link.Voltage.ToDisplayString(),
|
||||||
"");
|
"");
|
||||||
|
|
||||||
//var inverterPowerByPhase = new ActivePower[(Int32)s.AcDc.Ac.L1.Power.Active, (Int32)s.AcDc.Ac.L2.Power.Active, (Int32)s.AcDc.Ac.L3.Power.Active];
|
|
||||||
|
|
||||||
// Voltage Measurement Values
|
|
||||||
//var inverterVoltage = new Voltage [(Int32)s.AcDc.Ac.L1.Voltage, (Int32)s.AcDc.Ac.L2.Voltage, (Int32)s.AcDc.Ac.L3.Voltage];
|
|
||||||
//var dcLinkVoltage = s.DcDc.Dc.Link.Voltage;
|
|
||||||
var dc48Voltage = s.DcDc.Dc.Battery.Voltage.ToDisplayString();
|
var dc48Voltage = s.DcDc.Dc.Battery.Voltage.ToDisplayString();
|
||||||
var batteryVoltage = s.Battery.Dc.Voltage.ToDisplayString();
|
var batteryVoltage = s.Battery.Dc.Voltage.Value.RoundToSignificantDigits(3);
|
||||||
var batterySoc = s.Battery.Soc.ToDisplayString();
|
var batterySoc = s.Battery.Devices.Any()? s.Battery.Devices.Average(b=>b.Soc).Percent().ToDisplayString() : "0";
|
||||||
var batteryCurrent = s.Battery.Dc.Current.ToDisplayString();
|
var batteryCurrent = s.Battery.Dc.Current.ToDisplayString();
|
||||||
var batteryTemp = s.Battery.Temperature.ToDisplayString();
|
var batteryTemp = s.Battery.Temperature.ToDisplayString();
|
||||||
|
var batteryHeatingCurrent = s.Battery.HeatingCurrent.ToDisplayString();
|
||||||
|
var anyBatteryAlarm = s.Battery.Alarms.Any();
|
||||||
|
var anyBatteryWarning = s.Battery.Warnings.Any();
|
||||||
|
|
||||||
var gridBusColumn = ColumnBox("Pv", "Grid Bus", "Load" , gridVoltageByPhase , gridLoadPower);
|
var gridBusColumn = ColumnBox("Pv", "Grid Bus", "Load" , gridVoltageByPhase , gridLoadPower);
|
||||||
var islandBusColumn = ColumnBox("Pv", "Island Bus", "Load" , inverterPowerByPhase, islandLoadPower);
|
var islandBusColumn = ColumnBox("Pv", "Island Bus", "Load" , inverterPowerByPhase, islandLoadPower);
|
||||||
|
@ -269,12 +280,15 @@ internal static class Program
|
||||||
var batteryAvgBox = TextBlock.AlignLeft(batteryVoltage,
|
var batteryAvgBox = TextBlock.AlignLeft(batteryVoltage,
|
||||||
batterySoc,
|
batterySoc,
|
||||||
batteryCurrent,
|
batteryCurrent,
|
||||||
batteryTemp)
|
batteryTemp,
|
||||||
|
batteryHeatingCurrent,
|
||||||
|
anyBatteryWarning,
|
||||||
|
anyBatteryAlarm)
|
||||||
.TitleBox("Battery");
|
.TitleBox("Battery");
|
||||||
|
|
||||||
|
|
||||||
//////////////////// Batteries /////////////////////////
|
//////////////////// Batteries /////////////////////////
|
||||||
|
|
||||||
IReadOnlyList<TextBlock> batteryBoxes = s.Battery
|
IReadOnlyList<TextBlock> batteryBoxes = s.Battery
|
||||||
.Devices
|
.Devices
|
||||||
.Select(CreateIndividualBattery)
|
.Select(CreateIndividualBattery)
|
||||||
|
@ -303,13 +317,17 @@ internal static class Program
|
||||||
|
|
||||||
private static TextBlock CreateIndividualBattery(Battery48TlRecord battery, Int32 i)
|
private static TextBlock CreateIndividualBattery(Battery48TlRecord battery, Int32 i)
|
||||||
{
|
{
|
||||||
|
var batteryWarnings = battery.Warnings.Any();
|
||||||
|
var batteryAlarms = battery.Alarms.Any();
|
||||||
|
|
||||||
var content = TextBlock.AlignLeft(battery.Dc.Voltage.ToDisplayString(),
|
var content = TextBlock.AlignLeft(battery.Dc.Voltage.ToDisplayString(),
|
||||||
battery.Soc.ToDisplayString(),
|
battery.Soc.ToDisplayString(),
|
||||||
battery.Dc.Current.ToDisplayString(),
|
battery.Dc.Current.ToDisplayString(),
|
||||||
battery.Temperatures.Cells.Average.ToDisplayString(),
|
battery.Temperatures.Cells.Average.ToDisplayString(),
|
||||||
battery.BusCurrent.ToDisplayString(),
|
// battery.BusCurrent.ToDisplayString(),
|
||||||
battery.HeatingCurrent.ToDisplayString());
|
battery.HeatingCurrent.ToDisplayString(),
|
||||||
|
batteryWarnings,
|
||||||
|
batteryAlarms);
|
||||||
|
|
||||||
var box = content.TitleBox($"Battery {i + 1}");
|
var box = content.TitleBox($"Battery {i + 1}");
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue