オペレーター LinkParamTranslator

Operator Library: Parameters

このオペレーターは、接続されたリンクのPropertyへの読み取りまたは書き込みアクセスを提供します。書き込みアクセスにより、書き込みアクションを介した二次的なパラメータのアップデートがトリガーされる場合があります。

このオペレーターの利点は、ライブラリの他のオペレーターである Parameters を介してリンクPropertyを変更できることです。さらに、このオペレーターを使用して、リンクPropertyが変更されたときに他のモジュールパラメータを変更することもできます。そのために書き込みアクションを定義できます。また、このオペレーターを使用してリンクPropertyを固定し、複数のリンクProperty間の依存関係を強制することもできます。

出力ポート O のリンクフォーマットは、入力ポート I のフォーマットに厳密に従います。モジュールパラメータには、ポート I におけるリンクPropertyの現在のステータスが反映されます。モジュールパラメータを Read(デフォルト)から Write に変更できます。Read モードは、対応するリンクPropertyが読み取り専用であることを意味します。これにより、オペレーターは LinkProperties オペレーターと同様に機能します。パラメータが Write に設定されている場合、このパラメータを設定できます。その場合、パラメータ値が対応するリンクPropertyに伝播されます。これにより、出力ポート O の対応するリンクPropertyを編集できなくなるという追加の効果があり、リンクPropertyを選択的にフリーズするのに便利です。さらに、入力接続からの対応するリンクPropertyは、I および O のPropertyに伝播されなくなります。Write モードでは、接続された入力リンクの同じPropertyを編集できない場合でも、リンクPropertyパラメータを編集できます。その場合、接続されている前のモジュールのフォーマットが LinkParamTranslator インスタンスのフォーマットと一致しないことを示すエラーが入力リンクに表示されることがあります。

パラメータ WriteAction では、リンクPropertyが変更されたときに何が起こるかを定義します。パラメータ Activate は、WriteAction で定義された書き込みアクションを有効にします。

  • Activate が No に設定されている場合、アクセスフラグが Write であるパラメータは変更可能ですが、書き込みアクションは実行されません。どのリンクPropertyも静的パラメータであるため、可能な書き込みターゲットも静的である必要があります。
  • 書き込みターゲットが自モジュールのパラメータである場合、指定されたモジュールパラメータのモードは Read または Write になります。
  • パラメータのモードが Read である場合、書き込みアクションを使用して、リンクPropertyに特定のルールを適用することができます。

書き込みアクションは、1つまたは複数の数式で構成されます。複数の数式を定義する場合は、セミコロンで数式を区切ってください。これらの数式の左側では、どのモジュールのどのパラメータが計算結果を受け取るかを定義します。表記法を使用します this このモジュールのパラメータを参照する場合。受信したリンクのアップデート、またはこのモジュールのパラメータへの書き込みアクセスのいずれかによってリンクPropertyが変更されるとすぐに、パラメータ WriteAction で定義した数式の右側にある数式が実行され、その結果が数式の左側で指定されたパラメータに転送されます。左側と同様に、次のような表記法を使用してこのモジュールのパラメータを参照できます this.

例:

${this.MaxImgWidth} = (${this.MaxImgWidth} <= 1024) ? ${this.MaxImgWidth} : 1024;

数式は、デザイン内のどこにある静的モジュールパラメータの値も参照できます。数式には、パラメータの値だけでなく、最小値、最大値、ステップサイズ、列挙アイテムの数値など、パラメータの特定のPropertyを含めることもできます。

[ヒント]

数式構文:数学演算

構文はGenICam API標準バージョン2.0に準拠しています。許可される数式要素は、GenICam標準で定義されている数式要素と同一です。

基本演算:
() 括弧
+ - * / 加算、減算、乗算、除算
% 剰余
** 電源
& | ^ ~ ビット単位:and / or / xor / not
<> = > < <= >= 論理関係:等しくない / 等しい / より大きい / より小さい / 以下 / 以上
&& || 論理and / 論理or
<< >> 左シフト / 右シフト

表 54. 基本演算


条件演算子

<condition> ? <true_expr> : <false_expr>

例:

${target.Value} = (${this.BitWidth} > 8) ? 2 : 1;

関数:
SGN(x) xの符号を返します。正の引数に対しては+1を返し、負の引数に対しては-1を返します。
NEG(x) x の符号を反転します。
ABS(x) x の絶対値を返します。
SQRT(x) x の平方根を返します。
TRUNC(x) x を切り捨てます。これは、絶対値が x を超えず、かつ x に最も近い整数値を返すことを意味します。
FLOOR(x) 切り下げを行い、x を超えない最大の整数値を返します。
CEIL(x) 切り上げを行い、x を下回らない最小の整数値を返します。
ROUND(x,precision) precision で指定された小数点以下の桁数に x を丸めます。中間値の場合は、ゼロから遠ざかる方向に丸められます。
SIN(x) ラジアン単位の角度 x の正弦(sine)を返します。
COS(x) ラジアン単位の角度 x の余弦(cosine)を返します。
TAN(x) ラジアン単位の角度 x の正接(tangent)を返します。
ASIN(x) ラジアンで表される x の逆正弦(arc sine)の主値を返します。
ACOS(x) ラジアンで表される x の逆余弦(arc cosine)の主値を返します。
ATAN(x) ラジアンで表される x の逆正接(arc tangent)の主値を返します。
EXP(x) x の自然指数関数(e の x 乗:ex)を返します。
LN(x) x の自然対数を返します。自然対数は底を e とする対数であり、自然指数関数(exp)の逆関数です。
LG(x) x の常用対数(底を 10 とする対数)を返します。
E() オイラー数(2.7182818284590451)を返します。
PI() 円周率(3.1415926535897931)を返します。

表 55. 関数


例:

${target.Value} = NEG(${this.Parallelism})

[ヒント]

パラメータへのパス

設計内の任意の場所からオペレータパラメータにアクセスするには、数式内でそのパラメータへのパスを指定する必要があります。

オペレータのパラメータにアクセスするには、次の構文を使用します。

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}: パラメータの2つの有効な値の間の増分(ステップサイズ) PathToModule/Module.ParamName.
  • ${PathToModule/Module.ParamName.Enum("EnumName")}: 列挙型の名前の整数値 EnumName.

翻訳式では、グローバル定数を参照することもできます。グローバル定数は、翻訳式内で次の方法で参照されます: :: プレフィックスを使用します。例: ${::DesignClock} または ${::MyGlobalConst}.

[ヒント]

書き込みアクセス式の構文

書き込みアクションの式は、パラメータ WriteAction で定義します。構文は次のとおりです:

ここでは、複数のターゲットパラメータに対して複数の式を定義できます。個々の式の間を区切るには、区切り文字としてセミコロンを使用します。

this は、翻訳演算子インスタンス自体を指します。

ライブラリの一般的な紹介については、 Parameters in Library Parameters.

I/O Property

Property 値
オペレータータイプ O
Input Link I、画像データ入力
Output Link O、画像データ出力

サポートされているリンクフォーマット

Link Parameter Input Link I Output Link O
Bit Width [1, 64]1 として I
Arithmetic {Unsigned, signed} として I
Parallelism 任意 として I
Kernel Columns 任意 として I
Kernel Rows 任意 として I
Img Protocol {VALT_IMAGE2D, VALT_LINE1D, VALT_PIXEL0D, VALT_SIGNAL} として I
Color Format 任意 として I
Color Flavor 任意 として I
Max. Img Width 任意 として I
Max. Img Height 任意 として I

1

入力のBit Widthの範囲は [1, 64] です。符号付き入力の場合、範囲は [2, 64] です。符号なしカラー入力の場合、範囲は [3, 63] であり、符号付きカラーの場合、範囲は [6, 63] です。

パラメーター

Status
タイプ 静的読み取り(GUIには書き込みと表示されます)パラメータ
Default None
範囲 OK またはエラーメッセージが発生します

エラーステータスを表示します。パラメータ Activate が Yes に設定されている場合、他のモジュールパラメータがチェックされます。このパラメータには、このチェックの結果、つまり OK またはエラーメッセージが表示されます。

このパラメータは最終的なアプレットの一部ではありません。

Protocol
タイプ static write parameter
Default VALT_IMAGE2D
範囲 {VALT_IMAGE2D,VALT_LINE1D,VALT_PIXEL0D,VALT_SIGNAL}

リンクProperty Protocol へのアクセスを許可します。可能な値は VALT_IMAGE2D, VALT_LINE1D, VALT_PIXEL0D, VALT_SIGNAL です。

ColorFormat
タイプ static write parameter
Default VAF_GRAY
範囲 {VAF_GRAY,VAF_COLOR,VAF_NONE,VAF_UNDEFINED}

リンクProperty ColorFormat へのアクセスを許可します。可能な値は VAF_GRAY, VAF_COLOR, VAF_NONE, VAF_UNDEFINED です。

ColorFlavor
タイプ static write parameter
Default FL_NONE
範囲 {FL_NONE,FL_RGB,FL_HSI,FL_YUV,FL_LAB,FL_XYZ,FL_HSL,FL_HSV,FL_YCrCb}

リンクProperty ColorFlavor へのアクセスを許可します。可能な値は FL_NONE, FL_RGB, FL_HSI, FL_YUV, FL_LAB, FL_XYZ, FL_HSL, FL_HSV, FL_YCrCb です。

Arithmetic
タイプ static write parameter
Default UNSIGNED
範囲 {SIGNED, UNSIGNED}

リンクプロパティ Arithmetic へのアクセスを許可します。設定可能な値は SIGNED および UNSIGNED です。

BitWidth
タイプ static write parameter
Default 1
範囲

リンクプロパティ BitWidth へのアクセスを許可します。

Parallelism
タイプ static write parameter
Default 1
範囲

リンクプロパティ Parallelism へのアクセスを許可します。

KernelRows
タイプ static write parameter
Default 1
範囲

リンクプロパティ KernelRows へのアクセスを許可します。

KernelColumns
タイプ static write parameter
Default 1
範囲

リンクプロパティ KernelColumns へのアクセスを許可します。

MaxImgWidth
タイプ static write parameter
Default 1024
範囲

リンクプロパティ MaxImgWidth へのアクセスを許可します。

MaxImgHeight
タイプ static write parameter
Default 1024
範囲

リンクプロパティ MaxImgHeight へのアクセスを許可します。

WriteAction
タイプ static write parameter
Default
範囲

リンクプロパティパラメータへの書き込みアクセス時の変換用の式の定義。

このパラメータでは、オートコンプリート機能とシンタックスハイライトを使用できます。オートコンプリートを使用するには、Module Properties ダイアログでこのパラメータの Parameter Values フィールドをクリックし、「${」と入力します。オートコンプリート機能の詳細については、'Autocompletion and Syntax Highlighting for Translator and Reference Operators'を参照してください。

Activate
タイプ 動的書き込みパラメータ
Default いいえ
範囲 {No, Yes}

Yes = WriteAction 内の書き込み式を介した参照パラメータへのアクセスが有効になります。

No = 書き込み式を介した参照パラメータへのアクセスが無効になり、パラメータ Status が無効化されます。

使用例

オペレーター LinkParamTranslator の使用方法は、以下の例に示されています。