Operator EnumParamTranslator

Operator Library: Parameters

运算符EnumParamTranslator允许对一个或多个其他运算符的参数进行转换后的访问(读取和写入)。要进行计算,您需要定义公式。这些公式的语法符合以下规范: GenICam API 版本 2.0。

运算符EnumParamTranslator生成类型为 VA_ENUM 的映射参数。映射参数的名称为Value 。

尽管该运算符将其参数Value的类型定义为 VA_ENUM,但它并未限制在写入或读取操作期间访问的参数的数据类型。例如,运算符中定义的公式可以包含对 float 类型参数的访问。

Read Action

在参数 ReadAction 中,您可以定义对转换算子的 参数 Value 进行读取访问时发生的情况。 参数 Value 不仅仅是保存一个值。 相反,参数 Value 的值是通过公式计算得出的。 您可以在参数 ReadAction 中定义此公式。 一旦发生对参数 Value 的读取访问, 就会执行您在 ReadAction 中定义的公式, 并将结果转发给请求该值的元素。

公式可以在设计中的任何位置包含运算符参数的值。一旦这些值发生变化,转换运算符参数Value的计算结果就会发生变化(与之前的值不同)。公式不仅可以包含参数值,还可以包含参数的特定属性,例如最小值、最大值、步长或枚举项的数值。

写入操作

在参数WriteAction中,您可以定义对转换运算符的参数Value进行写入访问时发生的情况。与引用运算符不同,您并非简单地将参数Value的值传递给设计中的另一个参数。相反,参数Value的值用于您在转换运算符的参数WriteAction中定义的一组写入操作。写入操作由一个或多个等式组成。在这些等式的左侧,您可以定义哪个运算符的哪个参数接收计算结果。如果您定义了多个等式,请用分号分隔它们。一旦对参数Value进行写入访问,就会执行您在参数WriteAction中定义的等式右侧的公式,并将结果传递给等式左侧指定的参数。

该公式可以引用设计中任何位置的运算符参数值。一旦这些值发生变化,即使将相同的值重新写入“值”参数,计算结果也会有所不同。该公式不仅可以包含参数值,还可以包含参数的特定属性,例如最小值、最大值、步长或枚举项的数值。

[提示] 翻译运算符参数的语法

语法符合以下规范: GenICam API 标准版本 2.0 中允许的公式元素与 2.0 版本中定义的公式元素相同。 GenICam 标准。

[提示]

参数路径

要在设计中的任何位置访问运算符参数,需要在公式中提供该参数的路径。

要访问运算符的参数,可以使用以下结构:

“PathToModule”:在此处,您可以定义要访问其参数的运算符的相对路径。该路径相对于翻译运算符本身所在的层级。您还需要定义要访问的运算符的名称。使用斜杠作为层级分隔符。

“模块”:模块名称。

翻译运算符实例本身的名称使用“this”。

[重要] 保持模块独立性

It is not allowed to define a path towards a hierarchical level higher than the hierarchical level the translation operator is located. This rule follows the logic that a hierarchical module is not allowed to know anything about the environment it is instantiated in, because only in this case it can be used as a freely relocatable and replicable module.

[提示]

访问参数属性

这些公式不仅可以包含参数值,还可以包含参数的特定属性,例如最小值、最大值或步长:

  • ${PathToModule/Module.ParamName.From} 或 ${PathToModule/Module.ParamName.Min}参数的最小有效值 PathToModule/Module.ParamName.
  • ${PathToModule/Module.ParamName.To} 或 ${ PathToModule/Module.ParamName.Max}参数的最大有效值 PathToModule/Module.ParamName.
  • ${PathToModule/Module.ParamName.Inc}参数两个有效值之间的增量(步长) PathToModule/Module.ParamName.
  • ${PathToModule/Module.ParamName.Enum("EnumName")}枚举名称的整数值 EnumName.

在转换公式中,您还可以引用全局常量。全局常量在转换公式中使用以下方式引用: :: 例如,前缀 ${::DesignClock} 或 ${::MyGlobalConst}.

[提示]

写入访问方程式的语法

用于在参数 WriteAction 中定义的写入操作的方程式。它们的语法如下:

在这里,您可以为多个目标参数定义多个方程。使用分号分隔各个方程。

“这”指的是翻译运算符实例本身。

WriteAction 方程示例:

示例:

[提示]

读取访问方程的语法

The equation for the read action you define in parameter ReadAction. The equation always starts with "${this.Value}=" . It has the following syntax:

ReadAction 方程示例:

定义参数“Range”中枚举的语法

Use the following Syntax: "<String1>"=0;"<String2>"=1; "<String3>"=2;

示例:

参考地图参数

您可以在设计层级结构中定义一个目标,映射参数“值”将在该目标中可见并可访问。该目标由两个参数定义: DisplayHierarchy和DisplayName。DisplayHierarchy参数指向翻译运算符所在流程中的一个层级框。DisplayName参数用于设置目标参数的名称。如果DisplayHierarchy和DisplayName都已设置,则DisplayName定义的参数将在DisplayHierarchy指向的层级框中可用。如果DisplayName为空,则不会创建参数。如果DisplayName已设置但DisplayHierarchy为空,则DisplayName定义的参数将添加到父层级结构(即翻译运算符所在层级框)。

这允许您在设计的任何所需层级上访问映射参数 Value。这在处理受保护的分层框时尤其有用。您可以直接在受保护分层框自身的 Property 下使该参数可用。

映射的参数本身也可以被引用。因此,您既可以引用转换算子中参数 Value 的内容,也可以引用您在参数 DisplayName 和 DisplayHierarchy 中定义的参数。当受保护的分层框是由其他受保护的分层框构建而成时,这一点尤其重要。

该算子没有输入和输出,因为它不会干扰设计的数据流结构。

有关库参数的总体介绍,请参见 Library Parameters。

I/O Properties

财产 值
操作员类型 无(因为没有输入或输出)

Supported Link Format

无

参数

状态
键入 静态读取参数(尽管 GUI 显示为写入)
默认 无
范围 OK 或错误消息

显示错误状态。如果参数 Activate 设置为 Yes,则会检查其他算子设置。该参数显示此检查的结果,即 OK 或错误消息。

此参数不属于最终 Applet 的一部分。

DisplayName
键入 静态写入参数
默认 无
范围 任意字符串

如果您希望在设计的其他位置授予对参数 Value 的访问权限(双向),则需要定义一个新参数。在此处指定此新参数的名称。

如果此字段为空,则不会创建新参数。

DisplayHierarchy
键入 静态写入参数
默认 无
范围 任意字符串

在此处指定您要附加在参数 DisplayName 中定义的新映射参数的分层框。

对于此参数,您可以使用自动补全功能和语法高亮显示。要使用自动补全功能,请点击 Parameter Values 字段 (位于此参数的 Module Properties 对话框中),然后按键盘上的 TAB 键。有关自动补全功能的更详细说明, 请参阅 'Autocompletion and Syntax Highlighting for Translator and Reference Operators'。

如果您定义了一个新参数 DisplayName,但将参数 DisplayHierarchy 留空:新参数将添加到包含参考算子实例的分层框中。(请注意,如果参考算子实例位于最高(处理)层级,则无法这样做。)

[注意] 设置显示目标路径的语法

如果您希望新参数显示在设计的其他位置,则需要在参数 DisplayHierarchy 中指定将包含该新参数的分层框的路径。

语法如下:

<Path> is the relative path from process level to the hierarchical level of the design where the <Hierarchical Box> is located that is to receive the new parameter. Thus, parameter DisplayHierarchy can only address hierarchical boxes within the same process. Use a slash as separator between different hierarchical levels.

<HierarchicalBox> is the name of the hierarchical box that is to receive the new map parameter.

示例: Level0/Level1

值
键入 静态、动态、写入、读取参数
默认 默认
范围

通过为读写访问指定的方程式访问其他参数的参数。

描述
键入 静态写入参数
默认 -
范围 任何文本

在此输入参数 Value 的描述。

范围
键入 静态写入参数
默认 "Default"=0;
范围

名称-值组合的定义。

WriteAction
键入 静态写入参数
默认
范围

定义在对参数 Value 进行写入访问期间进行转换的方程。

对于此参数,您可以使用自动完成功能和语法高亮显示。要使用自动完成功能,请在“模块属性”对话框中单击此参数的“参数值”字段,然后键入“ ${ ” 。有关自动完成功能的更详细说明,请参阅“翻译器和参考运算符的自动完成和语法高亮显示” 。

ReadAction
键入 静态写入参数
默认
范围

定义在对参数 Value 进行读取访问期间进行转换的方程。

方程总是以 "${this.Value}=" 开头。

对于此参数,您可以使用自动完成功能和语法高亮显示。要使用自动完成功能,请在“模块属性”对话框中单击此参数的“参数值”字段,然后键入“ ${ ” 。有关自动完成功能的更详细说明,请参阅“翻译器和参考运算符的自动完成和语法高亮显示” 。

Activate
键入 动态写入参数
默认 无
范围 {No,Yes}

Yes = 激活与引用参数之间(通过读写方程)的访问。

No = 停用与引用参数之间(通过读写方程)的访问,并禁用参数 Status。参数 DisplayName 和 DisplayHierarchy 无效。

Examples of Use

以下示例展示了 EnumParamTranslator 运算符的用法: