跳转到内容
STAGING SERVER
DEVELOPMENT SERVER

Array Element Iterator vTool#

Array Element Iterator vTool 允许您迭代一个或多个输入数组的元素,并逐个输出这些元素。

Array Element Iterator 通过 Array 输入引脚接受不同类型的数组(例如图像或区域),并根据它们在内部(从零开始的)索引中的位置,通过相应的 Element 输出引脚输出元素。这允许您对数组的各个元素执行图像处理。

下载 pylon Software Suite 以使用 Array Element Iterator vTool。

Array Element Iterator vTool

运作原理#

Array Element Iterator 允许您分离数据数组的各个元素,从而能够对各个元素执行图像处理。之后,您可以使用 Array Creator vTool 将各个元素重新组合为一个数组。元素的处理根据 vTool 的内部从零开始的索引进行。此外,您还可以配置为同时原封不动地转发任何数据。这可以是数组引用的图像或区域,也可以是任何其他数据。

信息

如果连接了多个输入引脚,则所有输入必须来自相同的数据源。不支持连接来自不同、独立处理链的输入。如果您需要组合此类输入,请在 Array Element Iterator 前面添加一个 Data Synchronizer vTool 来同步输入数据。

可用参数如下:

  • Number Of Array Pins: 这定义了您可以输入的数组数量。将创建相同数量的 Element 输出引脚。输出引脚采用输入数组的数据类型,例如,如果您输入一个 RectangleF 数组,则会输出数据类型为 RectangleF 的元素。
  • Number Of Data Pins: 这定义了用于转发数据(例如图像、区域或任何其他数据)的 Data 输入引脚的数量。将创建相同数量的 Data 输出引脚。数据项会被原封不动地转发给排在后面的下一个 vTool。此参数是可选的。
  • Iteration Mode: 这定义了是要迭代数组的所有元素还是仅迭代特定范围。如果您选择 Range,则可以指定该范围的起点和终点。

迭代使用最大输入数组的大小。在 All Elements 迭代模式下,vTool 会迭代从 0 到该大小减 1 的所有索引。在基于范围的迭代模式下,仅对配置范围内的索引进行迭代。该范围会被钳位至最大数组大小。

当 vTool 迭代输入数组的元素时,它通过 Element 引脚输出每个元素,并通过 Index 引脚输出相应的索引位置。如果输入了多个数组且某个数组中不存在某个索引(例如因为它比其他数组小),则该数组的输出上不会发送任何值。LastIteration 输出引脚指示迭代的结束。如果已到达数组的最后一项,它将输出 true。如果输入了多个数组,当到达最大数组的最后一项时,它将返回 true。

错误处理#

Array with errors: 如果任何数组输入引脚接收到带有数组级错误的数组,则不会进行迭代。LastIteration 返回 true,Index 返回错误值,并且在 Element 和 Data 输出引脚上不返回任何数据。

Elements and data with errors: 有效数组内部带错误的元素以及数据输入引脚上的错误会被透明转发。它们的处理方式与有效值没有区别。

No array received: 如果所有数组输入引脚都没有接收到数组,则不进行处理且不返回任何内容。数据输入引脚上的任何值都将被忽略。

No iteration: 如果所有接收到的数组都为空,或者配置的索引范围完全在数组边界之外,则 LastIteration 返回 true,不返回 Index,并且数据输入值将被忽略。

配置 vTool#

要配置 Array Element Iterator vTool,请在 Workbench 中双击它。将打开一个对话框,显示所有可用设置。或者,您也可以在 Features - All 窗格中找到相同的设置。

输入#

ArrayN#

接受要迭代的数组。您最多可以配置 100 个数组输入引脚。

  • 数据类型:任何简单数据类型的数组(Boolean、CircleF、EllipseF、Float、Image、Integer、LineF、PointF、RectangleF、Region、String、Transformation Data)

DataN#

接受任何数据(例如图像、区域或其他数据),在每个迭代步骤中将其原封不动地传递。您可以配置最多 100 个数据引脚。

  • 数据类型:任意数据类型

输出#

ElementN#

逐个返回相应输入数组的各个元素。

  • 数据类型:与 Array 输入引脚处输入的数据类型相同,即任何简单数据类型(Boolean、CircleF、EllipseF、Float、Image、Integer、LineF、PointF、RectangleF、Region、String、Transformation Data)

DataN#

在每个步骤中原封不动地返回在相应输入端接收到的数据(例如图像、区域或其他数据)。

  • 数据类型:任意数据类型

LastIteration#

返回是否已到达数组的最后一个元素。除最后一个元素外,它对所有元素返回 false,并在最后一次迭代时返回 true。如果不发生迭代(例如,所有数组均为空、指定的范围大于最大数组,或者接收到带错误的数组),它也会返回 true。

  • 数据类型:Boolean

索引#

返回当前的索引位置。如果任何数组输入存在数组级错误,则返回错误值。如果不发生迭代,则不输出任何内容。

  • 数据类型:整数