using System.Diagnostics.CodeAnalysis; using InnovEnergy.Lib.Devices.Battery48TL.DataTypes; using InnovEnergy.Lib.Protocols.Modbus.Reflection.Attributes; using InnovEnergy.Lib.SrcGen.Attributes; namespace InnovEnergy.Lib.Devices.Battery48TL; #pragma warning disable CS0169, CS0649 [SuppressMessage("ReSharper", "InconsistentNaming")] [SuppressMessage("ReSharper", "UnusedMember.Global")] [SuppressMessage("ReSharper", "UnusedAutoPropertyAccessor.Local")] [BigEndian] public partial class Battery48TlRecord { [InputRegister(1004)] private UInt16 _LedStates; [InputRegister(1005)] private UInt64 _WarningFlags; [InputRegister(1009)] private UInt64 _AlarmFlags; [InputRegister(1013)] private UInt16 _IoStates; [InputRegister(999, Scale = 0.01)] private Double _DcVoltage; [InputRegister(1000, Scale = 0.01, Offset = -10000)] private Double _DcCurrent; [InputRegister(1053, Scale = 0.1)] private Double _Soc; [InputRegister(1014, Scale = 0.1, Offset = -400)] private Double _TemperaturesBoard; [InputRegister(1015, Scale = 0.1, Offset = -400)] private Double _TemperaturesCellsCenter; [InputRegister(1016, Scale = 0.1, Offset = -400)] private Double _TemperaturesCellsLeft; [InputRegister(1017, Scale = 0.1, Offset = -400)] private Double _TemperaturesCellsRight; [InputRegister(1003, Scale = 0.1, Offset = -400)] private Double _TemperaturesCellsAverage; private LedState ParseLed(LedColor led) => (LedState)((_LedStates >> (Int32)led) & 3); // public Decimal CellsVoltage { get; init; } // // public Decimal MaxChargingPower { get; init; } // public Decimal MaxDischargingPower { get; init; } }