Innovenergy_trunk/csharp/Lib/Devices/AMPT/StringOptimizerRegisters.cs

26 lines
1.3 KiB
C#

using System.Diagnostics.CodeAnalysis;
using InnovEnergy.Lib.Protocols.Modbus.Reflection.Attributes;
namespace InnovEnergy.Lib.Devices.AMPT;
[SuppressMessage("ReSharper", "UnusedMember.Global")]
[SuppressMessage("ReSharper", "UnusedAutoPropertyAccessor.Local")]
// the scale here can be read from CommunicationUnitRegisters, It looks like fixed value
[OneBasedAddressing][BigEndian]
public record StringOptimizerRegisters
{
[HoldingRegister<UInt32>(88) ] public UInt32 Timestamp { get; private set; }
[HoldingRegister<Int16> (90, Scale = .001)] public Double Current { get; private set; }
[HoldingRegister<UInt32>(91, Scale = .001)] public Double Voltage { get; private set; }
[HoldingRegister<UInt32>(93, Scale = .001)] public Double String1Voltage { get; private set; }
[HoldingRegister<UInt32>(95, Scale = .001)] public Double String2Voltage { get; private set; }
[HoldingRegister<UInt32>(97, Scale = .001)] public Double ProductionToday { get; private set; } //scale 0.001 because we want a Kwh instead of Wh
[HoldingRegister<Int16>(99, Scale = .001)] public Double String1Current { get; private set; }
[HoldingRegister<Int16>(100, Scale = .001)] public Double String2Current { get; private set; }
}