add new slave panic codes

This commit is contained in:
Kilian Bracher 2024-04-01 20:43:36 +02:00
parent ba05bb5ff4
commit 8005b94b24
Signed by: k.bracher
SSH Key Fingerprint: SHA256:mXpyZkK7RDiJ7qeHCKJX108woM0cl5TrCvNBJASu6lM
3 changed files with 19 additions and 13 deletions

View File

@ -13,6 +13,12 @@
#define SLAVE_PANIC_UT 1
#define SLAVE_PANIC_OV 2
#define SLAVE_PANIC_UV 3
#define SLAVE_PANIC_TOO_FEW_TEMPS 4
#define SLAVE_PANIC_OPENWIRE 5
#define SLAVE_PANIC_EEPROM_ERROR 6
#define SLAVE_PANIC_INTERNAL_BMS_TIMEOUT 7
#define SLAVE_PANIC_INTERNAL_BMS_CHECKSUM 8
#define SLAVE_PANIC_INTERNAL_BMS_OVERTEMP 9
typedef enum {
SLAVE_ERR_NONE,
@ -21,6 +27,12 @@ typedef enum {
SLAVE_ERR_UT,
SLAVE_ERR_OV,
SLAVE_ERR_UV,
SLAVE_ERR_TOO_FEW_TEMPS,
SLAVE_ERR_OPENWIRE,
SLAVE_ERR_EEPROM,
SLAVE_ERR_INTERNAL_BMS_TIMEOUT,
SLAVE_ERR_INTERNAL_BMS_CHECKSUM,
SLAVE_ERR_INTERNAL_BMS_OVERTEMP,
SLAVE_ERR_UNKNOWN,
} SlaveErrorKind;

View File

@ -100,18 +100,12 @@ 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:
slaves[idx].error.kind = SLAVE_ERR_OT;
break;
case SLAVE_PANIC_UT:
slaves[idx].error.kind = SLAVE_ERR_UT;
break;
case SLAVE_PANIC_OV:
slaves[idx].error.kind = SLAVE_ERR_OV;
break;
case SLAVE_PANIC_UV:
slaves[idx].error.kind = SLAVE_ERR_UV;
break;
case SLAVE_PANIC_OT ... SLAVE_PANIC_INTERNAL_BMS_OVERTEMP:
slaves[idx].error.kind = error_kind + 2; //SlaveErrorKind on master is 2 higher than on slave (errors.h in slave firmware)
break;
default:
slaves[idx].error.kind = SLAVE_ERR_UNKNOWN;
break;
}
slaves[idx].error.data = ftcan_unmarshal_unsigned(&data, 4);
slaves[idx].last_message = HAL_GetTick();

View File

@ -14,7 +14,7 @@
#define STATUS_LED_2_BLUE_PIN GPIO_PIN_15
//TODO: change to correct values for the board
#error "GPIO pins for status LEDs are not set correctly"
#warning "GPIO pins for status LEDs are not set correctly"
typedef struct {
uint8_t red : 1;