diff --git a/csharp/Lib/Devices/BatteryDeligreen/AlarmMessage.cs b/csharp/Lib/Devices/BatteryDeligreen/AlarmBitMessage.cs similarity index 79% rename from csharp/Lib/Devices/BatteryDeligreen/AlarmMessage.cs rename to csharp/Lib/Devices/BatteryDeligreen/AlarmBitMessage.cs index 89691dbf1..ebad3e245 100644 --- a/csharp/Lib/Devices/BatteryDeligreen/AlarmMessage.cs +++ b/csharp/Lib/Devices/BatteryDeligreen/AlarmBitMessage.cs @@ -1,20 +1,38 @@ namespace InnovEnergy.Lib.Devices.BatteryDeligreen; -public class AlarmMessage +public class AlarmBitMessage { - // Enum for Alarm Event 1 - public enum AlarmEvent1 + + public readonly struct AlarmEvent1_ { - VoltageSensorFault, - TemperatureSensorFault, - CurrentSensorFault, - KeySwitchFault, - CellVoltageDropoutFault, - ChargeSwitchFault, - DischargeSwitchFault, - CurrentLimitSwitchFault + private readonly Byte _record; + + public Boolean VoltageSensorFault => (_record & (1 << 0)) == 1; + public Boolean TemperatureSensorFault => (_record & (1 << 1)) == 1; + public Boolean CurrentSensorFault => (_record & (1 << 2)) == 1; + public Boolean KeySwitchFault => (_record & (1 << 3)) == 1; + public Boolean CellVoltageDropoutFault => (_record & (1 << 4)) == 1; + public Boolean ChargeSwitchFault => (_record & (1 << 5)) == 1; + public Boolean DischargeSwitchFault => (_record & (1 << 6)) == 1; + public Boolean CurrentLimitSwitchFault => (_record & (1 << 7)) == 1; + + public AlarmEvent1_(Byte record) => _record = record; } + + // Enum for Alarm Event 1 + //public enum AlarmEvent1 + //{ + // VoltageSensorFault, + // TemperatureSensorFault, + // CurrentSensorFault, + // KeySwitchFault, + // CellVoltageDropoutFault, + // ChargeSwitchFault, + // DischargeSwitchFault, + // CurrentLimitSwitchFault + //} + // Enum for Alarm Event 2 public enum AlarmEvent2 {