Main Content

Packet Input

Read binary data or a CAN message from a communication channel

  • Packet Input block

Libraries:
Simulink Desktop Real-Time

Description

The Packet Input block reads unformatted binary data from a port or file. After you add a Packet Input block to your model, double-click the block to set its parameters.

The driver must be one of:

  • Standard Devices > File

  • Standard Devices > Serial Port

  • Standard Devices > TCP Protocol

  • Standard Devices > UDP Protocol

  • Kvaser > CAN Device

  • PEAK-System > CAN Device

  • Vector > CAN Device

  • MathWorks > virtual CAN (requires Vehicle Network Toolbox™)

Configuration for UDP Protocol Device

When you install a UDP device, use the Standard Devices UDP Protocol dialog box to configure these configuration parameters:

  • Local UDP port address in decimal format

  • Remote host name or IP address

  • Remote UDP port address in decimal format

  • Receive multicast messages enable or disable

Configure the UDP connection by using the Standard Device UDP Protocol dialog

Examples

Ports

Output

expand all

Data values that were received from the communication channel as unformatted binary data. For CAN or Virtual CAN devices, this port supports:

  • CAN_MESSAGE datatype

  • CAN_MESSAGE_BUS datatype

  • CAN_FD_MESSAGE_BUS datatype in CAN FD mode

This port signals 1 if the block has new data available and 0 otherwise.

Dependency

When you select Show “Data Ready” port, this port is visible.

This port signals 1 if a data error occurs and 0 otherwise.

Dependency

When you select Show “Data Error” port, this port is visible.

This port shows the timestamp for the CAN message packets.

Dependency

When you select Show packet timestamp port, this port is visible.

In Connected IO mode, returns the number of timer ticks that your model lags behind the real-time kernel. When the model lags by more than Maximum missed ticks, the software reports an error and simulation stops.

Dependency

When you select Show “Missed Ticks” port, this port is visible.

Data Types: double

Parameters

expand all

When you click Install new board, the software displays a list of manufacturers of supported boards. When you select a manufacturer, the software displays a list of boards available from that manufacturer. When you select a board, the software adds the board to the list of registered boards and makes that board the current board.

By default, the initial selection in the list of registered boards is < no board selected >.

For more information about driver support for I/O boards, see Hardware Support from Simulink Desktop Real-Time.

Dependency

When you select a board in the list of registered boards, the Delete current board and Board setup buttons are available.

Programmatic Use

Block Parameter: DrvName

To delete the current board, click this button. The initial selection of the list of registered boards changes to < no board selected >.

Dependency

To activate this parameter, select a board in the list of registered boards.

When you delete the current board, the Delete current board and Board setup buttons are no longer available.

Programmatic Use

Block Parameter: DrvName

To set up the board, click this button.

A board-specific dialog box opens to set up the board. For more information, see the board manufacturer documentation.

Dependency

To activate this parameter, select a board in the list of registered boards.

To deactivate this parameter, click Delete current board.

Programmatic Use

Block Parameter: DrvAddress
Block Parameter: DrvOptions

Enter a value, in seconds, that represents how frequently you want the block to execute and interact with the I/O hardware. The block synchronizes your model with the real-time clock at this sample rate.

If you are using a fixed-step solver, enter the value that you entered as the Fixed step size configuration parameter or an integer multiple of that value.

Programmatic Use

Block Parameter: SampleTime

In Connected IO mode, enter the number of timer ticks that your model can lag behind the real-time kernel. When the model lags behind by this number or fewer timer ticks, the software assumes that the lag is temporary. It allows the model to catch up, even if the model misses some ticks. When the model lags by more than this number, the software reports an error and simulation stops.

In Run in Kernel mode, the software ignores this value.

Programmatic Use

Block Parameter: MaxMissedTicks

In Connected IO mode, select this check box to send the number of missed ticks to output port Missed Ticks.

In Run in Kernel mode, the Missed Ticks port is zero.

Programmatic Use

Block Parameter: ShowMissedTicks

In Connected IO mode, select this check box to grant other programs more CPU time while the kernel waits for a response from the hardware.

In Run in Kernel mode, the software ignores this value.

Programmatic Use

Block Parameter: YieldWhenWaiting

Enter the ID of the packet to process. If your protocol does not have packet IDs, this parameter is disabled.

Programmatic Use

Block Parameter: PacketID

Select this check box if Packet identifier is an extended identifier.

Programmatic Use

Block Parameter: PacketID

Enter the number of bytes expected in each input packet. This number must match the number of bytes required by the type specifications in Block output data types.

Programmatic Use

Block Parameter: PacketSize

One or more character vectors that specify how the data in each packet is to be typed and grouped for input to the application. The Packet Input block has an output port corresponding to each character vector in Block output data types. Changing the number of character vectors changes the number of output ports.

Each character vector has the format [n*]datatype. The data that the character vector describes has the type specified by datatype and the width specified by n. If n is not specified, the width is 1. For example, 'double' means one double value, and '4*int8' means a vector of four int8 values. You can also type 'CAN_MESSAGE' to specify a single CAN_MESSAGE value.

By providing a cell array of such character vectors, you can convert an input packet into the types required, packaged into vectors. For example, specifying {'int16','int16','double'} creates three ports. The first and second each output an int16 value, and the third outputs a double. Specifying {'2*int16','double'} creates two ports: a vector of two int16 values, and a scalar double.

The block forces an out-of-range value to the maximum value for that data type.

Programmatic Use

Block Parameter: DataTypes

From the list, select:

  • Little Endian (default) — Send multibyte values in little-endian format.

  • Big Endian — Send multibyte values in big-endian format.

Programmatic Use

Block Parameter: ByteOrder

When you select this check box, the block makes visible the output port Data Ready. This port signals 1 when the block has new data available and 0 otherwise.

Programmatic Use

Block Parameter: ShowReady

When you select this check box, the block makes visible the output port Data Error. This port signals 1 when a data error occurs and 0 otherwise.

Programmatic Use

Block Parameter: ShowError

When you select this check box, the block makes visible the output port Timestamp. This port shows the timestamps for the CAN message packets. If your protocol does not have packet timestamps, the block ignores this value.

Programmatic Use

Block Parameter: ShowTimestamp

Version History

Introduced in R2007b

expand all