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.”

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¶

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.
