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;
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);
131 CanRxMessage(
int moduleNum, uint32_t
id, uint16_t timeout, uint8_t length);
169#define CAN_EXTENDED_ID_BIT (0x20000000)
174#define ExtToNbId(id) (id | CAN_EXTENDED_ID_BIT)
177#define NormToNbId(id) ((id & 0x7ff) << 18)
180#define IsNBIdExt(id) ((id & (CAN_EXTENDED_ID_BIT | 0x3FFFF)) != 0)
183#define NbToExtId(id) (id & 0x1FFFFFFF)
189#define NbToNormId(id) ((id >> 18) & 0x7FF)
207int MultiCanInit(
int moduleNum, uint32_t bit_rate, uint32_t Global_Mask, uint8_t irq_level = 4);
210void MultiCanShutDown(
int moduleNum);
213void MultiCanChangeGlobalMask(
int moduleNum, uint32_t Global_Mask);
216int MultiCanFreeCanChannels(
int moduleNum);
219BOOL MultiCanIsChannelFree(
int moduleNum,
int channel);
249int RegisterMultiCanRxFifo(
int moduleNum, uint32_t
id,
OS_FIFO *pFifo,
int channel = -1);
250int RegisterMultiCanSpecialRxFifo(
int moduleNum, uint32_t
id, uint32_t spl_mask,
OS_FIFO *pFifo,
int channel = -1);
260int UnRegisterMultiCanFifo(
int moduleNum,
int channel);
283int MultiCanSendMessage(
int moduleNum, uint32_t
id, uint8_t *data, uint8_t len, uint16_t timeout,
int channel = -1);
303int MultiCanSetRTRMessage(
int moduleNum, uint32_t
id, uint8_t *data, uint8_t len,
int channel = -1);
324int MultiCanReplaceRTRMessage(
int moduleNum,
int channel, uint8_t *data, uint8_t len);
335int MultiCanStopRTRMessage(
int moduleNum,
int channel);
340inline int CanInit(uint32_t bit_rate, uint32_t Global_Mask, uint8_t irq_level = 4)
342 return MultiCanInit(DEFAULT_CAN_MOD, bit_rate, Global_Mask, irq_level);
345inline void CanShutDown(
void)
347 return MultiCanShutDown(DEFAULT_CAN_MOD);
350inline void ChangeGlobalMask(uint32_t Global_Mask)
352 return MultiCanChangeGlobalMask(DEFAULT_CAN_MOD, Global_Mask);
355inline int RegisterCanRxFifo(uint32_t
id,
OS_FIFO *pFifo,
int channel = -1)
357 return RegisterMultiCanRxFifo(DEFAULT_CAN_MOD,
id, pFifo, channel);
360inline int RegisterCanSpecialRxFifo(uint32_t
id, uint32_t spl_mask,
OS_FIFO *pFifo,
int channel = -1)
362 return RegisterMultiCanSpecialRxFifo(DEFAULT_CAN_MOD,
id, spl_mask, pFifo, channel);
365inline int UnRegisterCanFifo(
int channel)
367 return UnRegisterMultiCanFifo(DEFAULT_CAN_MOD, channel);
370inline int SendMessage(uint32_t
id, uint8_t *data, uint8_t len, uint16_t timeout,
int channel = -1)
372 return MultiCanSendMessage(DEFAULT_CAN_MOD,
id, data, len, timeout, channel);
375inline int SetRTRMessage(uint32_t
id, uint8_t *data, uint8_t len,
int channel = -1)
377 return MultiCanSetRTRMessage(DEFAULT_CAN_MOD,
id, data, len, channel);
380inline int ReplaceRTRMessage(
int channel, uint8_t *data, uint8_t len)
382 return MultiCanReplaceRTRMessage(DEFAULT_CAN_MOD, channel, data, len);
385inline int StopRTRMessage(
int channel)
387 return MultiCanStopRTRMessage(DEFAULT_CAN_MOD, channel);
391inline int FreeCanChannels()
393 return MultiCanFreeCanChannels(DEFAULT_CAN_MOD);
397inline BOOL IsChannelFree(
int channel)
399 return MultiCanIsChannelFree(DEFAULT_CAN_MOD, channel);