using System.Diagnostics.CodeAnalysis; using InnovEnergy.Lib.Devices.Trumpf.TruConvert; namespace InnovEnergy.Lib.Devices.Trumpf.TruConvertAc; using AlarmMessages = IReadOnlyList; using WarningMessages = IReadOnlyList; [SuppressMessage("ReSharper", "InconsistentNaming")] public record TruConvertAcStatus { public MainState MainState { get; init; } // 5000 public UInt16 NumberOfConnectedSlaves { get; init; } // 5001 public UInt16 NumberOfConnectedSubSlaves { get; init; } public Decimal AcDcNominalGridFrequency { get; init; } public Decimal AcDcNominalGridVoltage { get; init; } public Decimal AcDcActNominalPower { get; init; } public AcDcGridType AcDcActiveGridType { get; init; } public Decimal AcDcPowerLimitingStatusAct { get; init; } public Decimal AcDcDcVoltageReference { get; init; } public Decimal AcDcDcLinkVoltageMinAct { get; init; } public Decimal AcDcDcLinkVoltageMaxAct { get; init; } public Decimal AcDcDcLinkChargedMinVoltage { get; init; } public Decimal AcDcStmActCustomer { get; init; } public Decimal ApparentPowerAcL1 { get; init; } public Decimal ApparentPowerAcL2 { get; init; } public Decimal ApparentPowerAcL3 { get; init; } public Decimal AcDcOverloadIntegratorStatusL1 { get; init; } public Decimal AcDcOverloadIntegratorStatusL2 { get; init; } public Decimal AcDcOverloadIntegratorStatusL3 { get; init; } public Decimal PowerAcL1 { get; init; } public Decimal PowerAcL2 { get; init; } public Decimal PowerAcL3 { get; init; } public Decimal PhaseCurrentL1 { get; init; } public Decimal PhaseCurrentL2 { get; init; } public Decimal PhaseCurrentL3 { get; init; } public Decimal GridVoltageL1 { get; init; } public Decimal GridVoltageL2 { get; init; } public Decimal GridVoltageL3 { get; init; } public Decimal CosPhiL1 { get; init; } public Decimal CosPhiL2 { get; init; } public Decimal CosPhiL3 { get; init; } public Decimal SumPowerL1 { get; init; } public Decimal SumPowerL2 { get; init; } public Decimal SumPowerL3 { get; init; } public Decimal GridFrequency { get; init; } public Decimal ActualDcLinkVoltageUpperHalf { get; init; } public Decimal ActualDcLinkVoltageLowerHalf { get; init; } public Decimal ActualDcLinkVoltageUpperHalfExt { get; init; } public Decimal ActualDcLinkVoltageLowerHalfExt { get; init; } public Decimal VoltageIntNtoPE { get; init; } public Decimal VoltageExtNtoPE { get; init; } public Decimal InletAirTemperature { get; init; } public WarningMessages Warnings { get; init; } = Array.Empty(); public AlarmMessages Alarms { get; init; } = Array.Empty(); public Boolean PowerOperation { get; init; } public Decimal AcSignedPowerValue { get; init; }// this is in control but we also need to read data //public Int16 AcSignedPowerValue2 { get; init; } = 0; // For Test }