34#define DEFAULT_CAN_MOD (0)
35#elif (defined NANO54415)
36#define DEFAULT_CAN_MOD (1)
37#elif (defined SB800EX)
38#define DEFAULT_CAN_MOD (0)
42#define CAN_RATE_FAIL (-1)
43#define CAN_ALREAD_OPEN (-2)
44#define CAN_CHANNEL_USED (-3)
45#define CAN_CHANNEL_NOT_USED (-4)
46#define CAN_TIMEOUT (-5)
48#define DONT_WAIT (0xFFFF)
58 PrivateCanData *pData;
63 void MultiCanSendRTR(
int moduleNum, uint32_t
id, uint16_t timeout, uint8_t length);
65 inline void CanSendRTR(uint32_t
id, uint16_t timeout, uint8_t length) {
return MultiCanSendRTR(DEFAULT_CAN_MOD,
id, timeout, length); }
81 uint8_t
GetData(uint8_t *buffer, uint8_t max_len);
129 CanRxMessage(
int moduleNum, uint32_t
id, uint16_t timeout, uint8_t length);
167#define CAN_EXTENDED_ID_BIT (0x20000000)
172#define ExtToNbId(id) (id | CAN_EXTENDED_ID_BIT)
175#define NormToNbId(id) ((id & 0x7ff) << 18)
178#define IsNBIdExt(id) ((id & (CAN_EXTENDED_ID_BIT | 0x3FFFF)) != 0)
181#define NbToExtId(id) (id & 0x1FFFFFFF)
187#define NbToNormId(id) ((id >> 18) & 0x7FF)
205int MultiCanInit(
int moduleNum, uint32_t bit_rate, uint32_t Global_Mask, uint8_t irq_level = 4);
208void MultiCanShutDown(
int moduleNum);
211void MultiCanChangeGlobalMask(
int moduleNum, uint32_t Global_Mask);
214int MultiCanFreeCanChannels(
int moduleNum);
217BOOL MultiCanIsChannelFree(
int moduleNum,
int channel);
247int RegisterMultiCanRxFifo(
int moduleNum, uint32_t
id,
OS_FIFO *pFifo,
int channel = -1);
248int RegisterMultiCanSpecialRxFifo(
int moduleNum, uint32_t
id, uint32_t spl_mask,
OS_FIFO *pFifo,
int channel = -1);
258int UnRegisterMultiCanFifo(
int moduleNum,
int channel);
281int MultiCanSendMessage(
int moduleNum, uint32_t
id, uint8_t *data, uint8_t len, uint16_t timeout,
int channel = -1);
301int MultiCanSetRTRMessage(
int moduleNum, uint32_t
id, uint8_t *data, uint8_t len,
int channel = -1);
322int MultiCanReplaceRTRMessage(
int moduleNum,
int channel, uint8_t *data, uint8_t len);
333int MultiCanStopRTRMessage(
int moduleNum,
int channel);
338inline int CanInit(uint32_t bit_rate, uint32_t Global_Mask, uint8_t irq_level = 4)
340 return MultiCanInit(DEFAULT_CAN_MOD, bit_rate, Global_Mask, irq_level);
343inline void CanShutDown(
void)
345 return MultiCanShutDown(DEFAULT_CAN_MOD);
348inline void ChangeGlobalMask(uint32_t Global_Mask)
350 return MultiCanChangeGlobalMask(DEFAULT_CAN_MOD, Global_Mask);
353inline int RegisterCanRxFifo(uint32_t
id,
OS_FIFO *pFifo,
int channel = -1)
355 return RegisterMultiCanRxFifo(DEFAULT_CAN_MOD,
id, pFifo, channel);
358inline int RegisterCanSpecialRxFifo(uint32_t
id, uint32_t spl_mask,
OS_FIFO *pFifo,
int channel = -1)
360 return RegisterMultiCanSpecialRxFifo(DEFAULT_CAN_MOD,
id, spl_mask, pFifo, channel);
363inline int UnRegisterCanFifo(
int channel)
365 return UnRegisterMultiCanFifo(DEFAULT_CAN_MOD, channel);
368inline int SendMessage(uint32_t
id, uint8_t *data, uint8_t len, uint16_t timeout,
int channel = -1)
370 return MultiCanSendMessage(DEFAULT_CAN_MOD,
id, data, len, timeout, channel);
373inline int SetRTRMessage(uint32_t
id, uint8_t *data, uint8_t len,
int channel = -1)
375 return MultiCanSetRTRMessage(DEFAULT_CAN_MOD,
id, data, len, channel);
378inline int ReplaceRTRMessage(
int channel, uint8_t *data, uint8_t len)
380 return MultiCanReplaceRTRMessage(DEFAULT_CAN_MOD, channel, data, len);
383inline int StopRTRMessage(
int channel)
385 return MultiCanStopRTRMessage(DEFAULT_CAN_MOD, channel);
389inline int FreeCanChannels()
391 return MultiCanFreeCanChannels(DEFAULT_CAN_MOD);
395inline BOOL IsChannelFree(
int channel)
397 return MultiCanIsChannelFree(DEFAULT_CAN_MOD, channel);