206 lines
5.2 KiB
C#
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
|
|
}
|
|
|
|
}
|