diff --git a/Core/Inc/slave_monitoring.h b/Core/Inc/slave_monitoring.h index 021ad43..d1efaa3 100644 --- a/Core/Inc/slave_monitoring.h +++ b/Core/Inc/slave_monitoring.h @@ -19,6 +19,7 @@ #define SLAVE_PANIC_INTERNAL_BMS_TIMEOUT 7 #define SLAVE_PANIC_INTERNAL_BMS_CHECKSUM 8 #define SLAVE_PANIC_INTERNAL_BMS_OVERTEMP 9 +#define SLAVE_PANIC_INTERNAL_BMS_FAULT 10 typedef enum { SLAVE_ERR_NONE, @@ -33,6 +34,7 @@ typedef enum { SLAVE_ERR_INTERNAL_BMS_TIMEOUT, SLAVE_ERR_INTERNAL_BMS_CHECKSUM, SLAVE_ERR_INTERNAL_BMS_OVERTEMP, + SLAVE_ERR_INTERNAL_BMS_FAULT, SLAVE_ERR_UNKNOWN, } SlaveErrorKind; diff --git a/Core/Src/slave_monitoring.c b/Core/Src/slave_monitoring.c index af04600..a4ba21c 100644 --- a/Core/Src/slave_monitoring.c +++ b/Core/Src/slave_monitoring.c @@ -100,7 +100,7 @@ void slaves_handle_panic(const uint8_t *data) { uint8_t idx = get_slave_index(slave_id); uint8_t error_kind = ftcan_unmarshal_unsigned(ptr, 1); switch (error_kind) { - case SLAVE_PANIC_OT ... SLAVE_PANIC_INTERNAL_BMS_OVERTEMP: + case SLAVE_PANIC_OT ... SLAVE_PANIC_INTERNAL_BMS_FAULT: slaves[idx].error.kind = error_kind + 2; //SlaveErrorKind on master is 2 higher than on slave (errors.h in slave firmware) break; default: