運算子 EnumParamTranslator

Operator Library: Parameters

運算子EnumParamTranslator允許對一個或多個其他運算子的參數進行轉換存取(讀取與寫入) 。 您需定義公式以進行計算。這些公式的語法符合GenICam API 2.0 版本規範。

運算子EnumParamTranslator會產生一個類型為 VA_ENUM 的映射參數。 該映射參數的名稱為Value。

雖然該運算子將其參數Value的型別定義為 VA_ENUM 型別,但並未限制在寫入或讀取操作期間 所存取之參數的資料型別。 例如,該運算子中定義的公式可包含 對 float 型別參數的存取。

閱讀動作

在參數ReadAction 中,您可定義當對轉換運算子的參數Value進行讀取存取時, 系統將如何處理。 參數Value並非僅是儲存一個值。 相反地,參數Value的值是根據一個公式計算得出的。 您需在ReadAction 參數中定義此公式。 一旦發生對Value 參數的讀取存取, 系統便會執行您在ReadAction中定義的公式, 並將結果傳送給請求該值的元件。

該公式可在設計中的任何位置包含運算子參數的數值。 一旦其中任一數值發生變化,轉換運算子參數 「Value」的計算結果便會產生新的結果 (與先前持有的參數「Value」的數值不同)。 公式不僅可以納入參數的數值,還能納入參數的特定屬性, 例如最小值、最大值、步長,或是枚舉項的數值。

寫入操作

在參數WriteAction 中,您可定義在對 轉換運算子的參數Value進行寫入存取時會發生什麼情況。 與參考運算子不同,您不會單純地將 參數Value的值轉發給設計中的另一個參數。 相反地,參數Value的值 將用於執行您在轉換運算子的 參數WriteAction中所定義的一組寫入動作。 寫入動作由一個或多個方程式組成。 透過這些方程式的左邊,您可以定義哪個運算子的 哪個參數將接收計算結果。 若定義多個方程式,請以分號分隔各方程式。 一旦對參數Value 發生寫入存取,您在參數WriteAction中定義的方程式 右側所列之公式 即會被執行,且結果將轉發至 方程式左側所指定的參數。

該公式可參照設計中任何位置 的運算子參數值。一旦其中任一數值發生變化, 當您將 與先前相同的數值重新寫入「值」參數時,計算結果將會有所不同。 公式不僅可以納入參數的數值, 還能納入參數的特定屬性,例如最小值、 最大值、步長,或是枚舉項的數值。

[提示] 翻譯運算子參數的語法

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

[提示]

參數的路徑

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

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

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

「模組」:模組名稱。

作為翻譯運算子實例本身的名稱,請使用「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」指的是翻譯運算子實例本身。

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」 設定為在(設計的)任何您想要的階層層級上皆可存取。 這在處理受保護的階層化方塊時特別有用。 您可以將該參數直接 設定為位於受保護的階層化方塊本身的屬性之下。

已映射的參數可以被自身引用。 因此,您可以在翻譯運算子中引用參數 Value的內容, 或引用您在參數 DisplayName和DisplayHierarchy 中所定義的參數。 這在 受保護的階層式方塊是由其他受保護的階層式方塊所構建時,尤其重要。

此 operator 沒有輸入和輸出,因為它不會干擾設計的資料流結構。

關於 Library Parameters 的一般介紹,請參閱 Library Parameters。

I/O Properties

Property Value
Operator Type 無(因為沒有輸入或輸出)

Supported Link Format

無

Parameters

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

顯示錯誤狀態。若參數Activate 設定為Yes, 系統將檢查其他操作員設定。 此參數會顯示此檢查的結果, 即「OK」或錯誤訊息。

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

DisplayName
Type 靜態寫入參數
Default 無
Range 任何字串

若您希望在設計中的其他位置允許存取參數「Value」 的資料, 則需定義一個新參數。 請在此處指定此新參數的名稱。

若此欄位為空,則不會建立新的參數。

DisplayHierarchy
Type 靜態寫入參數
Default 無
Range 任何字串

在此指定您要附加在參數 DisplayName 中定義的新 map 參數的階層式方塊。

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

如果您定義了新參數 DisplayName, 但將參數 DisplayHierarchy 留空:新參數將會 新增至包含參考 operator 實例的階層式方塊。 (請記住,如果參考 operator 實例 位於最高(製程)層級,則無法這樣做。)

[注意] 設定顯示目標路徑的語法

若要讓新參數顯示在設計的其他位置, 您需要在 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
Type static、dynamic、write、read 參數
Default Default
Range

透過方程式存取其他參數的參數, 該方程式係針對讀取與寫入存取所指定。

描述
Type 靜態寫入參數
Default -
Range 任何文字

請在此處輸入參數「Value」的說明。

Range
Type 靜態寫入參數
Default "預設值"=0;
Range

名稱-值組合的定義。

WriteAction
Type 靜態寫入參數
Default
Range

定義在對參數Value 進行寫入存取時,平移的方程式。

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

ReadAction
Type 靜態寫入參數
Default
Range

在讀取參數Value 時,平移方程的定義。

該方程式總是以「${this.Value}=」開頭。

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

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

是= 已啟用對參照參數的讀寫存取(透過讀取與寫入方程式)。

No= 停用對參照參數的存取(透過讀取與寫入方程式), 且「Status」參數遭停用。 「DisplayName」與「DisplayHierarchy」參數將不產生任何效果。

Examples of Use

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