using System.Diagnostics.CodeAnalysis; using InnovEnergy.Lib.Devices.Battery48TL.DataTypes; using InnovEnergy.Lib.Protocols.Modbus.Reflection.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 _CellsVoltage; [InputRegister(1001, Scale = 0.01)] private Double _BusVoltage; [InputRegister(1000, Scale = 0.01, Offset = -10000)] private Double _CellsCurrent; [InputRegister(1062, Scale = 0.01, Offset = -10000)] private Double _BusCurrent; [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; [InputRegister(1054)] private Double _FwVersion; [InputRegister(1055)] private Double _SerialNum1; [InputRegister(1056)] private Double _SerialNum2; [InputRegister(1057)] private Double _SerialNum3; [InputRegister(1058)] private Double _SerialNum4; [InputRegister(1059)] private Double _LimpBitMap; [InputRegister(1060)] private Double _BatteryState1; [InputRegister(1061)] private Double _BatteryState2; 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; } }