From d7012665094f06e5c7b0fb5b7222a16d193efa98 Mon Sep 17 00:00:00 2001 From: kbracher Date: Thu, 23 May 2024 18:27:51 +0200 Subject: [PATCH] switch errorkind to bitfield --- Core/Inc/state_machine.h | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/Core/Inc/state_machine.h b/Core/Inc/state_machine.h index a7d422e..2240194 100644 --- a/Core/Inc/state_machine.h +++ b/Core/Inc/state_machine.h @@ -26,17 +26,16 @@ typedef enum { // valid transitions: (all could transition to error) ERROR, // ERROR -> INACTIVE, DISCHARGE, ERROR } State; -typedef enum { - ERRORKIND_NONE = 0x0, - ERRORKIND_BMS_TIMEOUT = 0x1, - ERRORKIND_OVERTEMPTURE = 0x2, - ERRORKIND_OVERCURRENT = 0x3, - ERRORKIND_OVERVOLTAGE = 0x4, - ERRORKIND_MISSING_CURRENT_READING = 0x5, - ERRORKIND_MISSING_VOLTAGE_READING = 0x6, - ERRORKIND_MISSING_TEMP_READING = 0x7, - ERRORKIND_PRECHARGE_FAIL = 0x8, - ERRORKIND_POWERGROUND_FAIL = 0x9 +typedef struct { + uint16_t bms_timeout : 1; + uint16_t overtemp : 1; + uint16_t overcurrent : 1; + uint16_t overvoltage : 1; + uint16_t missing_current_reading : 1; + uint16_t missing_voltage_reading : 1; + uint16_t missing_temp_reading : 1; + uint16_t precharge_fail : 1; + uint16_t powerground_fail : 1; } ErrorKind; //typedef enum {} WarningKind; @@ -45,7 +44,7 @@ typedef struct { State current_state; State target_state; uint16_t error_source; // TSErrorSource (bitmask) - uint16_t error_type; // TSErrorKind + ErrorKind error_type; // TSErrorKind } StateHandle; extern StateHandle state;