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(88) ] public UInt32 Timestamp { get; private set; } [HoldingRegister (90, Scale = .001)] public Double Current { get; private set; } [HoldingRegister(91, Scale = .001)] public Double Voltage { get; private set; } [HoldingRegister(93, Scale = .001)] public Double String1Voltage { get; private set; } [HoldingRegister(95, Scale = .001)] public Double String2Voltage { get; private set; } [HoldingRegister(97, Scale = .001)] public Double ProductionToday { get; private set; } //scale 0.001 because we want a Kwh instead of Wh [HoldingRegister(99, Scale = .001)] public Double String1Current { get; private set; } [HoldingRegister(100, Scale = .001)] public Double String2Current { get; private set; } }