Currently, the CAN Wrapper is the first to be notified of a received message (through the HAL_CAN_RxFifo0MsgPendingCallback ISR), and the message is queued until the user calls CANWrapper_Poll_Events to process it. This pipeline complicates TUK and limits flexibility for the subsystems and test interfaces, especially due to the various CAN queue implementations.
This pipeline should be removed from TUK. Instead, subsystems should implement their own queues and ISRs.
The CAN Wrapper can still handle peripheral initialization, transmission, timeouts, acknowledgement, etc., but these should be made into modular functions where possible.