2023-05-06 13:41:20 +00:00
|
|
|
using System.Diagnostics.CodeAnalysis;
|
|
|
|
using InnovEnergy.Lib.Protocols.Modbus.Reflection.Attributes;
|
|
|
|
|
|
|
|
namespace InnovEnergy.Lib.Devices.AMPT;
|
|
|
|
|
|
|
|
|
|
|
|
[SuppressMessage("ReSharper", "UnusedMember.Global")]
|
|
|
|
[SuppressMessage("ReSharper", "UnusedAutoPropertyAccessor.Local")]
|
|
|
|
|
2024-01-19 15:58:31 +00:00
|
|
|
// the scale here can be read from CommunicationUnitRegisters, It looks like fixed value
|
2023-05-06 13:41:20 +00:00
|
|
|
[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; }
|
|
|
|
|
2024-02-05 14:37:27 +00:00
|
|
|
[HoldingRegister<UInt32>(97, Scale = .001)] public Double ProductionToday { get; private set; } //scale 0.001 because we want a Kwh instead of Wh
|
2023-05-06 13:41:20 +00:00
|
|
|
|
|
|
|
[HoldingRegister<Int16>(99, Scale = .001)] public Double String1Current { get; private set; }
|
|
|
|
[HoldingRegister<Int16>(100, Scale = .001)] public Double String2Current { get; private set; }
|
|
|
|
}
|