Definitions for the CANLIB API. More...
Go to the source code of this file.
Macros | |
#define | canMSG_RESERVED_FOR_EXTENDING 0x80000000 |
Reserved future use, tell user that there are more flags. More... | |
#define | canTRANSCEIVER_RESNET_NA 0 |
#define | canTRANSCEIVER_RESNET_MASTER 1 |
#define | canTRANSCEIVER_RESNET_MASTER_STBY 2 |
#define | canTRANSCEIVER_RESNET_SLAVE 3 |
Convenience | |
#define | CANSTATUS_SUCCESS(X) ((X) == canOK) |
#define | CANSTATUS_FAILURE(X) ((X) != canOK) |
canEVENT_xxx WM__CANLIB notification codes | |
#define | canEVENT_RX 32000 |
when the queue of received CAN messages goes from empty to non-empty More... | |
#define | canEVENT_TX 32001 |
when a CAN message has been transmitted More... | |
#define | canEVENT_ERROR 32002 |
when a CAN bus error is reported by the CAN controller More... | |
#define | canEVENT_STATUS 32003 |
when the CAN controller changes state More... | |
#define | canEVENT_ENVVAR 32004 |
#define | canEVENT_BUSONOFF 32005 |
Bus on/off status changed. More... | |
#define | canEVENT_REMOVED 32006 |
Device removed. More... | |
canNOTIFY_xxx | |
These are notification codes used in calls to canSetNotify() and kvSetNotifyCallback(). This can be canNOTIFY_NONE (zero), meaning that no event notification is to occur, or a combination of any of the following constants | |
#define | canNOTIFY_NONE 0 |
Turn notifications off. More... | |
#define | canNOTIFY_RX 0x0001 |
CAN message reception notification. More... | |
#define | canNOTIFY_TX 0x0002 |
CAN message transmission notification. More... | |
#define | canNOTIFY_ERROR 0x0004 |
CAN bus error notification. More... | |
#define | canNOTIFY_STATUS 0x0008 |
CAN chip status change. More... | |
#define | canNOTIFY_ENVVAR 0x0010 |
An environment variable was changed by a script. Note that you will not be notified when an environment variable is updated from the Canlib API. More... | |
#define | canNOTIFY_BUSONOFF 0x0020 |
Notify on bus on/off status changed. More... | |
#define | canNOTIFY_REMOVED 0x0040 |
Notify on device removed. More... | |
canSTAT_xxx | |
The following circuit status flags are returned by canReadStatus(). Note that more than one flag might be set at any one time.
| |
#define | canSTAT_ERROR_PASSIVE 0x00000001 |
The circuit is error passive. More... | |
#define | canSTAT_BUS_OFF 0x00000002 |
The circuit is Off Bus. More... | |
#define | canSTAT_ERROR_WARNING 0x00000004 |
At least one error counter > 96. More... | |
#define | canSTAT_ERROR_ACTIVE 0x00000008 |
The circuit is error active. More... | |
#define | canSTAT_TX_PENDING 0x00000010 |
There are messages pending transmission. More... | |
#define | canSTAT_RX_PENDING 0x00000020 |
There are messages in the receive buffer. More... | |
#define | canSTAT_RESERVED_1 0x00000040 |
The circuit is error passive. More... | |
#define | canSTAT_TXERR 0x00000080 |
There has been at least one TX error. More... | |
#define | canSTAT_RXERR 0x00000100 |
There has been at least one RX error of some sort. More... | |
#define | canSTAT_HW_OVERRUN 0x00000200 |
There has been at least one HW buffer overflow. More... | |
#define | canSTAT_SW_OVERRUN 0x00000400 |
There has been at least one SW buffer overflow. More... | |
#define | canSTAT_OVERRUN (canSTAT_HW_OVERRUN | canSTAT_SW_OVERRUN) |
For convenience. More... | |
Message information flags, CAN (canMSG_xxx) | |
The following flags can be returned from canRead() et al, or passed to canWrite(). All flags and/or combinations of them are meaningful for received messages. canMSG_RTR, canMSG_STD, canMSG_EXT, canMSG_WAKEUP and canMSG_ERROR_FRAME are meaningful also for transmitted messages. canMSG_SINGLE_SHOT is only for transmission. Note that canMSG_RTR cannot be set for CAN FD messages. | |
#define | canMSG_MASK 0x00ff |
Used to mask the non-info bits. More... | |
#define | canMSG_RTR 0x0001 |
Message is a remote request. More... | |
#define | canMSG_STD 0x0002 |
Message has a standard (11-bit) identifier. More... | |
#define | canMSG_EXT 0x0004 |
Message has an extended (29-bit) identifier. More... | |
#define | canMSG_WAKEUP 0x0008 |
Message is a WAKEUP message (SWC hardware.) More... | |
#define | canMSG_NERR 0x0010 |
NERR was active during the message (TJA1054 hardware) More... | |
#define | canMSG_ERROR_FRAME 0x0020 |
Message represents an error frame. More... | |
#define | canMSG_TXACK 0x0040 |
Message is a TX ACK (msg has really been sent) More... | |
#define | canMSG_TXRQ 0x0080 |
Message is a TX REQUEST (msg was transfered to the chip) More... | |
#define | canMSG_DELAY_MSG 0x0100 |
Message is NOT sent on the bus. The transmission of messages are delayed. The dlc specifies the delay in milliseconds (1..1000). More... | |
#define | canMSG_LOCAL_TXACK 0x10000000 |
Message was sent from another handle on the same can channel. More... | |
#define | canMSG_SINGLE_SHOT 0x1000000 |
Message is Single Shot, try to send once, no retransmission. This flag can only be used with transmitted messages. More... | |
#define | canMSG_TXNACK 0x2000000 |
Message is a failed Single Shot, message was not sent. This flag is only used with received messages. More... | |
#define | canMSG_ABL 0x4000000 |
Only together with canMSG_TXNACK, Single shot message was not sent because arbitration was lost. This flag is only used with received messages. More... | |
Message information flags, CAN FD (canFDMSG_xxx) | |
Flags used in the CAN FD protocol. Set canOPEN_CAN_FD in canOpenChannel() to enable the CAN FD protocol. | |
#define | canFDMSG_MASK 0xff0000 |
Obsolete, use canFDMSG_FDF instead. More... | |
#define | canFDMSG_EDL 0x010000 |
Obsolete, use canFDMSG_FDF instead. More... | |
#define | canFDMSG_FDF 0x010000 |
Message is an FD message (CAN FD) More... | |
#define | canFDMSG_BRS 0x020000 |
Message is sent/received with bit rate switch (CAN FD) More... | |
#define | canFDMSG_ESI 0x040000 |
Sender of the message is in error passive mode (CAN FD) More... | |
Message error flags (canMsgERR_xxx) | |
| |
#define | canMSGERR_MASK 0xff00 |
Used to mask the non-error bits. More... | |
#define | canMSGERR_HW_OVERRUN 0x0200 |
HW buffer overrun. More... | |
#define | canMSGERR_SW_OVERRUN 0x0400 |
SW buffer overrun. More... | |
#define | canMSGERR_STUFF 0x0800 |
Stuff error. More... | |
#define | canMSGERR_FORM 0x1000 |
Form error. More... | |
#define | canMSGERR_CRC 0x2000 |
CRC error. More... | |
#define | canMSGERR_BIT0 0x4000 |
Sent dom, read rec. More... | |
#define | canMSGERR_BIT1 0x8000 |
Sent rec, read dom. More... | |
#define | canMSGERR_OVERRUN 0x0600 |
Any overrun condition. More... | |
#define | canMSGERR_BIT 0xC000 |
Any bit error. More... | |
#define | canMSGERR_BUSERR 0xF800 |
Any RX error. More... | |
canTRANSCEIVER_LINEMODE_xxx | |
The following values can be used with canSetDriverMode() to set different driver (i.e. transceiver) modes. Use canGetDriverMode() to obtain the current driver mode for a particular CAN channel.
| |
#define | canTRANSCEIVER_LINEMODE_NA 0 |
Not Affected/Not available. More... | |
#define | canTRANSCEIVER_LINEMODE_SWC_SLEEP 4 |
SWC Sleep Mode. More... | |
#define | canTRANSCEIVER_LINEMODE_SWC_NORMAL 5 |
SWC Normal Mode. More... | |
#define | canTRANSCEIVER_LINEMODE_SWC_FAST 6 |
SWC High-Speed Mode. More... | |
#define | canTRANSCEIVER_LINEMODE_SWC_WAKEUP 7 |
SWC Wakeup Mode. More... | |
#define | canTRANSCEIVER_LINEMODE_SLEEP 8 |
Sleep mode for those supporting it. More... | |
#define | canTRANSCEIVER_LINEMODE_NORMAL 9 |
Normal mode (the inverse of sleep mode) for those supporting it. More... | |
#define | canTRANSCEIVER_LINEMODE_STDBY 10 |
Standby for those who support it. More... | |
#define | canTRANSCEIVER_LINEMODE_TT_CAN_H 11 |
Truck & Trailer: operating mode single wire using CAN high. More... | |
#define | canTRANSCEIVER_LINEMODE_TT_CAN_L 12 |
Truck & Trailer: operating mode single wire using CAN low. More... | |
#define | canTRANSCEIVER_LINEMODE_OEM1 13 |
Reserved for OEM apps. More... | |
#define | canTRANSCEIVER_LINEMODE_OEM2 14 |
Reserved for OEM apps. More... | |
#define | canTRANSCEIVER_LINEMODE_OEM3 15 |
Reserved for OEM apps. More... | |
#define | canTRANSCEIVER_LINEMODE_OEM4 16 |
Reserved for OEM apps. More... | |
Transceiver (logical) types | |
The following constants can be returned from canGetChannelData(), using the canCHANNELDATA_TRANS_TYPE item code. They identify the bus transceiver type for the channel specified in the call to canGetChannelData.
| |
#define | canTRANSCEIVER_TYPE_UNKNOWN 0 |
Unknown or undefined. More... | |
#define | canTRANSCEIVER_TYPE_251 1 |
82c251 More... | |
#define | canTRANSCEIVER_TYPE_252 2 |
82c252, TJA1053, TJA1054 More... | |
#define | canTRANSCEIVER_TYPE_DNOPTO 3 |
Optoisolated 82C251. More... | |
#define | canTRANSCEIVER_TYPE_W210 4 |
Unknown or undefined. More... | |
#define | canTRANSCEIVER_TYPE_SWC_PROTO 5 |
AU5790 prototype. More... | |
#define | canTRANSCEIVER_TYPE_SWC 6 |
AU5790. More... | |
#define | canTRANSCEIVER_TYPE_EVA 7 |
Unknown or undefined. More... | |
#define | canTRANSCEIVER_TYPE_FIBER 8 |
82c251 with fibre extension More... | |
#define | canTRANSCEIVER_TYPE_K251 9 |
K-line + 82c251. More... | |
#define | canTRANSCEIVER_TYPE_K 10 |
K-line, without CAN. More... | |
#define | canTRANSCEIVER_TYPE_1054_OPTO 11 |
TJA1054 with optical isolation. More... | |
#define | canTRANSCEIVER_TYPE_SWC_OPTO 12 |
AU5790 with optical isolation. More... | |
#define | canTRANSCEIVER_TYPE_TT 13 |
B10011S Truck-And-Trailer. More... | |
#define | canTRANSCEIVER_TYPE_1050 14 |
TJA1050. More... | |
#define | canTRANSCEIVER_TYPE_1050_OPTO 15 |
TJA1050 with optical isolation. More... | |
#define | canTRANSCEIVER_TYPE_1041 16 |
TJA1041. More... | |
#define | canTRANSCEIVER_TYPE_1041_OPTO 17 |
TJA1041 with optical isolation. More... | |
#define | canTRANSCEIVER_TYPE_RS485 18 |
RS485 (i.e. J1708) More... | |
#define | canTRANSCEIVER_TYPE_LIN 19 |
LIN. More... | |
#define | canTRANSCEIVER_TYPE_KONE 20 |
KONE. More... | |
#define | canTRANSCEIVER_TYPE_CANFD 22 |
CAN-FD. More... | |
#define | canTRANSCEIVER_TYPE_CANFD_LIN 24 |
HYBRID CAN-FD/LIN. More... | |
#define | canTRANSCEIVER_TYPE_CANFD_SIC 26 |
CAN-FD SIC transceiver. More... | |
#define | canTRANSCEIVER_TYPE_LINX_LIN 64 |
Unknown or undefined. More... | |
#define | canTRANSCEIVER_TYPE_LINX_J1708 66 |
Unknown or undefined. More... | |
#define | canTRANSCEIVER_TYPE_LINX_K 68 |
Unknown or undefined. More... | |
#define | canTRANSCEIVER_TYPE_LINX_SWC 70 |
Unknown or undefined. More... | |
#define | canTRANSCEIVER_TYPE_LINX_LS 72 |
Unknown or undefined. More... | |
Definitions for the CANLIB API.
#define canEVENT_BUSONOFF 32005 |
Bus on/off status changed.
#define canEVENT_ENVVAR 32004 |
An envvar in a t script changed.
#define canEVENT_ERROR 32002 |
when a CAN bus error is reported by the CAN controller
#define canEVENT_REMOVED 32006 |
Device removed.
#define canEVENT_RX 32000 |
when the queue of received CAN messages goes from empty to non-empty
#define canEVENT_STATUS 32003 |
when the CAN controller changes state
#define canEVENT_TX 32001 |
when a CAN message has been transmitted
#define canFDMSG_BRS 0x020000 |
Message is sent/received with bit rate switch (CAN FD)
#define canFDMSG_EDL 0x010000 |
Obsolete, use canFDMSG_FDF instead.
#define canFDMSG_ESI 0x040000 |
Sender of the message is in error passive mode (CAN FD)
#define canFDMSG_FDF 0x010000 |
Message is an FD message (CAN FD)
#define canFDMSG_MASK 0xff0000 |
Obsolete, use canFDMSG_FDF instead.
#define canMSG_ABL 0x4000000 |
Only together with canMSG_TXNACK, Single shot message was not sent because arbitration was lost. This flag is only used with received messages.
#define canMSG_DELAY_MSG 0x0100 |
Message is NOT sent on the bus. The transmission of messages are delayed. The dlc specifies the delay in milliseconds (1..1000).
#define canMSG_ERROR_FRAME 0x0020 |
Message represents an error frame.
#define canMSG_EXT 0x0004 |
Message has an extended (29-bit) identifier.
#define canMSG_LOCAL_TXACK 0x10000000 |
Message was sent from another handle on the same can channel.
#define canMSG_MASK 0x00ff |
Used to mask the non-info bits.
#define canMSG_NERR 0x0010 |
NERR was active during the message (TJA1054 hardware)
NERR was active during the message
The NERR flag is set by the CAN transceiver when certain CAN bus wire faults occur, namely:
See the TJA1054 data sheet (available from Philips) for more detailed information.
#define canMSG_RESERVED_FOR_EXTENDING 0x80000000 |
Reserved future use, tell user that there are more flags.
#define canMSG_RTR 0x0001 |
Message is a remote request.
#define canMSG_SINGLE_SHOT 0x1000000 |
Message is Single Shot, try to send once, no retransmission. This flag can only be used with transmitted messages.
#define canMSG_STD 0x0002 |
Message has a standard (11-bit) identifier.
Message has a standard ID. If a message has an extended identifier but no canMSG_EXT flag, the most significant bits of the identifier will be cut off.
#define canMSG_TXACK 0x0040 |
Message is a TX ACK (msg has really been sent)
#define canMSG_TXNACK 0x2000000 |
Message is a failed Single Shot, message was not sent. This flag is only used with received messages.
#define canMSG_TXRQ 0x0080 |
Message is a TX REQUEST (msg was transfered to the chip)
#define canMSG_WAKEUP 0x0008 |
Message is a WAKEUP message (SWC hardware.)
#define canMSGERR_BIT 0xC000 |
Any bit error.
#define canMSGERR_BIT0 0x4000 |
Sent dom, read rec.
#define canMSGERR_BIT1 0x8000 |
Sent rec, read dom.
#define canMSGERR_BUSERR 0xF800 |
Any RX error.
#define canMSGERR_CRC 0x2000 |
CRC error.
#define canMSGERR_FORM 0x1000 |
Form error.
#define canMSGERR_HW_OVERRUN 0x0200 |
HW buffer overrun.
#define canMSGERR_MASK 0xff00 |
Used to mask the non-error bits.
#define canMSGERR_OVERRUN 0x0600 |
#define canMSGERR_STUFF 0x0800 |
Stuff error.
#define canMSGERR_SW_OVERRUN 0x0400 |
SW buffer overrun.
#define canNOTIFY_BUSONOFF 0x0020 |
Notify on bus on/off status changed.
#define canNOTIFY_ENVVAR 0x0010 |
An environment variable was changed by a script. Note that you will not be notified when an environment variable is updated from the Canlib API.
#define canNOTIFY_ERROR 0x0004 |
CAN bus error notification.
#define canNOTIFY_NONE 0 |
Turn notifications off.
#define canNOTIFY_REMOVED 0x0040 |
Notify on device removed.
#define canNOTIFY_RX 0x0001 |
CAN message reception notification.
#define canNOTIFY_STATUS 0x0008 |
CAN chip status change.
#define canNOTIFY_TX 0x0002 |
CAN message transmission notification.
#define canSTAT_BUS_OFF 0x00000002 |
The circuit is Off Bus.
#define canSTAT_ERROR_ACTIVE 0x00000008 |
The circuit is error active.
#define canSTAT_ERROR_PASSIVE 0x00000001 |
The circuit is error passive.
#define canSTAT_ERROR_WARNING 0x00000004 |
At least one error counter > 96.
#define canSTAT_HW_OVERRUN 0x00000200 |
There has been at least one HW buffer overflow.
#define canSTAT_OVERRUN (canSTAT_HW_OVERRUN | canSTAT_SW_OVERRUN) |
For convenience.
#define canSTAT_RESERVED_1 0x00000040 |
The circuit is error passive.
#define canSTAT_RX_PENDING 0x00000020 |
There are messages in the receive buffer.
#define canSTAT_RXERR 0x00000100 |
There has been at least one RX error of some sort.
#define canSTAT_SW_OVERRUN 0x00000400 |
There has been at least one SW buffer overflow.
#define canSTAT_TX_PENDING 0x00000010 |
There are messages pending transmission.
#define canSTAT_TXERR 0x00000080 |
There has been at least one TX error.
#define CANSTATUS_FAILURE | ( | X | ) | ((X) != canOK) |
#define CANSTATUS_SUCCESS | ( | X | ) | ((X) == canOK) |
#define canTRANSCEIVER_LINEMODE_NA 0 |
Not Affected/Not available.
#define canTRANSCEIVER_LINEMODE_NORMAL 9 |
Normal mode (the inverse of sleep mode) for those supporting it.
#define canTRANSCEIVER_LINEMODE_OEM1 13 |
Reserved for OEM apps.
#define canTRANSCEIVER_LINEMODE_OEM2 14 |
Reserved for OEM apps.
#define canTRANSCEIVER_LINEMODE_OEM3 15 |
Reserved for OEM apps.
#define canTRANSCEIVER_LINEMODE_OEM4 16 |
Reserved for OEM apps.
#define canTRANSCEIVER_LINEMODE_SLEEP 8 |
Sleep mode for those supporting it.
#define canTRANSCEIVER_LINEMODE_STDBY 10 |
Standby for those who support it.
#define canTRANSCEIVER_LINEMODE_SWC_FAST 6 |
SWC High-Speed Mode.
#define canTRANSCEIVER_LINEMODE_SWC_NORMAL 5 |
SWC Normal Mode.
#define canTRANSCEIVER_LINEMODE_SWC_SLEEP 4 |
SWC Sleep Mode.
#define canTRANSCEIVER_LINEMODE_SWC_WAKEUP 7 |
SWC Wakeup Mode.
#define canTRANSCEIVER_LINEMODE_TT_CAN_H 11 |
Truck & Trailer: operating mode single wire using CAN high.
#define canTRANSCEIVER_LINEMODE_TT_CAN_L 12 |
Truck & Trailer: operating mode single wire using CAN low.
#define canTRANSCEIVER_RESNET_MASTER 1 |
#define canTRANSCEIVER_RESNET_MASTER_STBY 2 |
#define canTRANSCEIVER_RESNET_SLAVE 3 |
#define canTRANSCEIVER_TYPE_1041 16 |
TJA1041.
#define canTRANSCEIVER_TYPE_1041_OPTO 17 |
TJA1041 with optical isolation.
#define canTRANSCEIVER_TYPE_1050 14 |
TJA1050.
#define canTRANSCEIVER_TYPE_1050_OPTO 15 |
TJA1050 with optical isolation.
#define canTRANSCEIVER_TYPE_1054_OPTO 11 |
TJA1054 with optical isolation.
#define canTRANSCEIVER_TYPE_251 1 |
82c251
#define canTRANSCEIVER_TYPE_252 2 |
82c252, TJA1053, TJA1054
#define canTRANSCEIVER_TYPE_CANFD 22 |
CAN-FD.
#define canTRANSCEIVER_TYPE_CANFD_LIN 24 |
HYBRID CAN-FD/LIN.
#define canTRANSCEIVER_TYPE_CANFD_SIC 26 |
CAN-FD SIC transceiver.
#define canTRANSCEIVER_TYPE_DNOPTO 3 |
Optoisolated 82C251.
#define canTRANSCEIVER_TYPE_EVA 7 |
Unknown or undefined.
#define canTRANSCEIVER_TYPE_FIBER 8 |
82c251 with fibre extension
#define canTRANSCEIVER_TYPE_K 10 |
K-line, without CAN.
#define canTRANSCEIVER_TYPE_K251 9 |
K-line + 82c251.
#define canTRANSCEIVER_TYPE_KONE 20 |
KONE.
#define canTRANSCEIVER_TYPE_LIN 19 |
LIN.
#define canTRANSCEIVER_TYPE_LINX_J1708 66 |
Unknown or undefined.
#define canTRANSCEIVER_TYPE_LINX_K 68 |
Unknown or undefined.
#define canTRANSCEIVER_TYPE_LINX_LIN 64 |
Unknown or undefined.
#define canTRANSCEIVER_TYPE_LINX_LS 72 |
Unknown or undefined.
#define canTRANSCEIVER_TYPE_LINX_SWC 70 |
Unknown or undefined.
#define canTRANSCEIVER_TYPE_RS485 18 |
RS485 (i.e. J1708)
#define canTRANSCEIVER_TYPE_SWC 6 |
AU5790.
#define canTRANSCEIVER_TYPE_SWC_OPTO 12 |
AU5790 with optical isolation.
#define canTRANSCEIVER_TYPE_SWC_PROTO 5 |
AU5790 prototype.
#define canTRANSCEIVER_TYPE_TT 13 |
B10011S Truck-And-Trailer.
#define canTRANSCEIVER_TYPE_UNKNOWN 0 |
Unknown or undefined.
#define canTRANSCEIVER_TYPE_W210 4 |
Unknown or undefined.