36#define DEFAULT_CAN_MOD (0)
37#elif (defined NANO54415)
38#define DEFAULT_CAN_MOD (1)
39#elif (defined SB800EX)
40#define DEFAULT_CAN_MOD (0)
44#define CAN_RATE_FAIL (-1)
45#define CAN_ALREAD_OPEN (-2)
46#define CAN_CHANNEL_USED (-3)
47#define CAN_CHANNEL_NOT_USED (-4)
48#define CAN_TIMEOUT (-5)
50#define DONT_WAIT (0xFFFF)
60 PrivateCanData *pData;
62 CanRxMessage(PrivateCanData *pData);
65 void MultiCanSendRTR(
int moduleNum, uint32_t
id, uint16_t timeout, uint8_t length);
67 inline void CanSendRTR(uint32_t
id, uint16_t timeout, uint8_t length) {
return MultiCanSendRTR(DEFAULT_CAN_MOD,
id, timeout, length); }
83 uint8_t
GetData(uint8_t *buffer, uint8_t max_len);
132 CanRxMessage(
int moduleNum, uint32_t
id, uint16_t timeout, uint8_t length);
171#define CAN_EXTENDED_ID_BIT (0x20000000)
176#define ExtToNbId(id) (id | CAN_EXTENDED_ID_BIT)
179#define NormToNbId(id) ((id & 0x7ff) << 18)
182#define IsNBIdExt(id) ((id & (CAN_EXTENDED_ID_BIT | 0x3FFFF)) != 0)
185#define NbToExtId(id) (id & 0x1FFFFFFF)
191#define NbToNormId(id) ((id >> 18) & 0x7FF)
209int MultiCanInit(
int moduleNum, uint32_t bit_rate, uint32_t Global_Mask, uint8_t irq_level = 4);
212void MultiCanShutDown(
int moduleNum);
215void MultiCanChangeGlobalMask(
int moduleNum, uint32_t Global_Mask);
218int MultiCanFreeCanChannels(
int moduleNum);
221BOOL MultiCanIsChannelFree(
int moduleNum,
int channel);
251int RegisterMultiCanRxFifo(
int moduleNum, uint32_t
id,
OS_FIFO *pFifo,
int channel = -1);
252int RegisterMultiCanSpecialRxFifo(
int moduleNum, uint32_t
id, uint32_t spl_mask,
OS_FIFO *pFifo,
int channel = -1);
262int UnRegisterMultiCanFifo(
int moduleNum,
int channel);
285int MultiCanSendMessage(
int moduleNum, uint32_t
id, uint8_t *data, uint8_t len, uint16_t timeout,
int channel = -1);
305int MultiCanSetRTRMessage(
int moduleNum, uint32_t
id, uint8_t *data, uint8_t len,
int channel = -1);
326int MultiCanReplaceRTRMessage(
int moduleNum,
int channel, uint8_t *data, uint8_t len);
337int MultiCanStopRTRMessage(
int moduleNum,
int channel);
342inline int CanInit(uint32_t bit_rate, uint32_t Global_Mask, uint8_t irq_level = 4)
344 return MultiCanInit(DEFAULT_CAN_MOD, bit_rate, Global_Mask, irq_level);
347inline void CanShutDown(
void)
349 return MultiCanShutDown(DEFAULT_CAN_MOD);
352inline void ChangeGlobalMask(uint32_t Global_Mask)
354 return MultiCanChangeGlobalMask(DEFAULT_CAN_MOD, Global_Mask);
357inline int RegisterCanRxFifo(uint32_t
id, OS_FIFO *pFifo,
int channel = -1)
359 return RegisterMultiCanRxFifo(DEFAULT_CAN_MOD,
id, pFifo, channel);
362inline int RegisterCanSpecialRxFifo(uint32_t
id, uint32_t spl_mask, OS_FIFO *pFifo,
int channel = -1)
364 return RegisterMultiCanSpecialRxFifo(DEFAULT_CAN_MOD,
id, spl_mask, pFifo, channel);
367inline int UnRegisterCanFifo(
int channel)
369 return UnRegisterMultiCanFifo(DEFAULT_CAN_MOD, channel);
372inline int SendMessage(uint32_t
id, uint8_t *data, uint8_t len, uint16_t timeout,
int channel = -1)
374 return MultiCanSendMessage(DEFAULT_CAN_MOD,
id, data, len, timeout, channel);
377inline int SetRTRMessage(uint32_t
id, uint8_t *data, uint8_t len,
int channel = -1)
379 return MultiCanSetRTRMessage(DEFAULT_CAN_MOD,
id, data, len, channel);
382inline int ReplaceRTRMessage(
int channel, uint8_t *data, uint8_t len)
384 return MultiCanReplaceRTRMessage(DEFAULT_CAN_MOD, channel, data, len);
387inline int StopRTRMessage(
int channel)
389 return MultiCanStopRTRMessage(DEFAULT_CAN_MOD, channel);
393inline int FreeCanChannels()
395 return MultiCanFreeCanChannels(DEFAULT_CAN_MOD);
399inline BOOL IsChannelFree(
int channel)
401 return MultiCanIsChannelFree(DEFAULT_CAN_MOD, channel);