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

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