Operator LinkParamTranslator

Operator Library: Parameters

此運算子提供對 所連接連結之屬性的讀取或寫入存取權限。寫入存取可能會透過寫入動作 觸發次要參數的更新。

此運算子的優點在於,它能讓您 透過庫中的其他運算子來變更連結屬性 。此外,當連結參數發生變更時,您亦可使用此運算子 來變更其他模組參數。為此,您 可以定義寫入動作。您亦可使用此運算子來鎖定連結屬性,並 強制執行多個連結屬性之間的依賴關係。

輸出 O的鏈路格式嚴格遵循輸入 I 的格式。模組參數反映了 端口I 上鏈路屬性的當前狀態。您可以將模組 參數從「讀取」(預設)變更為 「寫入」。「讀取」 模式表示對應的鏈路屬性為 唯讀。如此一來,該運算子便會像 LinkProperties 運算子那樣運作。 若將參數設定為 寫入 (Write),則可對該參數進行設定。在此情況下, 參數值會傳播至對應的連結屬性。這會產生 額外效果,即輸出埠 O上的對應連結屬性將無法再進行編輯,此功能對於 選擇性地凍結連結屬性非常有用。此外,來自 輸入連接的對應鏈接屬性將不再傳遞至I和 O的屬性。在寫入模式下, 即使連接的輸入鏈接中相同的屬性 無法編輯,仍可編輯該鏈接屬性參數。在此情況下,輸入鏈接上可能會出現錯誤訊息, 指出後續模組的格式與 LinkParamTranslator實例的格式不符。

在參數 WriteAction中,您可以定義當連結 屬性發生變更時應採取的動作。參數Activate會啟用 在WriteAction 中定義的寫入動作:

  • 若「啟用」設定為 「否」,則具有 「寫入」存取標記的參數仍可被變更,但不會 執行任何寫入操作。由於任何連結屬性皆為靜態參數,因此可能的寫入目標 也必須是靜態的。
  • 若寫入目標是該模組自身的參數,則被存取的 模組參數可能具有「讀取」或 「寫入」模式。
  • 若參數的模式為「讀取」,則 可使用「寫入」動作來對連結屬性強制執行特定規則。

寫入動作由一個或多個 方程式組成。若定義多個方程式,請以分號分隔各方程式。 在這些方程式的左邊,您需定義哪個模組的哪個參數 將接收計算結果。請使用以下表示法: this 當 引用此模組的參數時。一旦連結屬性發生變更 (無論是因傳入連結的更新,或是對此 模組參數的寫入存取所致),您在 參數中定義的方程式右側的公式便會 WriteAction 執行後, 結果將轉發至方程式左側所指定的參數。 與左側相同,您可以使用以下表示法 來引用此模組的參數: this.

範例:

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

該公式可在設計中的任何位置引用靜態 模組參數的數值。該公式不僅能納入參數的 數值,還能納入參數的特定屬性,例如最小值、 最大值、步長,或是枚舉項的數值。

[提示]

公式語法:數學運算

此語法符合GenICam API 2.0 版標準。允許的 公式元素與GenICam 標準中定義的公式元素完全相同:

基本運算:
() 括號
+ - * / Addition, subtraction, multiplication, division
% 餘數
** 電源
& | ^ ~ 位元運算:與 / 或 / 異或 / 非
<> = > < <= >= 邏輯關係:不等於/等於/大於/小於/ 小於或等於/大於或等於
&& || 邏輯與/邏輯或
<< >> 向左移動/向右移動

表 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 的整數值 。
FLOOR(x) 向下取整,並返回不超過 x 的最大整數值。
CEIL(x) 向上取整,並回傳不小於 x 的最小整數值。
ROUND(x,precision) 將 x 取整至由 precision 所指定的小數位數,其中半整數情況將向遠離 零的方向取整。
SIN(x) 返回 x 拉迪安之角的正弦值。
COS(x) 返回 x 拉迪安角度的餘弦值。
TAN(x) 返回 x 拉迪安角的正切值。
ASIN(x) 返回 x 的反正弦函數的數值,單位為 弧度。
ACOS(x) 返回 x 的反正弦函數的主值,單位為 弧度。
ATAN(x) 返回 x 的反正切值, 單位為弧度。
EXP(x) 回傳 x 的以 e 為底的指數函數,即 e 的 x 次冪:ex。
LN(x) 返回 x 的自然對數。自然對數即為 以 e 為底的對數:即自然指數函數 (exp) 的逆函數。
LG(x) 返回 x 的常用(十進制)對數。
E() 回傳歐拉數 2.7182818284590451。
PI() 回傳圓周率常數 3.1415926535897931。

表 55. 函式


範例:

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

[提示]

參數的路徑

若要在設計中的任何位置存取運算子參數,您需要在 公式中提供該參數的路徑。

若要存取運算子的參數,請使用以下結構:

PathToModule: 在此處,您需定義要存取其參數的運算子的相對路徑。 此路徑是以翻譯運算子本身所處的層級為基準。您還需定義要存取的 運算子的名稱。請使用斜線作為層級分隔符。

Module: 模組名稱。

作為翻譯運算子實例本身的名稱,請使用名稱 this.

[重要] 保持模組的獨立性

不允許定義指向高於 翻譯運算子所處層級的層級路徑。此規則 的邏輯在於:層級模組不應知曉 其被實例化的環境的任何資訊,因為唯有如此,該模組才能 作為可自由重定位及複製的模組使用。

[提示]

存取參數屬性

這些公式不僅可以納入參數的數值,還能 納入參數的特定屬性,例如最小值、最大值或步長 :

  • ${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 指的是翻譯運算子實例本身。

您可在此找到關於該 函式庫的概覽 Parameters 位於 Library Parameters.

I/O Properties

Property Value
Operator Type O
Input Link I, Image data input
Output Link O、Image data output

Supported Link Format

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

1

輸入位元寬度的範圍為 [1, 64]。對於帶符號的輸入,其範圍 為 [2, 64]。對於無符號的色彩輸入,其範圍為 [3, 63];而對於帶符號的 色彩,其範圍則為 [6, 63]。

Parameters

Status
Type 靜態讀取參數(儘管 GUI 顯示為寫入)
Default 無
Range OK 或發生錯誤訊息

顯示錯誤狀態。若參數 Activate設定為 Yes,則會檢查其他模組參數。 此參數會顯示檢查結果,即顯示 OK或出現錯誤訊息。

此參數不屬於最終 applet 的一部分。

Protocol
Type 靜態寫入參數
Default VALT_IMAGE2D
Range {VALT_IMAGE2D,VALT_LINE1D,VALT_PIXEL0D,VALT_SIGNAL}

允許存取連結屬性 協定。可能的值包括 VALT_IMAGE2D、VALT_LINE1D、VALT_PIXEL0D、VALT_SIGNAL。

ColorFormat
Type 靜態寫入參數
Default VAF_GRAY
Range {VAF_GRAY,VAF_COLOR,VAF_NONE,VAF_UNDEFINED}

允許存取 link 屬性 ColorFormat。可能的值包括 VAF_GRAY、VAF_COLOR、VAF_NONE、VAF_UNDEFINED。

ColorFlavor
Type 靜態寫入參數
Default FL_NONE
Range {FL_NONE,FL_RGB,FL_HSI,FL_YUV,FL_LAB,FL_XYZ,FL_HSL,FL_HSV,FL_YCrCb}

允許存取 link 屬性 ColorFlavor。可能的值包括 FL_NONE、 FL_RGB、FL_HSI、FL_YUV、FL_LAB、FL_XYZ、FL_HSL、FL_HSV、FL_YCrCb。

Arithmetic
Type 靜態寫入參數
Default UNSIGNED
Range {帶簽名、不帶簽名}

允許存取 link 屬性 Arithmetic。可能的值為 SIGNED 和 UNSIGNED。

BitWidth
Type 靜態寫入參數
Default 1
Range

允許存取 link 屬性 BitWidth。

Parallelism
Type 靜態寫入參數
Default 1
Range

允許存取 link 屬性 Parallelism。

KernelRows
Type 靜態寫入參數
Default 1
Range

允許存取連結屬性 KernelRows。

KernelColumns
Type 靜態寫入參數
Default 1
Range

允許存取 link 屬性 KernelColumns。

MaxImgWidth
Type 靜態寫入參數
Default 1024
Range

允許存取連結屬性 MaxImgWidth。

MaxImgHeight
Type 靜態寫入參數
Default 1024
Range

允許存取 link 屬性 MaxImgHeight。

WriteAction
Type 靜態寫入參數
Default
Range

針對存取連結 屬性參數時的寫入存取,其平移方程式的定義。

針對此參數,您可以使用自動完成功能和語法著色。若要使用自動完成功能,請在「模組屬性」對話方塊中, 點擊 此參數的「參數值」欄位 ,並輸入「${」。有關自動完成 功能的更詳細說明,請參閱「翻譯器與參考 運算子的自動完成與語法著色」。

Activate
Type dynamic write parameter
Default 否
Range {No, Yes}

是 = 已啟用透過 WriteAction中的寫入方程式存取被參照參數的功能。

否 = 透過寫入方程式存取被引用的參數的功能已停用 且「狀態」參數亦已停用。

Examples of Use

以下範例展示了 LinkParamTranslator 運算子的使用方式: