11. Reader Block

The Reader block represents a DDS data reader entity.

In DDS - “To access the received data, the application must use a typed DataReader attached to the subscriber.”

DDS Reader Block

Port Type

Optional

Name

Description

Output consumed by

Input

yes

psub

DDS Subscriber entity instance

Input

no

topic

DDS Topic entity instance

Output

yes

status

0 for successful reader creation

Output

no

data

BUS

user

Output

yes

info

BUS

user

Output

yes

samples read

Number of samples read

user

11.1. Reader Block Parameters

Reader Block Parameters

11.1.1. Data Tab

The Data tab is used to set:

  • Bus Type

    The output data type (BUS) for the data output port

  • Mode: take or read

    Specify whether the reader block is accessing the samples using DDS take or DDS read.

  • Sample Time

    “The sample time of a block is a parameter that indicates when, during simulation, the block produces outputs and if appropriate, updates its internal state.” -Simulink documentation

    Default is -1, meaning it will inherit the Simulink sample time from inputs or the model. Valid values: -1 and Numeric > 0

  • Bus Width

    The bus width is the maximum number of samples that can be read or take(n) per block step. Valid values for the bus width are: integers >= 1.

  • Wait for

    Checking the Historical Data field in the Wait for section specifies that the Reader will wait for historical data to arrive. The Timeout field is for setting time period (in seconds) determining how long the Reader should wait for the historical data. If the timeout is reached, then any remaining historical data may be interleaved with new data.

    The Data Available field is for specifying whether the Reader should read only if the data is available. The following Timeouts field determines how long the Reader should wait for the availability of data. If the timeout is reached, then the block returns no data and the simulation continues.

11.1.2. Ports Tab

The Ports tab allows the user to toggle on or off optional ports.

11.1.3. QoS Tab

The QoS tab is used to set the QoS profile. By default, the OSPL default profile is used.

In DDS - The Data-Distribution Service (DDS) relies on the usage of QoS. A QoS (Quality of Service) is a set of characteristics that controls some aspect of the behavior of the DDS Service.

Each DDS block has an associated QoS profile. By default, the OSPL default profile is used. An XML file that specifies QoS profiles can be used to set the QoS of a DDS block.

11.1.4. Filters Tab

The filters tab allows for the filtering of incoming samples. The filtering can happen based on a query and/or on a sample read condition(s).

Query

Expression: The expression is a SQL condition.

Parameters: N parameters in the format {‘a’, ‘b’} Each parameter element must be a char array (string).

Note: Query expressions are only validated at runtime.

Read Condition

The read conditions specified will filter the samples that are read or take(n).

Example: For a reader, the Sample State has Read selected and Not Read deselected.

Only samples with a Sample State Read will be processed with read or take. Any samples with the Not Read sample state will not be read or take(n).

Note: At least one read condition must be selected for each category of Sample State, View State, or Instance State. If not, an error will be thrown when a diagram simulation is run.

Reader Block Parameters : Filters