# BusSelector
从输入总线中选择元素
库: Sysblock模块库 / SignalRouting
# 描述
BusSelector 模块从输入总线层次结构中按名称提取您选择的元素。该模块可以分别输出选定的各个元素或在一个新的虚拟总线中输出所有选定元素。当模块分别输出选定元素时,每个选定元素对应于一个输出端口。当模块输出新的虚拟总线时,对于包含所有选定元素的虚拟总线,该模块具有一个与之对应的输出端口。
虽然多个元素在总线层次结构中的不同位置可以具有相同的名称,但每个元素都有唯一的完全限定名称供 BusSelector 模块使用。例如,顶层总线和一个嵌套总线都可以有名为 chirp 的元素。顶层总线中该元素的完全限定名称为 chirp。嵌套总线中该元素的完全限定名称为 nestedbus.chirp,其中 nestedbus 是嵌套总线的名称。
# 示例
参考模型示例
。
# 示例说明
- Constant 模块:提供固定的数值作为输入信号;
- BusCreator 模块:将多个输入信号合并为一个总线信号。这个模块可以处理不同类型的元素,包括信号、其他总线,甚至是消息;
- BusSelector 模块:从总线信号中提取特定的信号,以便进一步处理或观察。在这个示例中,我们从总线中提取了名为 signal1 和 signal2 的信号;
- Scope 模块:用于显示模型的输出结果,即从总线中提取的特定信号。
# 端口
# 输入
u — 输入虚拟或非虚拟总线总线
# 输出
y1 — 输入总线的所选元素标量 | 向量 | 矩阵 | 数组 | 总线
默认情况下,模块将每个所选元素从一个单独的输出端口输出,该端口上标有对应总线元素的名称。当输出为虚拟总线参数启用时,模块从一个端口输出所选元素,并在一个虚拟总线中组合这些元素。
数据类型: float | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | boolean | fixedPoint | enum | bus
y2 — 输入总线的所选元素标量 | 向量 | 矩阵 | 数组 | 总线
默认情况下,模块将每个所选元素从一个单独的输出端口输出,该端口上标有对应总线元素的名称。当输出为虚拟总线参数启用时,模块从一个端口输出所选元素,并在一个虚拟总线中组合这些元素。
数据类型: float | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | boolean | fixedPoint | enum | bus
# 参数
要以交互方式编辑模块参数,请双击该模块。
总线中的信号 — 输入总线中元素的列表元素名称列表
此属性为只读
输入元素列表包括进入模块的所有元素,包括嵌套总线的元素。元素旁边的箭头表示输入元素是总线。要显示该总线的内容,请单击箭头。
选择的信号 — 输入总线的所选元素元素名称的列表
此列表中的每个元素都包含在模块输出中。
要向模块输出添加元素,请执行以下操作:
从总线中的信号列表中选择一个或多个元素。
如果您是从总线中的信号列表中选择多个元素,则您选择它们的顺序将设置它们在所选元素列表中的顺序。
(可选)指定您要元素出现在所选元素列表中的位置。选择希望添加的元素出现在其下方的元素。如果不选择元素,添加的元素会出现在列表的末尾。
单击选择。
或者,在 Sysblock 编辑器中,当输入端口接收总线并且所有输出端口都连接到其他端口时,在 BusSelector 模块的输出端口附近绘制一条新信号线。Sysblock 提示您指定要选择的元素,并为您指定的元素添加端口。当以虚拟总线输出处于选中状态时,您无法以这种方式创建端口。
要更改输出元素的顺序,请在列表中选择一个元素或多个连续的元素,然后单击上移或下移。当您更改元素顺序时,端口会保持连接。
要从模块输出中删除元素,请在列表中选择元素,然后单击移除。
如果列表中的某个元素不在输入总线中,则该元素名称以三个问号 (???) 开头。请修改输入总线以包含指定名称的元素,或从列表中删除该元素。
限制: 为了避免递归限制,请为每个 BusSelector 模块选择少于 500 个元素。
输出为虚拟总线 — 将所选元素作为虚拟总线输出的选项“off” (默认) | “on”
默认情况下,模块将每个所选元素从一个单独的输出端口输出,该端口上标有对应总线元素的名称。选择此参数可从一个端口输出所选元素,这些元素组合在一个虚拟总线中。
当所选元素列表中只有一个元素而您启用了以虚拟总线输出时,则该元素不会包装在总线中。例如,如果元素是一个总线,则输出元素是该总线。如果该元素不是总线,则输出元素不是总线。
# 版本历史记录
- 在 2024b 之前推出
# 限制信息
- 暂不支持按名称过滤的功能;
- 暂不支持启用正则表达式的复选框;
- 暂不支持将过滤结果显示为扁平列表的复选框;
- 输入端口暂不支持float、double、half、int8、int16、int32、int64、uint8、uint16、uint32、uint64、string、boolean、fixedPoint 和 enum 的数据类型,输出端口暂不支持 half、int64、uint64 和 string 的数据类型,且都不支持复数;