/* * AMS_CAN.h * * Created on: Mar 19, 2022 * Author: jasper */ #ifndef INC_AMS_CAN_H_ #define INC_AMS_CAN_H_ #include "main.h" #include "stm32f4xx_hal.h" #include "stm32f4xx_hal_can.h" #include "stm32f4xx_hal_def.h" #define CAN_ID_SLAVE_ERROR 0x001 #define CAN_ID_AMS_SLAVE_HEARTBEAT_BASE 0x600 #define CAN_HEARTBEAT_TX_TIMEOUT 5 /* ms */ void ams_can_init(CAN_HandleTypeDef* ams, CAN_HandleTypeDef* car); void ams_can_handle_ams_msg(CAN_RxHeaderTypeDef* header, uint8_t* data); void ams_can_handle_car_msg(CAN_RxHeaderTypeDef* header, uint8_t* data); void ams_can_send_heartbeat(); void ams_can_send_error(AMS_ErrorCode error_code); HAL_StatusTypeDef ams_can_wait_for_free_mailbox(CAN_HandleTypeDef* handle, uint32_t timeout); #endif /* INC_AMS_CAN_H_ */