OpenLcbCLib 1.0 Alpha
OpenSource C Library to create OpenLcb/Lcc Nodes
Loading...
Searching...
No Matches
CAN Frame Format and Masks

CAN 29-bit extended identifier bit definitions and frame type codes. More...

Macros

#define RESERVED_TOP_BIT   0x10000000
 Reserved bit in CAN identifier - must always be 0.
 
#define CAN_OPENLCB_MSG   0x08000000
 OpenLCB message indicator - bit 27 set means this is an OpenLCB message, clear means CAN control frame.
 
#define MASK_CAN_FRAME_SEQUENCE_NUMBER   0x07000000
 Mask for frame sequence number bits (26-24) in CAN control frames.
 
#define MASK_CAN_FRAME_TYPE   MASK_CAN_FRAME_SEQUENCE_NUMBER
 Mask for frame type bits (26-24) in OpenLCB messages - same bits as sequence number.
 
#define MASK_CAN_VARIABLE_FIELD   0x00FFF000
 Mask for variable field (bits 23-12) containing MTI in OpenLCB messages.
 
#define OPENLCB_MESSAGE_STANDARD_FRAME_TYPE   0x01000000
 Frame type: Global or addressed OpenLCB message.
 
#define CAN_FRAME_TYPE_DATAGRAM_ONLY   0x02000000
 Frame type: Datagram complete in single frame.
 
#define CAN_FRAME_TYPE_DATAGRAM_FIRST   0x03000000
 Frame type: First frame of multi-frame datagram.
 
#define CAN_FRAME_TYPE_DATAGRAM_MIDDLE   0x04000000
 Frame type: Middle frame of multi-frame datagram.
 
#define CAN_FRAME_TYPE_DATAGRAM_FINAL   0x05000000
 Frame type: Final frame of multi-frame datagram.
 
#define CAN_FRAME_TYPE_RESERVED   0x06000000
 Frame type: Reserved for future use.
 
#define CAN_FRAME_TYPE_STREAM   0x07000000
 Frame type: Stream data frame.
 

Detailed Description

CAN 29-bit extended identifier bit definitions and frame type codes.

Macro Definition Documentation

◆ RESERVED_TOP_BIT

#define RESERVED_TOP_BIT   0x10000000

Reserved bit in CAN identifier - must always be 0.

◆ CAN_OPENLCB_MSG

#define CAN_OPENLCB_MSG   0x08000000

OpenLCB message indicator - bit 27 set means this is an OpenLCB message, clear means CAN control frame.

◆ MASK_CAN_FRAME_SEQUENCE_NUMBER

#define MASK_CAN_FRAME_SEQUENCE_NUMBER   0x07000000

Mask for frame sequence number bits (26-24) in CAN control frames.

◆ MASK_CAN_FRAME_TYPE

#define MASK_CAN_FRAME_TYPE   MASK_CAN_FRAME_SEQUENCE_NUMBER

Mask for frame type bits (26-24) in OpenLCB messages - same bits as sequence number.

◆ MASK_CAN_VARIABLE_FIELD

#define MASK_CAN_VARIABLE_FIELD   0x00FFF000

Mask for variable field (bits 23-12) containing MTI in OpenLCB messages.

◆ OPENLCB_MESSAGE_STANDARD_FRAME_TYPE

#define OPENLCB_MESSAGE_STANDARD_FRAME_TYPE   0x01000000

Frame type: Global or addressed OpenLCB message.

◆ CAN_FRAME_TYPE_DATAGRAM_ONLY

#define CAN_FRAME_TYPE_DATAGRAM_ONLY   0x02000000

Frame type: Datagram complete in single frame.

◆ CAN_FRAME_TYPE_DATAGRAM_FIRST

#define CAN_FRAME_TYPE_DATAGRAM_FIRST   0x03000000

Frame type: First frame of multi-frame datagram.

◆ CAN_FRAME_TYPE_DATAGRAM_MIDDLE

#define CAN_FRAME_TYPE_DATAGRAM_MIDDLE   0x04000000

Frame type: Middle frame of multi-frame datagram.

◆ CAN_FRAME_TYPE_DATAGRAM_FINAL

#define CAN_FRAME_TYPE_DATAGRAM_FINAL   0x05000000

Frame type: Final frame of multi-frame datagram.

◆ CAN_FRAME_TYPE_RESERVED

#define CAN_FRAME_TYPE_RESERVED   0x06000000

Frame type: Reserved for future use.

◆ CAN_FRAME_TYPE_STREAM

#define CAN_FRAME_TYPE_STREAM   0x07000000

Frame type: Stream data frame.


Copyright (c) 2026 Jim Kueneman all rights reserved. See the License