Skip to content

Commit eebd68d

Browse files
committed
add changes to can_api.h and can_helper.h
1 parent cbfb21e commit eebd68d

File tree

5 files changed

+34
-6
lines changed

5 files changed

+34
-6
lines changed

drivers/include/drivers/CAN.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ class CAN
148148
*/
149149
int read(CANMessage &msg, int handle = 0);
150150

151-
#ifdef DEVICE_CAN_FD
151+
#if DEVICE_CAN_FD
152152

153153
/** Write a CANFDMessage to the bus.
154154
*

drivers/include/drivers/interfaces/InterfaceCAN.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ class CANMessage : public CAN_Message {
140140
}
141141
};
142142

143-
#ifdef DEVICE_CAN_FD
143+
#if DEVICE_CAN_FD
144144

145145
/** CANFDMessage class
146146
*

drivers/source/CAN.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ CAN::CAN(PinName rd, PinName td) : _can(), _irq()
3333
CAN::CAN(PinName rd, PinName td, int hz, int data_hz) : _can(), _irq()
3434
{
3535
// No lock needed in constructor
36-
#ifdef DEVICE_CAN_FD
36+
#if DEVICE_CAN_FD
3737
canfd_init_freq(&_can, rd, td, hz, data_hz);
3838
#else
3939
can_init_freq(&_can, rd, td, hz);
@@ -51,7 +51,7 @@ CAN::CAN(const can_pinmap_t &pinmap) : _can(), _irq()
5151
CAN::CAN(const can_pinmap_t &pinmap, int hz, int data_hz) : _can(), _irq()
5252
{
5353
// No lock needed in constructor
54-
#ifdef DEVICE_CAN_FD
54+
#if DEVICE_CAN_FD
5555
canfd_init_freq_direct(&_can, &pinmap, hz, data_hz);
5656
#else
5757
can_init_freq_direct(&_can, &pinmap, hz);
@@ -74,7 +74,7 @@ CAN::~CAN()
7474
int CAN::frequency(int f, int data_f)
7575
{
7676
lock();
77-
#ifdef DEVICE_CAN_FD
77+
#if DEVICE_CAN_FD
7878
int ret = canfd_frequency(&_can, f, data_f);
7979
#else
8080
int ret = can_frequency(&_can, f);
@@ -102,7 +102,7 @@ int CAN::read(CANMessage &msg, int handle)
102102
return ret;
103103
}
104104

105-
#ifdef DEVICE_CAN_FD
105+
#if DEVICE_CAN_FD
106106

107107
int CAN::write(CANFDMessage msg)
108108
{

hal/include/hal/can_api.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,14 @@ unsigned char can_rderror(can_t *obj);
8787
unsigned char can_tderror(can_t *obj);
8888
void can_monitor(can_t *obj, int silent);
8989

90+
#if DEVICE_CAN_FD
91+
void canfd_init_freq(can_t *obj, PinName rd, PinName td, int hz, int data_hz);
92+
void canfd_init_freq_direct(can_t *obj, const can_pinmap_t *pinmap, int hz, int data_hz);
93+
int canfd_frequency(can_t *obj, int hz, int data_hz);
94+
int canfd_write(can_t *obj, CANFD_Message, int cc);
95+
int canfd_read(can_t *obj, CANFD_Message *msg, int handle);
96+
#endif
97+
9098
/** Get the pins that support CAN RD
9199
*
92100
* Return a PinMap array of pins that support CAN RD. The

hal/include/hal/can_helper.h

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,26 @@ struct CAN_Message {
6767
};
6868
typedef struct CAN_Message CAN_Message;
6969

70+
#if DEVICE_CAN_FD
71+
72+
/**
73+
*
74+
* \struct CAN_Message
75+
*
76+
* \brief Holder for single CAN message.
77+
*
78+
**/
79+
struct CANFD_Message {
80+
unsigned int id; // 29 bit identifier
81+
unsigned char data[64]; // Data field
82+
unsigned char len; // Length of data field in bytes
83+
CANFormat format; // Format ::CANFormat
84+
CANType type; // Type ::CANType
85+
};
86+
typedef struct CANFD_Message CANFD_Message;
87+
88+
#endif
89+
7090
#ifdef __cplusplus
7191
}
7292
#endif

0 commit comments

Comments
 (0)