Read multiple binary data streams according to header information
Simulink Real-Time / RS232
The FIFO Read Binary block reads multiple binary headers from a FIFO.
This block identifies and separates data by finding unique byte sequences (headers) that mark the data. Each header indicates the start of a fixed-length binary message. If the same header arrived in the FIFO more than once since the block was last executed, the block discards the older data. It then returns the latest instance of the header. In this way, the block catches up with data that arrives faster than the block executes.
contains the following examples that illustrate how to use the FIFO Read HDRS block:
F— FIFO from which to read data
Connects to the software FIFO containing data read from the serial port.
E— Enable read from FIFO
true, read from FIFO.
To cause this port to become visible, set parameter Enable input.
1— Numbered output streams, one per header
Vectors containing the parsed data read from the FIFO. Each output corresponds to one of the headers.
To determine the data type of this vector, set the parameter Output vector type.
Header— Search targets in binary data stream
Enter the headers that you want the block to look for in a block of data
from the FIFO. Enter each header as an element in a cell array either as a
quoted character vector or a concatenation with
for non-printable byte patterns.
Message Lengths— Message lengths, in bytes
1024(default) | integer
Enter the message length, in bytes. Include the header in the length.
Output behavior— Behavior when no new data
Zero output if no new data(default) |
Hold last output if no new data
From the list, select the behavior of the block if the FIFO has not received new data:
Hold last output if no new
data — Block keeps the output from the last FIFO
Zero output if no new data —
Block overwrites the first element of the output with
Enable input— Enable read from FIFO
To create an input port that enables or disables the read operation, select this check box. The input port takes a Boolean signal.
Causes input port
E to become visible.
Maximum read size— Maximum number of characters returned by block
1024(default) | integer
Specify the maximum number of characters for this block to return. The resulting vector size is one more than this maximum number of characters. This block indicates the number of characters being returned using the extra element as:
A null terminator for the 8-bit data types
The character count for the 16-bit and 32-bit data types
Enter a large enough number. If this number is too small, the block cannot return anything. For example, if you enter the value
10, but on execution the FIFO contains
11 characters plus the null terminator, the block does not return any characters. On the other hand, if it contains
5, the block returns
5 characters plus the null terminator.
Output vector type— Specify output data type
8 bit uint null terminated(default) |
count+32 bit int|
count+32 bit uint|
count+16 bit int|
count+16 bit uint|
8 bit int null terminated
The 8-bit data types produce a null terminated character vector in the output vector. For 16-bit and 32-bit data types, the first element contains the number of elements to expect in the rest of the output vector.