Innovenergy_trunk/csharp/Lib/Devices/BatteryDeligreen/AlarmBitMessage.cs

260 lines
12 KiB
C#

namespace InnovEnergy.Lib.Devices.BatteryDeligreen;
public class AlarmBitMessage
{
public readonly struct AlarmEvent1
{
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 readonly struct AlarmEvent2
{
private readonly Byte _record;
public Boolean MonomerHighVoltageAlarm => (_record & (1 << 0)) == 1;
public Boolean MonomerOvervoltageProtection => (_record & (1 << 1)) == 1;
public Boolean MonomerLowVoltageAlarm => (_record & (1 << 2)) == 1;
public Boolean MonomerUnderVoltageProtection => (_record & (1 << 3)) == 1;
public Boolean HighVoltageAlarmForTotalVoltage => (_record & (1 << 4)) == 1;
public Boolean OvervoltageProtectionForTotalVoltage => (_record & (1 << 5)) == 1;
public Boolean LowVoltageAlarmForTotalVoltage => (_record & (1 << 6)) == 1;
public Boolean UnderVoltageProtectionForTotalVoltage => (_record & (1 << 7)) == 1;
public AlarmEvent2(Byte record) => _record = record;
}
// Enum for Alarm Event 3
public readonly struct AlarmEvent3
{
private readonly Byte _record;
public Boolean ChargeHighTemperatureAlarm => (_record & (1 << 0)) == 1;
public Boolean ChargeOverTemperatureProtection => (_record & (1 << 1)) == 1;
public Boolean ChargeLowTemperatureAlarm => (_record & (1 << 2)) == 1;
public Boolean ChargeUnderTemperatureProtection => (_record & (1 << 3)) == 1;
public Boolean DischargeHighTemperatureAlarm => (_record & (1 << 4)) == 1;
public Boolean DischargeOverTemperatureProtection => (_record & (1 << 5)) == 1;
public Boolean DischargeLowTemperatureAlarm => (_record & (1 << 6)) == 1;
public Boolean DischargeUnderTemperatureProtection => (_record & (1 << 7)) == 1;
public AlarmEvent3(Byte record) => _record = record;
}
// Enum for Alarm Event 4
public readonly struct AlarmEvent4
{
private readonly Byte _record;
public Boolean EnvironmentHighTemperatureAlarm => (_record & (1 << 0)) == 1;
public Boolean EnvironmentOverTemperatureProtection => (_record & (1 << 1)) == 1;
public Boolean EnvironmentLowTemperatureAlarm => (_record & (1 << 2)) == 1;
public Boolean EnvironmentUnderTemperatureProtection => (_record & (1 << 3)) == 1;
public Boolean PowerOverTemperatureProtection => (_record & (1 << 4)) == 1;
public Boolean PowerHighTemperatureAlarm => (_record & (1 << 5)) == 1;
public Boolean CellLowTemperatureHeating => (_record & (1 << 6)) == 1;
public Boolean ReservationBit => (_record & (1 << 7)) == 1;
public AlarmEvent4(Byte record) => _record = record;
}
// Enum for Alarm Event 5
public readonly struct AlarmEvent5
{
private readonly Byte _record;
public Boolean ChargeOverCurrentAlarm => (_record & (1 << 0)) == 1;
public Boolean ChargeOverCurrentProtection => (_record & (1 << 1)) == 1;
public Boolean DischargeOverCurrentAlarm => (_record & (1 << 2)) == 1;
public Boolean DischargeOverCurrentProtection => (_record & (1 << 3)) == 1;
public Boolean TransientOverCurrentProtection => (_record & (1 << 4)) == 1;
public Boolean OutputShortCircuitProtection => (_record & (1 << 5)) == 1;
public Boolean TransientOverCurrentLockout => (_record & (1 << 6)) == 1;
public Boolean OutputShortCircuitLockout => (_record & (1 << 7)) == 1;
public AlarmEvent5(Byte record) => _record = record;
}
// Enum for Alarm Event 6
public readonly struct AlarmEvent6
{
private readonly Byte _record;
public Boolean ChargeHighVoltageProtection => (_record & (1 << 0)) == 1;
public Boolean IntermittentRechargeWaiting => (_record & (1 << 1)) == 1;
public Boolean ResidualCapacityAlarm => (_record & (1 << 2)) == 1;
public Boolean ResidualCapacityProtection => (_record & (1 << 3)) == 1;
public Boolean CellLowVoltageChargingProhibition => (_record & (1 << 4)) == 1;
public Boolean OutputReversePolarityProtection => (_record & (1 << 5)) == 1;
public Boolean OutputConnectionFault => (_record & (1 << 6)) == 1;
public Boolean InsideBit => (_record & (1 << 7)) == 1;
public AlarmEvent6(Byte record) => _record = record;
}
// Enum for On-Off State
public readonly struct OnOffState
{
private readonly Byte _record;
public Boolean DischargeSwitchState => (_record & (1 << 0)) == 1;
public Boolean ChargeSwitchState => (_record & (1 << 1)) == 1;
public Boolean CurrentLimitSwitchStat => (_record & (1 << 2)) == 1;
public Boolean HeatingSwitchState => (_record & (1 << 3)) == 1;
public Boolean ReservationBit1 => (_record & (1 << 4)) == 1;
public Boolean ReservationBit2 => (_record & (1 << 5)) == 1;
public Boolean ReservationBit3 => (_record & (1 << 6)) == 1;
public Boolean ReservationBit4 => (_record & (1 << 7)) == 1;
public OnOffState(Byte record) => _record = record;
}
// Enum for Equilibrium State 1
public readonly struct EquilibriumState1
{
private readonly Byte _record;
public Boolean Cell01Equilibrium => (_record & (1 << 0)) == 1;
public Boolean Cell02Equilibrium => (_record & (1 << 1)) == 1;
public Boolean Cell03Equilibrium => (_record & (1 << 2)) == 1;
public Boolean Cell04Equilibrium => (_record & (1 << 3)) == 1;
public Boolean Cell05Equilibrium => (_record & (1 << 4)) == 1;
public Boolean Cell06Equilibrium => (_record & (1 << 5)) == 1;
public Boolean Cell07Equilibrium => (_record & (1 << 6)) == 1;
public Boolean Cell08Equilibrium => (_record & (1 << 7)) == 1;
public EquilibriumState1(Byte record) => _record = record;
}
// Enum for Equilibrium State 2
public readonly struct EquilibriumState2
{
private readonly Byte _record;
public Boolean Cell09Equilibrium => (_record & (1 << 0)) == 1;
public Boolean Cell10Equilibrium => (_record & (1 << 1)) == 1;
public Boolean Cell11Equilibrium => (_record & (1 << 2)) == 1;
public Boolean Cell12Equilibrium => (_record & (1 << 3)) == 1;
public Boolean Cell13Equilibrium => (_record & (1 << 4)) == 1;
public Boolean Cell14Equilibrium => (_record & (1 << 5)) == 1;
public Boolean Cell15Equilibrium => (_record & (1 << 6)) == 1;
public Boolean Cell16Equilibrium => (_record & (1 << 7)) == 1;
public EquilibriumState2(Byte record) => _record = record;
}
// Enum for System State
public readonly struct SystemState
{
private readonly Byte _record;
public Boolean Discharge => (_record & (1 << 0)) == 1;
public Boolean Charge => (_record & (1 << 1)) == 1;
public Boolean FloatingCharge => (_record & (1 << 2)) == 1;
public Boolean ReservationBit1 => (_record & (1 << 3)) == 1;
public Boolean Standby => (_record & (1 << 4)) == 1;
public Boolean Shutdown => (_record & (1 << 5)) == 1;
public Boolean ReservationBit2 => (_record & (1 << 6)) == 1;
public Boolean ReservationBit3 => (_record & (1 << 7)) == 1;
public SystemState(Byte record) => _record = record;
}
// Enum for Disconnection State 1
public readonly struct DisconnectionState1
{
private readonly Byte _record;
public Boolean Cell01Disconnection => (_record & (1 << 0)) == 1;
public Boolean Cell02Disconnection => (_record & (1 << 1)) == 1;
public Boolean Cell03Disconnection => (_record & (1 << 2)) == 1;
public Boolean Cell04Disconnection => (_record & (1 << 3)) == 1;
public Boolean Cell05Disconnection => (_record & (1 << 4)) == 1;
public Boolean Cell06Disconnection => (_record & (1 << 5)) == 1;
public Boolean Cell07Disconnection => (_record & (1 << 6)) == 1;
public Boolean Cell08Disconnection => (_record & (1 << 7)) == 1;
public DisconnectionState1(Byte record) => _record = record;
}
// Enum for Disconnection State 2
public readonly struct DisconnectionState2
{
private readonly Byte _record;
public Boolean Cell09Disconnection => (_record & (1 << 0)) == 1;
public Boolean Cell10Disconnection => (_record & (1 << 1)) == 1;
public Boolean Cell11Disconnection => (_record & (1 << 2)) == 1;
public Boolean Cell12Disconnection => (_record & (1 << 3)) == 1;
public Boolean Cell13Disconnection => (_record & (1 << 4)) == 1;
public Boolean Cell14Disconnection => (_record & (1 << 5)) == 1;
public Boolean Cell15Disconnection => (_record & (1 << 6)) == 1;
public Boolean Cell16Disconnection => (_record & (1 << 7)) == 1;
public DisconnectionState2(Byte record) => _record = record;
}
// Enum for Alarm Event 7
public readonly struct AlarmEvent7
{
private readonly Byte _record;
public Boolean InsideBit1 => (_record & (1 << 0)) == 1;
public Boolean InsideBit2 => (_record & (1 << 1)) == 1;
public Boolean InsideBit3 => (_record & (1 << 2)) == 1;
public Boolean InsideBit4 => (_record & (1 << 3)) == 1;
public Boolean AutomaticChargingWaiting => (_record & (1 << 4)) == 1;
public Boolean ManualChargingWaiting => (_record & (1 << 5)) == 1;
public Boolean InsideBit5 => (_record & (1 << 6)) == 1;
public Boolean InsideBit6 => (_record & (1 << 7)) == 1;
public AlarmEvent7(Byte record) => _record = record;
}
// Enum for Alarm Event 8
public readonly struct AlarmEvent8
{
private readonly Byte _record;
public Boolean EepStorageFault => (_record & (1 << 0)) == 1;
public Boolean RtcError => (_record & (1 << 1)) == 1;
public Boolean VoltageCalibrationNotPerformed => (_record & (1 << 2)) == 1;
public Boolean CurrentCalibrationNotPerformed => (_record & (1 << 3)) == 1;
public Boolean ZeroCalibrationNotPerformed => (_record & (1 << 4)) == 1;
public Boolean InsideBit1 => (_record & (1 << 5)) == 1;
public Boolean InsideBit2 => (_record & (1 << 6)) == 1;
public Boolean InsideBit3 => (_record & (1 << 7)) == 1;
public AlarmEvent8(Byte record) => _record = record;
}
}