37#define DEFAULT_CAN_MOD (0)
38#elif (defined NANO54415)
39#define DEFAULT_CAN_MOD (1)
40#elif (defined SB800EX)
41#define DEFAULT_CAN_MOD (0)
45#define CAN_RATE_FAIL (-1)
46#define CAN_ALREAD_OPEN (-2)
47#define CAN_CHANNEL_USED (-3)
48#define CAN_CHANNEL_NOT_USED (-4)
49#define CAN_TIMEOUT (-5)
51#define DONT_WAIT (0xFFFF)
61 PrivateCanData *pData;
66 void MultiCanSendRTR(
int moduleNum, uint32_t
id, uint16_t timeout, uint8_t length);
68 inline void CanSendRTR(uint32_t
id, uint16_t timeout, uint8_t length) {
return MultiCanSendRTR(DEFAULT_CAN_MOD,
id, timeout, length); }
84 uint8_t
GetData(uint8_t *buffer, uint8_t max_len);
132 CanRxMessage(
int moduleNum, uint32_t
id, uint16_t timeout, uint8_t length);
170#define CAN_EXTENDED_ID_BIT (0x20000000)
175#define ExtToNbId(id) (id | CAN_EXTENDED_ID_BIT)
178#define NormToNbId(id) ((id & 0x7ff) << 18)
181#define IsNBIdExt(id) ((id & (CAN_EXTENDED_ID_BIT | 0x3FFFF)) != 0)
184#define NbToExtId(id) (id & 0x1FFFFFFF)
190#define NbToNormId(id) ((id >> 18) & 0x7FF)
208int MultiCanInit(
int moduleNum, uint32_t bit_rate, uint32_t Global_Mask, uint8_t irq_level = 4);
211void MultiCanShutDown(
int moduleNum);
214void MultiCanChangeGlobalMask(
int moduleNum, uint32_t Global_Mask);
217int MultiCanFreeCanChannels(
int moduleNum);
220BOOL MultiCanIsChannelFree(
int moduleNum,
int channel);
250int RegisterMultiCanRxFifo(
int moduleNum, uint32_t
id, OS_FIFO *pFifo,
int channel = -1);
251int RegisterMultiCanSpecialRxFifo(
int moduleNum, uint32_t
id, uint32_t spl_mask, OS_FIFO *pFifo,
int channel = -1);
261int UnRegisterMultiCanFifo(
int moduleNum,
int channel);
284int MultiCanSendMessage(
int moduleNum, uint32_t
id, uint8_t *data, uint8_t len, uint16_t timeout,
int channel = -1);
304int MultiCanSetRTRMessage(
int moduleNum, uint32_t
id, uint8_t *data, uint8_t len,
int channel = -1);
325int MultiCanReplaceRTRMessage(
int moduleNum,
int channel, uint8_t *data, uint8_t len);
336int MultiCanStopRTRMessage(
int moduleNum,
int channel);
341inline int CanInit(uint32_t bit_rate, uint32_t Global_Mask, uint8_t irq_level = 4)
343 return MultiCanInit(DEFAULT_CAN_MOD, bit_rate, Global_Mask, irq_level);
346inline void CanShutDown(
void)
348 return MultiCanShutDown(DEFAULT_CAN_MOD);
351inline void ChangeGlobalMask(uint32_t Global_Mask)
353 return MultiCanChangeGlobalMask(DEFAULT_CAN_MOD, Global_Mask);
356inline int RegisterCanRxFifo(uint32_t
id, OS_FIFO *pFifo,
int channel = -1)
358 return RegisterMultiCanRxFifo(DEFAULT_CAN_MOD,
id, pFifo, channel);
361inline int RegisterCanSpecialRxFifo(uint32_t
id, uint32_t spl_mask, OS_FIFO *pFifo,
int channel = -1)
363 return RegisterMultiCanSpecialRxFifo(DEFAULT_CAN_MOD,
id, spl_mask, pFifo, channel);
366inline int UnRegisterCanFifo(
int channel)
368 return UnRegisterMultiCanFifo(DEFAULT_CAN_MOD, channel);
371inline int SendMessage(uint32_t
id, uint8_t *data, uint8_t len, uint16_t timeout,
int channel = -1)
373 return MultiCanSendMessage(DEFAULT_CAN_MOD,
id, data, len, timeout, channel);
376inline int SetRTRMessage(uint32_t
id, uint8_t *data, uint8_t len,
int channel = -1)
378 return MultiCanSetRTRMessage(DEFAULT_CAN_MOD,
id, data, len, channel);
381inline int ReplaceRTRMessage(
int channel, uint8_t *data, uint8_t len)
383 return MultiCanReplaceRTRMessage(DEFAULT_CAN_MOD, channel, data, len);
386inline int StopRTRMessage(
int channel)
388 return MultiCanStopRTRMessage(DEFAULT_CAN_MOD, channel);
392inline int FreeCanChannels()
394 return MultiCanFreeCanChannels(DEFAULT_CAN_MOD);
398inline BOOL IsChannelFree(
int channel)
400 return MultiCanIsChannelFree(DEFAULT_CAN_MOD, channel);