Open FFBoard
Open source force feedback firmware
CanHandler.h
Go to the documentation of this file.
1/*
2 * CanHandler.h
3 *
4 * Created on: 20.11.2020
5 * Author: Yannick
6 */
7#include "target_constants.h"
8#ifdef CANBUS
9#ifndef CANHANDLER_H_
10#define CANHANDLER_H_
11
12#include "cppmain.h"
13#include "global_callbacks.h"
14#include <vector>
15#include "CAN.h"
16// Define can types
17#if defined(FDCAN1) || defined(FDCAN2)
18#define CANTYPE_FDCAN
19#elif defined(CAN1) || defined(CAN2)
20#define CANTYPE_CAN2B
21#else
22#error "CAN or FDCAN must be defined"
23#endif
24
25//class CANPort;
26//class CAN_msg_header_rx;
28public:
29 CanHandler();
30 virtual ~CanHandler();
31// static std::vector<CanHandler*> canHandlers;
32
33// static int32_t addCanFilter(CAN_HandleTypeDef* CanHandle,CAN_FilterTypeDef sFilterConfig);
34// static void removeCanFilter(CAN_HandleTypeDef* CanHandle,uint8_t filterId);
35 virtual void canRxPendCallback(CANPort* port,CAN_rx_msg& msg);
36 virtual void canErrorCallback(CANPort* port,uint32_t errcode);
37 virtual void canRxFullCallback(CANPort* port,uint32_t fifo);
38 virtual void canTxCpltCallback(CANPort* port,uint32_t mailbox);
39 virtual void canTxAbortCallback(CANPort* port,uint32_t mailbox);
40
41//#ifdef CANTYPE_CAN2B
42// virtual void canRxPendCallback(CAN_HandleTypeDef *hcan,uint8_t* rxBuf,CAN_RxHeaderTypeDef* rxHeader,uint32_t fifo);
43// virtual void canErrorCallback(CAN_HandleTypeDef *hcan);
44// virtual void canRxFullCallback(CAN_HandleTypeDef *hcan,uint32_t fifo);
45// virtual void canTxCpltCallback(CAN_HandleTypeDef *hcan,uint32_t mailbox);
46// virtual void canTxAbortCallback(CAN_HandleTypeDef *hcan,uint32_t mailbox);
47//#elif defined(CANTYPE_FDCAN)
48// virtual void canRxPendCallback(FDCAN_HandleTypeDef *hcan,uint8_t* rxBuf,FDCAN_RxHeaderTypeDef* rxHeader,uint32_t fifo);
49// virtual void canErrorCallback(FDCAN_HandleTypeDef *hcan);
50// virtual void canRxFullCallback(FDCAN_HandleTypeDef *hcan,uint32_t fifo);
51// virtual void canTxCpltCallback(FDCAN_HandleTypeDef *hcan,uint32_t mailbox);
52// virtual void canTxAbortCallback(FDCAN_HandleTypeDef *hcan,uint32_t mailbox);
53//#endif
54
55 static std::vector<CanHandler*>& getCANHandlers() {
56 static std::vector<CanHandler*> canHandlers{};
57 return canHandlers;
58 }
59//private:
60// //static std::vector<CAN_FilterTypeDef> canFilters;
61//
62
63};
64
65#endif /* CANHANDLER_H_ */
66#endif
Definition: CAN.h:119
virtual ~CanHandler()
Definition: CanHandler.cpp:17
virtual void canRxFullCallback(CANPort *port, uint32_t fifo)
Definition: CanHandler.cpp:24
virtual void canTxCpltCallback(CANPort *port, uint32_t mailbox)
Definition: CanHandler.cpp:45
virtual void canErrorCallback(CANPort *port, uint32_t errcode)
Definition: CanHandler.cpp:38
static std::vector< CanHandler * > & getCANHandlers()
Definition: CanHandler.h:55
virtual void canRxPendCallback(CANPort *port, CAN_rx_msg &msg)
Definition: CanHandler.cpp:31
virtual void canTxAbortCallback(CANPort *port, uint32_t mailbox)
Definition: CanHandler.cpp:52
Definition: CAN.h:96