Array Creator vTool#
Array Creator 通过 Element 输入引脚接受不同类型的元素(例如图像或区域),并通过 Array 输出引脚输出组合后的元素。
下载 pylon Software Suite 以使用 Array Creator vTool。

运作原理#
Array Creator 旨在与 Array Element Iterator 结合使用,以便在配方中进行灵活的数组处理,但您也可以将其与其他 vTool 独立使用。
在每次更新时(即数据到达 Element 输入引脚时),Array Creator 会读取索引,并将来自每个 Element 输入引脚的值写入该位置的对应输出数组中。如果在给定索引处多次写入值,则最近接收到的值将覆盖任何先前的植。您最多可以创建 100 个 Element 输入引脚。系统将创建相同数量的 Array 输出引脚。
Index 输入引脚指定将每个新元素写入相应输出数组的位置。LastIteration 输入引脚指示序列的结束,此时将输出收集到的数组。
Array 输出引脚的数据类型将与输入到 Element 输入引脚的数据类型相同。
信息
如果使用 Array Element Iterator,则必须连接 LastIteration 和 Index 输入引脚,Array Creator 才能正常工作。如果没有这些引脚,vTool 将无法确定写入传入元素的位置或发射收集到的数组的时机。如果其中一个引脚保持未连接状态,则每次更新都会在所有输出引脚上生成带有数组级错误的数组,且不会收集任何数据。
如果在 LastIteration 输入引脚上接收到 true 且在 Index 输入引脚上接收到有效的输入,则接收到的元素将照常存储,然后输出所有数组。如果在 LastIteration 输入引脚上接收到 true 但未接收到 Index 输入,则将忽略 Element 输入引脚中的任何值,并按原样输出包含迄今为止收集的所有值的数组。输出后,所有内部数组都会重置为空。
错误处理#
缺少所需的连接: 如果 LastIteration 或 Index 输入引脚未连接,则每次更新都会在所有输出引脚上生成带有数组级错误(LastIteration 和 Index 输入引脚必须同时连接。)的数组,且不会收集任何数据。
LastIteration 包含错误: 如果 LastIteration 输入引脚接收到带有错误状态的值,Array Creator 将在所有输出引脚上输出带有数组级错误(在 LastIteration 输入上接收到带错误的 Element)的数组并重置其内部状态。
最后一次迭代中的索引无效: 如果在 LastIteration 引脚上接收到 true 且 Index 值无效(为负数、超出配置的 Maximum Number Of Elements 限制或具有错误状态),则会在所有输出引脚上输出带有数组级错误(Index 超出范围)的数组。所有先前收集的值将被丢弃。
非最后一次迭代中的索引无效: 如果在 LastIteration 引脚上接收到 false(或未接收到值)且 Index 值无效(为负数、超出配置的 Maximum Number Of Elements 限制或具有错误状态),Array Creator 会记录错误并忽略该更新。先前收集的值将得以保留。
输入引脚上的元素包含错误: 具有错误状态的传入元素不会被视为与有效值不同,并将透明地转发到输出数组中。
未初始化的位置: 如果 Index 输入导致输出数组中出现间隙(例如,索引从 0 跳到 3),则中间位置(例如 1、2)将填充错误值(未在此位置接收到元素。)。
配置 vTool#
要配置 Array Creator vTool,请在 Workbench 中双击它。随后会打开一个对话框,显示所有可用的设置。或者,您也可以在 Features - All 窗格中找到相同的设置。
输入#
ElementN#
接受来自任何 vTool 的数据。引脚的数据类型会自动适应提供的第一个输入。支持所有简单数据类型(例如 String、Float、Boolean、Integer、PointF2D 等),但不支持数组类型。
- 数据类型:Boolean、CircleF、EllipseF、Float、Image、Integer、LineF、PointF、RectangleF、Region、String、Transformation Data
LastIteration#
接受来自 Array Element Iterator 的 true 或 false,这指示当前元素是否是完成数组的最后一个元素。如果接收到 true,Array Creator 将输出收集到的数组并重置其内部缓冲区,以便为下一个序列做好准备。如果在更新期间未在此引脚上接收到值,则 vTool 假定为 false(不是最后一次迭代)。
- 数据类型:Boolean
索引#
接受与 ElementN 输入引脚上接收到的输入相关的索引位置(整数)。然后,该元素将被写入输出数组中的相应索引位置。如果接收到的索引超出了数组的当前大小,数组将相应地调整大小。未使用的位置将用错误值进行 Fill。
- 数据类型:整数
输出#
ArrayN#
为每个 Element 输入引脚返回一个数组。该数组包含在整个迭代序列中从相应输入引脚收集的所有值。当在 LastIteration 输入引脚上接收到 true 时,将输出这些数组。从未写入的位置的元素将用错误值进行 Fill。
- 数据类型:通过相应的 Element 引脚输入的数组数据类型