/* * Slave_Monitoring.h * * Created on: Jun 15, 2022 * Author: max */ #ifndef INC_SLAVE_MONITORING_H_ #define INC_SLAVE_MONITORING_H_ #include "AMS_Errorcodes.h" #include "Error_Check.h" #include "main.h" #include "stm32g441xx.h" #define NUMBEROFSLAVES 7 #define NUMBEROFCELLS 10 #define NUMBEROFTEMPS 32 #define SLAVETIMEOUT 500 #define SLAVE_HEARTBEAT_FRAMES 11 // 30% * 90 = 27, each sensor measures 2 cells #define SLAVE_MIN_TEMP_SENSORS 14 typedef struct { uint16_t slaveID; uint16_t cellVoltages[NUMBEROFCELLS]; uint16_t cellTemps[NUMBEROFTEMPS]; uint32_t timestamp; uint8_t error; uint8_t timeout; uint32_t frame_timestamps[SLAVE_HEARTBEAT_FRAMES]; } SlaveHandler; extern SlaveHandler slaves[NUMBEROFSLAVES]; void initSlaves(); uint8_t checkSlaveTimeout(); #endif /* INC_SLAVE_MONITORING_H_ */