Main Content

receive

Receive messages from CAN bus

Description

message = receive(canch,numMsgs,OutputFormat="timetable") returns a timetable of CAN messages received on the CAN channel canch. The number of messages returned is less than or equal to numMsgs. If fewer messages are available than numMsgs specifies, the function returns the currently available messages. If no messages are available, the function returns an empty array. If numMsgs is Inf, the function returns all available messages. Incoming available messages are retained in a FIFO buffer, so that receive returns the oldest available message first.

To understand the elements of a message, refer to canMessage.

The OutputFormat option value of "timetable" specifies that results are returned in a timetable of messages, rather than as message objects. This output format is recommended for optimal performance and representation of CAN messages in MATLAB®.

message = receive(canch,numMsgs) returns an array of CAN message objects instead of a timetable if the channel ProtocolMode is 'CAN'. If the channel ProtocolMode is 'CAN FD' the receive function always returns a timetable.

example

Examples

collapse all

You can receive CAN messages as a timetable or as an array of message objects.

Receive all available messages as a timetable.

canch = canChannel("Vector", "CANCaseXL 1", 1);
start(canch)
message = receive(canch,Inf,OutputFormat="timetable");

Receive up to five messages as an array of message objects.

message = receive(canch,5);

Input Arguments

collapse all

CAN channel, specified as a CAN channel object. This is the channel by which you access the CAN bus.

Example: canChannel

Maximum number of messages to receive, specified as a positive numeric value or Inf.

Example: Inf

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Output Arguments

collapse all

CAN messages from the channel, returned as the type indicated in the following table:

Protocol ModeReturned Type
ProtocolMode = 'CAN FD'
  • Timetable of messages (always)

ProtocolMode = 'CAN'
  • Message objects (default)

  • Timetable of messages (when OutputFormat="timetable")

The variables of the returned timetables are different for CAN or CAN FD messages, according to the protocol specification.

Version History

Introduced in R2009a

See Also

Functions