Operator EnumParamTranslator

Operator Library: Parameters

Operator EnumParamTranslator 允许对一个或多个其他运算符的参数进行转换访问(读取和写入)。 您可以通过定义公式来进行计算。这些公式的语法符合 GenICam API 2.0 版本。

Operator EnumParamTranslator 生成一个 VA_ENUM 类型的映射参数。 该映射参数的名称为 Value。

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

Read Action

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

该公式可以包含设计中任意位置的算子参数值。 一旦这些值发生变化,转换算子参数 Value 的计算将会产生一个新结果 (与之前所持有的参数值 Value 不同)。 该公式不仅可以合并参数的值,还可以合并参数的特定 Property, 例如最小值、最大值、步长或枚举项的数值。

Write Action

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

该公式可以引用设计中任意位置 的算子参数值。一旦这些值之一发生变化, 当您向 Value 参数重新写入与之前相同的值时, 计算结果将会不同。 该公式不仅可以合并参数的值, 还可以合并参数的特定 Property,例如最小值、 最大值、步长或枚举项的数值。

[提示] 转换运算符参数的语法

语法符合 GenICam API 2.0 标准。 允许的公式元素与 GenICam 标准中定义的公式元素相同。

[提示]

参数路径

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

要访问算子的参数,请使用以下结构:

"PathToModule":在此处,您定义要访问其参数的运算符的相对路径。 该路径相对于转换运算符本身所在的层次级别。 您还定义了被访问运算符的名称。使用斜杠作为层次结构分隔符。

"Module":模块名称。

对于翻译算子实例本身的名称,请使用名称 "this"。

[重要] 保持您的模块独立

不允许定义指向高于转换运算符所在层次级别的路径。 这一规则遵循以下逻辑:层次化模块不允许了解有关其实例化环境的任何信息,因为只有在这种情况下,它才能被用作可自由重定位和复制的模块。

[提示]

访问 Property

公式不仅可以纳入参数的值, 还可以纳入参数的特定 Property,例如最小值、最大值或步长:

  • ${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 中定义的写操作方程。它们具有以下语法:

在此处,您可以为多个目标参数定义多个方程。使用分号作为各个 方程之间的分隔符。

"this" 指代翻译算子实例本身。

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;

示例:

引用映射参数

您可以在设计层级中定义一个目标,在该目标中映射参数 Value 将可见且可访问。 该目标由两个参数定义:DisplayHierarchy 和 DisplayName。 在 DisplayHierarchy 中,您可以寻址翻译算子本身所在的 同一进程内的分层框。 在参数 DisplayName 中,您为目标参数设置名称。 如果 DisplayHierarchy 和 DisplayName 均已设置, 则由 DisplayName 定义的参数将可在 由 DisplayHierarchy 寻址的分层框中使用。 如果 DisplayName 为空,则不创建任何参数。 如果 DisplayName 已设置,但 DisplayHierarchy 为空, 则由 DisplayName 定义的参数将被添加到父层级(即翻译算子 本身所在的分层框)。

这使您能够使映射参数 Value 在所需的任何(设计)层级上都可访问。 这在使用受保护的分层框时特别有用。 您可以直接在受保护分层框本身的 Property 下使该参数可用。

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

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

您可以在“库参数”中找到有关库参数的一般介绍。

I/O Property

Property 值
Operator Type 无(因为没有输入或输出)

Supported Link Format

无

参数

状态
键入 静态读取(尽管 GUI 显示为写入)参数
默认 没有任何
范围 成功或错误信息

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

此参数不包含在最终的小程序中。

显示名称
键入 静态写参数
默认 没有任何
范围 任何字符串

如果您想要在设计的其他位置 对参数 Value 进行访问授权(输入和输出), 您需要定义一个新参数。 请在此处指定此新参数的名称。

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

显示层级
键入 静态写参数
默认 没有任何
范围 任何字符串

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

对于此参数,您可以使用自动完成功能和语法高亮显示。要使用自动完成功能,请点击 Module Properties 对话框中 此参数的 Parameter Values 字段 ,并按下键盘上的 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

值
键入 static, dynamic, write, read parameter
默认 默认
范围

用于通过为读写访问指定的等式 访问其他参数的参数。

描述
键入 静态写参数
默认 -
范围 any text

在此处输入参数 Value 的描述。

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

名称-值组合的定义。

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

定义在对参数 Value 进行写访问期间进行转换的公式。

对于此参数,您可以使用自动补全功能和语法高亮显示。要使用自动补全功能,请点击 此参数在 Module Properties 对话框中的 Parameter Values 字段, 并键入 “${”。有关自动补全功能的更详细说明, 请访问 'Autocompletion and Syntax Highlighting for Translator and Reference Operators'。

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

定义在对参数 Value 进行读访问期间进行转换的公式。

该公式始终以 "${this.Value}=" 开头。

对于此参数,您可以使用自动补全功能和语法高亮显示。要使用自动补全功能,请点击 此参数在 Module Properties 对话框中的 Parameter Values 字段, 并键入 “${”。有关自动补全功能的更详细说明, 请访问 'Autocompletion and Syntax Highlighting for Translator and Reference Operators'。

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

Yes = 启用对引用参数的访问以及来自引用参数的访问(通过读写公式)。

No = 禁用对引用参数的访问以及来自引用参数的访问(通过读写公式) 并禁用参数 Status。 参数 DisplayName 和 DisplayHierarchy 将不生效。

使用示例

以下示例展示了 operator EnumParamTranslator 的使用:

  • 'Hardware Test'

    DMA、RAM、GPIO、触发和 LED 硬件自检的示例。

  • 'Parameter Translation'

    Examples - Demonstration how to use the parameter translation operators for manipulation of parameters.