How To - 如何製作Polymorphic VI

演講的時候忘了是誰說到Polymorphic VI,結果這陣子就有人開始在問這個玩意XD

所以這次就來談談如何製作一個方便的Polymorphic VI。




首先,Polymorphic VI到底是什麼?
基本上可以把Polymorphic VI視為一個資料<->VIs的共用窗口,也就是這個共用窗口可以讓資料可以自動去對應可輸入的VI,跟物件導向中的Overloading有異曲同工之妙。

第一步先建立各種不同資料型態所對應的VIs,這邊要特別注意的是資料型態的輸入點都必須在同一個位置,未來的Polymorphic VI才能夠自動對應VIs。
假設這些元件都是存檔介面,負責將輸入的資料儲存。
但是儲存的資料可能包含各種資料類型,此時選用VIs就相對麻煩,這時就可以借助Polymorphic VI來簡化作業流程。

接著建立Polymorphic VI,選擇File>New...

點選後就會出現新增選單,選擇Polymorphic VI

確認之後就會出現Polymorphic VI的設定畫面

其中右上角的Edit Icon是編輯Polymorphic VI的Icon,

下方的Add則是新增這一個Polymorphic VI所能夠對應的VIs,按一次Add就只能選擇一個VI,有點不方便。

Remove按鈕則是把正在選取的VI移除。

左下方的Block Diagram Appearance則是設定這個Polymorphic VI接上資料型態之後,在BD上是維持Polymorphic VI的Icon,還是顯示實際對應的VI Icon。

右下方的Show Selector by Default是指當把Polymorphic VI放置到BD上的時候,VI下方是否顯示選單,Allow Polymorphic VI to Adapt to Data Type則是是否賦予Polymorphic VI可以自動根據不同資料型態選用不同VIs。

最後的就是Edit Name...按鈕,先選擇要設定的VI,再點選這顆按鈕,就會跳出設定畫面

Menu Name指的是在Polymorphic VI 選單上所配置的名稱跟位置。
Polymorphic VI Selector Name則是顯示在Selector上的文字。
其中特別注意的是,如果選單需要階層性,那麼就可以在Menu Name中輸入[母選單名稱:子選單名稱]

全部設定完之後儲存檔案,接著將Polymorphic VI拖曳到BD上,就可以進行自動資料型態配置測試。

其中點選Polymorphic VI下方的Selector,就會出現選單

如果勾選Automatic,Polymorphic VI就會自動找到適合該資料型態的VI來用,此外也可以看到下方有個Array的母選單,裡面又包含了三個子選單,這就是因為當初在Polymorphic VI中設定的結果。

簡單的範例可以在這邊下載。

基本上Polymorphic VI相當好用,尤其是針對相同方法但不同資料型態時,可以簡化使用介面成單一窗口,而無須去找尋實際對應的VI。
也有人將Polymorphic VI當成APIs,沒有使用他自動對應資料型態的功能,而是利用手動選擇Selector可以快速找到對應的VI,將相關的功能全部由單一Polymorphic VI來管理。

無論是哪種做法,都可以增加VIs的管理效率,在這邊提供給大家參考。