pub enum ErrorCode {
Show 48 variants
CellVoltHighLevel1,
CellVoltHighLevel2,
CellVoltLowLevel1,
CellVoltLowLevel2,
SumVoltHighLevel1,
SumVoltHighLevel2,
SumVoltLowLevel1,
SumVoltLowLevel2,
ChargeTempHighLevel1,
ChargeTempHighLevel2,
ChargeTempLowLevel1,
ChargeTempLowLevel2,
DischargeTempHighLevel1,
DischargeTempHighLevel2,
DischargeTempLowLevel1,
DischargeTempLowLevel2,
ChargeOvercurrentLevel1,
ChargeOvercurrentLevel2,
DischargeOvercurrentLevel1,
DischargeOvercurrentLevel2,
SocHighLevel1,
SocHighLevel2,
SocLowLevel1,
SocLowLevel2,
DiffVoltLevel1,
DiffVoltLevel2,
DiffTempLevel1,
DiffTempLevel2,
ChargeMosTempHighAlarm,
DischargeMosTempHighAlarm,
ChargeMosTempSensorErr,
DischargeMosTempSensorErr,
ChargeMosAdhesionErr,
DischargeMosAdhesionErr,
ChargeMosOpenCircuitErr,
DischargeMosOpenCircuitErr,
AfeCollectChipErr,
VoltageCollectDropped,
CellTempSensorErr,
EepromErr,
RtcErr,
PrechangeFailure,
CommunicationFailure,
InternalCommunicationFailure,
CurrentModuleFault,
SumVoltageDetectFault,
ShortCircuitProtectFault,
LowVoltForbiddenChargeFault,
}Expand description
Represents various error codes and alarm states reported by the BMS.
Variants§
CellVoltHighLevel1
Cell voltage is too high (Level 1)
CellVoltHighLevel2
Cell voltage is too high (Level 2)
CellVoltLowLevel1
Cell voltage is too low (Level 1)
CellVoltLowLevel2
Cell voltage is too low (Level 2)
SumVoltHighLevel1
Total voltage is too high (Level 1)
SumVoltHighLevel2
Total voltage is too high (Level 2)
SumVoltLowLevel1
Total voltage is too low (Level 1)
SumVoltLowLevel2
Total voltage is too low (Level 2)
ChargeTempHighLevel1
Charging temperature too high (Level 1)
ChargeTempHighLevel2
Charging temperature too high (Level 2)
ChargeTempLowLevel1
Charging temperature too low (Level 1)
ChargeTempLowLevel2
Charging temperature too low (Level 2)
DischargeTempHighLevel1
Discharging temperature too high (Level 1)
DischargeTempHighLevel2
Discharging temperature too high (Level 2)
DischargeTempLowLevel1
Discharging temperature too low (Level 1)
DischargeTempLowLevel2
Discharging temperature too low (Level 2)
ChargeOvercurrentLevel1
Charge overcurrent (Level 1)
ChargeOvercurrentLevel2
Charge overcurrent (Level 2)
DischargeOvercurrentLevel1
Discharge overcurrent (Level 1)
DischargeOvercurrentLevel2
Discharge overcurrent (Level 2)
SocHighLevel1
State of Charge (SOC) too high (Level 1)
SocHighLevel2
State of Charge (SOC) too high (Level 2)
SocLowLevel1
State of Charge (SOC) too low (Level 1)
SocLowLevel2
State of Charge (SOC) too low (Level 2)
DiffVoltLevel1
Excessive voltage difference between cells (Level 1)
DiffVoltLevel2
Excessive voltage difference between cells (Level 2)
DiffTempLevel1
Excessive temperature difference between sensors (Level 1)
DiffTempLevel2
Excessive temperature difference between sensors (Level 2)
ChargeMosTempHighAlarm
Charging MOSFET over-temperature alarm.
DischargeMosTempHighAlarm
Discharging MOSFET over-temperature alarm.
ChargeMosTempSensorErr
Charging MOSFET temperature sensor failure.
DischargeMosTempSensorErr
Discharging MOSFET temperature sensor failure.
ChargeMosAdhesionErr
Charging MOSFET adhesion failure (stuck closed).
DischargeMosAdhesionErr
Discharging MOSFET adhesion failure (stuck closed).
ChargeMosOpenCircuitErr
Charging MOSFET breaker failure (stuck open).
DischargeMosOpenCircuitErr
Discharging MOSFET breaker failure (stuck open).
AfeCollectChipErr
AFE (Analog Front End) acquisition chip malfunction.
VoltageCollectDropped
Monomer (cell voltage) collection circuit drop off.
CellTempSensorErr
Single temperature sensor failure.
EepromErr
EEPROM storage failure.
RtcErr
RTC (Real-Time Clock) malfunction.
PrechangeFailure
Pre-charge failure.
CommunicationFailure
General communication malfunction.
InternalCommunicationFailure
Internal communication module malfunction.
CurrentModuleFault
Current detection module failure.
SumVoltageDetectFault
Total voltage detection module failure.
ShortCircuitProtectFault
Short circuit protection failure.
LowVoltForbiddenChargeFault
Low voltage condition forbids charging.
Implementations§
Source§impl ErrorCode
impl ErrorCode
Sourcepub fn reply_size() -> usize
pub fn reply_size() -> usize
Expected size of the reply frame for an error codes request.
Sourcepub fn decode(rx_buffer: &[u8]) -> Result<Vec<Self>, Error>
pub fn decode(rx_buffer: &[u8]) -> Result<Vec<Self>, Error>
Decodes the error codes from a response frame.
The BMS returns a bitmask where each bit corresponds to an error.
This function returns a Vec<ErrorCode> containing all active errors.
§Arguments
rx_buffer- The response frame received from the BMS.
§Returns
A Result containing a Vec<ErrorCode> of active errors or an Error if decoding fails.
This is a low-level function. Users might prefer client methods.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for ErrorCode
impl<'de> Deserialize<'de> for ErrorCode
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Error for ErrorCode
impl Error for ErrorCode
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()