Operator EnumParamTranslator

Operator Library: Parameters

運算子 EnumParamTranslator 允許對一個或多個其他運算子的參數進行翻譯存取(讀取與寫入)。您可透過定義公式來進行計算。這些公式的語法符合 GenICam API 2.0 版本。

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

雖然此運算子將其參數 Value 的類型定義為 VA_ENUM,但它不會限制在寫入或讀取操作期間所存取參數的資料類型。例如,運算子中定義的公式可以包含對浮點數類型參數的存取。

讀取動作

在參數 ReadAction 中,您可以定義對轉換 operator 的參數 Value 進行讀取存取時所發生的情況。 參數 Value 不僅僅是保存一個值。 相反地,參數 Value 的值是透過公式計算得出的。 您可以在參數 ReadAction 中定義此公式。 一旦發生對參數 Value 的讀取存取, 您在 ReadAction 中定義的公式就會執行, 並將結果轉發給請求該值的元素。

該公式可以包含設計中任意位置的 operator 參數值。 只要這些值其中之一發生變更,轉換 operator 參數 Value 的計算就會得出新的結果 (與參數 Value 之前保存的值不同)。 該公式不僅可以結合參數的值,還可以結合參數的特定 Property,例如最小值、最大值、步進大小或列舉項目的數值。

寫入動作

在參數 WriteAction 中,您定義了對翻譯運算子參數 Value 進行寫入存取時所發生的情況。與參照運算子不同,您不只是簡單地將參數 Value 的值轉發給設計中的另一個參數。相反地,參數 Value 的值是用於您在翻譯運算子參數 WriteAction 中定義的一組寫入動作。寫入動作由一個或多個方程式組成。透過這些方程式的左側,您可以定義哪個運算子的哪個參數會接收計算結果。如果您定義了多個方程式,請使用分號將方程式隔開。一旦對參數 Value 發生寫入存取,您在參數 WriteAction 中定義的方程式右側公式就會被執行,且其結果會被轉發到方程式左側指定的參數。

該公式可以參照設計中任何位置的 operator 參數值。 只要這些值之一發生變更,當您將與之前相同的價值重新寫入 Value 參數時,計算結果就會有所不同。 該公式不僅可以納入參數的值, 還可以納入參數的特定 Property,例如最小值、 最大值、步進大小或列舉項目的數值。

[提示] 翻譯 Operator 參數的語法

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

[提示]

參數路徑

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

若要存取 operator 的 parameter,請使用下列語法結構:

"PathToModule":在此處,您定義了要存取其參數的運算子的相對路徑。該路徑相對於翻譯運算子本身所在的階層層級。您同時也定義了被存取運算子的名稱。請使用斜線作為階層分隔符號。

"Module":Module 的名稱。

對於 translation operator 實例本身,請使用名稱 "this"。

[重要] 保持您的 Modules 獨立

不允許定義指向高於翻譯運算子所在階層層級的路徑。這項規則遵循以下邏輯:階層模組不允許了解任何關於其實例化環境的資訊,因為唯有如此,它才能被用作可自由重新定位和複製的模組。

[提示]

存取 Parameter Properties

公式不僅可以結合參數的值,還可以結合參數的特定 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}.

[提示]

寫入存取方程式的語法

您可在 parameter WriteAction 中定義寫入動作的方程式。它們具有下列語法:

在此,您可以為多個目標 parameter 定義多個方程式。請使用分號作為個別 方程式之間的分隔符號。

"this" 是指 translation operator 實例本身。

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;

範例:

參照 Map Parameters

您可以在設計階層中定義一個目標,在此目標中,map parameter Value 將會顯示且可供存取。 此目標由兩個 parameters 定義:DisplayHierarchy 與 DisplayName。 在 DisplayHierarchy 中,您指定的是 translation operator 本身所在的 同一個處理程序中的階層式方塊。 在 parameter DisplayName 中,您設定目標 parameter 的名稱。 如果同時設定了 DisplayHierarchy 與 DisplayName, 則由 DisplayName 定義的 parameter 將可在 由 DisplayHierarchy 指定的階層式方塊中使用。 如果 DisplayName 為空白,則不會建立任何 parameter。 如果設定了 DisplayName,但 DisplayHierarchy 為空白, 則由 DisplayName 定義的 parameter 將會新增至父階層(亦即 translation operator 本身所在的階層式方塊)。

這可讓您在(設計的)任何所需階層層級上, 使 map parameter Value 能夠被存取。 這在使用受保護的階層式方塊時特別有用。 您可以直接在受保護階層式方塊本身的 properties 下方, 使該 parameter 可用。

映射參數本身也可以被參考。因此,您可以參考轉譯運算子中參數 Value 的內容,或者參考您在 DisplayName 和 DisplayHierarchy 參數中所定義的參數。當保護的階層方塊是由其他保護的階層方塊建構而成時,這點尤其重要。

由於此運算子不會干擾設計的資料流結構,因此沒有輸入與輸出。

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

I/O Properties

Property Value
Operator Type 無(由於沒有輸入或輸出)

支援的 Link 格式

無

參數

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

顯示錯誤狀態。如果參數 Activate 設為 Yes,則會檢查其他運算子設定。此參數會顯示此檢查的結果,即 OK 或錯誤訊息。

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

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

如果您想要在設計中的其他位置授予對參數 Value 的存取權(無論是自該處存取還是存取該處),您需要定義一個新參數。請在此處指定此新參數的名稱。

如果此欄位為空,則不會建立新參數。

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

在此指定您要附加在引數 DisplayName 中定義的新對應引數的階層方塊。

針對此參數,您可以使用自動完成功能與語法突顯。若要使用自動完成,請按一下 Parameter Values 欄位中的 此參數對應至 Module Properties 對話方塊,並按下鍵盤上的 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

Value
Type 靜態、動態、寫入、讀取引數
Default Default
Range

用於透過針對讀取和寫入存取所指定的方程式來存取其他參數的參數。

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

在此輸入引數 Value 的說明。

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

名稱與數值組合的定義。

WriteAction
Type 靜態寫入參數
Default
Range

定義在寫入存取參數 Value 期間進行轉換的方程式。

對於此參數,您可以使用自動完成功能和語法突顯。若要使用自動完成功能,請點擊此參數在 Module Properties 對話方塊中的 Parameter Values 欄位,並輸入 “${”。關於自動完成功能的更詳細說明,請參閱 'Autocompletion and Syntax Highlighting for Translator and Reference Operators'。

ReadAction
Type 靜態寫入參數
Default
Range

定義在讀取存取參數 Value 期間進行轉換的方程式。

方程式一律以「${this.Value}=」開頭。

對於此參數,您可以使用自動完成功能和語法突顯。若要使用自動完成功能,請點擊此參數在 Module Properties 對話方塊中的 Parameter Values 欄位,並輸入 “${”。關於自動完成功能的更詳細說明,請參閱 'Autocompletion and Syntax Highlighting for Translator and Reference Operators'。

Activate
Type 動態寫入參數
Default 否
Range {No,Yes}

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

No = 停用對參照參數的存取(透過讀取與寫入方程式), 並停用 Status 參數。 DisplayName 與 DisplayHierarchy 參數將無效。

使用範例

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