Skip to content

Commit e4b668c

Browse files
committed
Add baud rate conversion for PEAK driver.
1 parent d4d8cc5 commit e4b668c

1 file changed

Lines changed: 38 additions & 1 deletion

File tree

src/drivers/CANvenient_PEAK.c

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
static char* lookup_bus_name(DWORD device_type);
2020
static char* lookup_error_string(TPCANStatus pcan_status);
21+
static TPCANBaudrate lookup_pcan_baudrate(enum can_baudrate baud);
2122
#endif
2223

2324
#include "CANvenient.h"
@@ -130,7 +131,7 @@ int peak_open(int index)
130131
TPCANHandle pcan_ch = ((TPCANChannelInformation*)can_interface[index].internal)->channel_handle;
131132
TPCANStatus pcan_status;
132133

133-
pcan_status = CAN_Initialize(pcan_ch, can_interface[index].baudrate, 0, 0, 0);
134+
pcan_status = CAN_Initialize(pcan_ch, lookup_pcan_baudrate(can_interface[index].baudrate), 0, 0, 0);
134135
if (PCAN_ERROR_OK != pcan_status)
135136
{
136137
set_error_reason(lookup_error_string(pcan_status));
@@ -289,6 +290,42 @@ int peak_recv(int index, struct can_frame* frame, u64* timestamp)
289290
}
290291

291292
#ifdef _WIN32
293+
static TPCANBaudrate lookup_pcan_baudrate(enum can_baudrate baud)
294+
{
295+
switch (baud)
296+
{
297+
default:
298+
case CAN_BAUD_1M:
299+
return PCAN_BAUD_1M;
300+
case CAN_BAUD_800K:
301+
return PCAN_BAUD_800K;
302+
case CAN_BAUD_500K:
303+
return PCAN_BAUD_500K;
304+
case CAN_BAUD_250K:
305+
return PCAN_BAUD_250K;
306+
case CAN_BAUD_125K:
307+
return PCAN_BAUD_125K;
308+
case CAN_BAUD_100K:
309+
return PCAN_BAUD_100K;
310+
case CAN_BAUD_95K:
311+
return PCAN_BAUD_95K;
312+
case CAN_BAUD_83K:
313+
return PCAN_BAUD_83K;
314+
case CAN_BAUD_50K:
315+
return PCAN_BAUD_50K;
316+
case CAN_BAUD_47K:
317+
return PCAN_BAUD_47K;
318+
case CAN_BAUD_33K:
319+
return PCAN_BAUD_33K;
320+
case CAN_BAUD_20K:
321+
return PCAN_BAUD_20K;
322+
case CAN_BAUD_10K:
323+
return PCAN_BAUD_10K;
324+
case CAN_BAUD_5K:
325+
return PCAN_BAUD_5K;
326+
}
327+
}
328+
292329
static char* lookup_bus_name(DWORD device_type)
293330
{
294331
switch (device_type)

0 commit comments

Comments
 (0)