主要内容

本页采用了机器翻译。点击此处可查看英文原文。

FIFO Read Binary

根据头信息读取多个二进制数据流

  • FIFO Read Binary block

库:
Simulink Real-Time / RS232

描述

FIFO Read Binary 模块从 FIFO 中读取多个二进制头。

该模块通过查找标记数据的唯一字节序列(头信息)来识别和分离数据。每个头部都表示一个固定长度的二进制消息的开头。如果自该模块上次执行以来,相同的头信息已多次进入 FIFO,则该模块会丢弃较旧的数据。然后,它会返回该标头的最新实例。当数据到达的速度快于模块的执行速度时,该模块就会跟上数据。

示例模型 slrt_ex_serialbaseboardbinarytestslrt_ex_serialbaseboardbinarysplit 演示了如何使用 FIFO Read HDRS 模块。要查找并打开这些模型,请在 MATLAB® 命令行窗口中输入:

modelfinder('slrealtime')

有关详细信息,请参阅RS-232 串行通信RS-232 Legacy Drivers

示例

端口

输入

全部展开

连接到包含从串行端口读取的数据的软件 FIFO。

如果 true,则从 FIFO 中读取。

依赖关系

要使该端口可见,请设置参数 Enable input

输出

全部展开

包含从 FIFO 中读取的已解析数据的向量。每个输出对应一个标头。

依赖关系

要确定该向量的数据类型,请设置参数 Output vector type

数据类型: int8 | uint8 | int16 | uint16 | int32 | uint32

参数

全部展开

输入您希望该模块在 FIFO 中的数据块中查找的头部信息。将每个标题作为元胞数组中的一个元素输入,可以是带引号的字符向量,也可以是包含 char(val) 的字符串拼接(用于表示不可打印的字节模式)。

编程用法

模块参数:header

输入消息长度(以字节为单位)。将头部包含在长度中。

编程用法

模块参数:lengths

从列表中选择,当 FIFO 未收到新数据时,该模块应采取何种行为:

  • Hold last output if no new data — 该模块保留来自上一个 FIFO 消息的输出。

  • Zero output if no new data — 该模块会将输出的第一个元素覆盖为 0

编程用法

模块参数:hold

若要创建一个用于启用或禁用读取操作的输入端口,请选中此复选框。输入端口接收一个布尔信号。

依赖关系

使输入端口 E 显示出来。

编程用法

模块参数:enable

指定此模块返回的字符最大数量。生成的向量大小比该最大字符数多 1。该模块通过以下方式使用 extra 元素来指示返回的字符数:

  • 8 位数据类型的 NULL 终止符

  • 16 位和 32 位数据类型的字符数

输入足够大的数值。如果该数值过小,该模块将无法返回任何结果。例如,如果您输入的值是 10,但在执行时 FIFO 中包含 11 个字符加上空终止符,则该模块不会返回任何字符。如果该模块包含 5,则该模块返回 5 个字符以及一个 NULL 终止符。

编程用法

模块参数:maxsize

8 位数据类型会在输出向量中生成一个以 NULL 结尾的字符向量。对于 16 位和 32 位数据类型,第一个元素包含输出向量其余部分中预期元素的数量。

编程用法

模块参数:outputtype

输入基本采样时间或其倍数。-1 表示采样时间继承自父级。

编程用法

模块参数:sampletime

扩展功能

全部展开

C/C++ 代码生成
使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。

版本历史记录

在 R2020b 中推出