#ifndef INC_SHUNT_MONITORING_H #define INC_SHUNT_MONITORING_H #include #include "stm32h7xx_hal.h" #define SHUNT_TIMEOUT 300 // ms #define SHUNT_THRESH_OVERCURRENT 300000 // mA #define SHUNT_THRESH_OVERTEMP 1000 // 1/10 °C typedef struct { int32_t current; // mA int32_t voltage_bat; // mV int32_t voltage_veh; // mV int32_t voltage3; // mV int32_t busbartemp; int32_t power; int32_t energy; float current_counter; // mAs uint32_t last_message; uint32_t last_current_message; } ShuntData; extern ShuntData shunt_data; void shunt_init(); void shunt_check(); void shunt_handle_can_msg(uint16_t id, const uint8_t *data); #endif // INC_SHUNT_MONITORING_H