44 lines
1.3 KiB
C#
44 lines
1.3 KiB
C#
/*using InnovEnergy.Lib.Devices.IEM3kGridMeter;
|
|
using InnovEnergy.Lib.Protocols.DBus.Protocol.DataTypes;
|
|
using InnovEnergy.Lib.Victron.VeDBus;
|
|
|
|
namespace InnovEnergy.App.SchneiderDriver;
|
|
|
|
|
|
// TODO: Does not compile
|
|
public record Signal(Func<Iem3KGridMeterRegisters, object> Source, ObjectPath Path, string Format = "")
|
|
{
|
|
public VeProperty ToVeProperty(Iem3KGridMeterRegisters status)
|
|
{
|
|
var value = Source(status);
|
|
return new VeProperty(Path, value, string.Format($"{{0:{Format}}}", value));
|
|
}
|
|
}*/
|
|
|
|
using InnovEnergy.Lib.Devices.IEM3kGridMeter;
|
|
using InnovEnergy.Lib.Protocols.DBus.Protocol.DataTypes;
|
|
using InnovEnergy.Lib.Victron.VeDBus;
|
|
using System;
|
|
|
|
namespace InnovEnergy.App.SchneiderDriver
|
|
{
|
|
public record Signal(Func<Iem3KGridMeterRegisters, object> Source, ObjectPath Path, string Format = "")
|
|
{
|
|
public VeProperty ToVeProperty(Iem3KGridMeterRegisters status)
|
|
{
|
|
if (status == null)
|
|
{
|
|
Console.WriteLine($"Status is null for path: {Path}");
|
|
// Return a default VeProperty if status is null
|
|
return new VeProperty(Path, default, String.Format($"{{0:{Format}}}", default));
|
|
}
|
|
|
|
var value = Source(status);
|
|
return new VeProperty(Path, value, String.Format($"{{0:{Format}}}", value));
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|