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”。
|
![]() |
访问参数属性 |
|---|---|
|
这些公式不仅可以包含参数值,还可以包含参数的特定属性,例如最小值、最大值或步长:
在转换公式中,您还可以引用全局常量。全局常量在转换公式中使用以下方式引用: :: 例如,前缀
|
![]() |
写入访问方程式的语法 |
|---|---|
|
用于在参数 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。
| 状态 | |
|---|---|
| 键入 | 静态读取参数(尽管 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 留空:新参数将添加到包含参考算子实例的分层框中。(请注意,如果参考算子实例位于最高(处理)层级,则无法这样做。)
|
||||
| 值 | |
|---|---|
| 键入 | 静态、动态、写入、读取参数 |
| 默认 | 默认 |
| 范围 | |
|
通过为读写访问指定的方程式访问其他参数的参数。 |
|
| 描述 | |
|---|---|
| 键入 | 静态写入参数 |
| 默认 | - |
| 范围 | 任何文本 |
|
在此输入参数 Value 的描述。 |
|
| 范围 | |
|---|---|
| 键入 | 静态写入参数 |
| 默认 | "Default"=0; |
| 范围 | |
|
名称-值组合的定义。 |
|
| WriteAction | |
|---|---|
| 键入 | 静态写入参数 |
| 默认 | |
| 范围 | |
|
定义在对参数 Value 进行写入访问期间进行转换的方程。 对于此参数,您可以使用自动完成功能和语法高亮显示。要使用自动完成功能,请在“模块属性”对话框中单击此参数的“参数值”字段,然后键入“ ${ ” 。有关自动完成功能的更详细说明,请参阅“翻译器和参考运算符的自动完成和语法高亮显示” 。 |
|
| ReadAction | |
|---|---|
| 键入 | 静态写入参数 |
| 默认 | |
| 范围 | |
|
定义在对参数 Value 进行读取访问期间进行转换的方程。 方程总是以 "${this.Value}=" 开头。 对于此参数,您可以使用自动完成功能和语法高亮显示。要使用自动完成功能,请在“模块属性”对话框中单击此参数的“参数值”字段,然后键入“ ${ ” 。有关自动完成功能的更详细说明,请参阅“翻译器和参考运算符的自动完成和语法高亮显示” 。 |
|
| Activate | |
|---|---|
| 键入 | 动态写入参数 |
| 默认 | 无 |
| 范围 | {No,Yes} |
|
Yes = 激活与引用参数之间(通过读写方程)的访问。 No = 停用与引用参数之间(通过读写方程)的访问,并禁用参数 Status。参数 DisplayName 和 DisplayHierarchy 无效。 |
|
以下示例展示了 EnumParamTranslator 运算符的用法:
-
DMA、RAM、GPIO、触发器和 LED 硬件自检的示例。
-
示例 - 演示如何使用参数转换算子来操作参数。

![[提示]](../common/images/admon/tip.png)

![[重要]](../common/images/admon/important.png)






![[注意]](../common/images/admon/note.png)

上一页

