[教學分享] Programmatically Generated (User) Event

Event Structure 可以提供的 Event 大概以下三種型態。

「一般 Events」、「Dynamic Event」、「Programmatically Generated (User) Event 」三種。

其中

1.『一般 Events』:就是平常我們所知道的 Event Structure 的用法。

2.『Dynamic Event』:可以參考 主題: Create User Event 

3.『Programmatically Generated (User) Event』:就是這篇文章所要提到的第三種事件型態。

整個架構可以參考底下的範例:

2005-01-19_144703_User_Event.llb
(LabVIEW 7.0) (原始檔來自 NI)

 

說明1:

![](upload://tyFFakhvU25YgZOV0jW7x70MvIB.jpeg)

這個程式的運作如下:

(1) 當按下「Fire Event」時,會觸發『一般 Event』,讓那顆大大的綠色 LED 亮起來。

(2) 程式本身會不斷週而復始地讓「Programmatic Count Down to Event... 」倒數;
每當倒數完畢時,會觸發『Programmatically Generated (User) Event』,同樣讓那顆大大的綠色 LED 亮起來。

 

說明2:

![](upload://eyRkdPTsDhCHcfkygmsjptVCugd.jpeg)

(1) 利用「Create User Event.vi」來產生自己定義的 event ,
     很重要的一點!!!
     有沒有注意到接到接腳 user event data type 的「LED」這個 constant 呢?

    「Create User Event」所定義出來的 event 其名稱及 Data Type 將會是
     接到接腳「user event data type」的那個 constant 或者 Controller 的 Label 及 Data Type 

(2) 透過「Register for Events.vi」,跟『Dynamic Event』一樣的方式,將自己定義的 User Event 給註冊上去。

(3) 圖中的「Event Registration」線,即是將要註冊進 Event Structure 的 event。

(4) 圖中的較粗「User Event」線,是剛剛我們所定義的 User Event,
     本身亦帶有資料型態及值,可以透過 Event Structure 的「Event Data Node」來取得這些資訊。

    請參考 LabVIEW 內建範例「Programmatically Fire Events.vi」
    (這是一個很有趣的程式,你會發現原來 Event 可以這麼使用。)
    

(5) 透過「Generate User Event.vi」來觸發 User Event,至於接腳「event data」所接的值,只是單純跟 (4) 所提及的資訊有關,
    不管該值為 True 或是 False 皆會觸發 User Event。

 

說明3:

透過 User Event 的設計架構,
當使用 Event Structure 處理 event 時,不用再侷限於只能處理 GUI 上面的 event,
而是可以自行定義所想要的 event。

 

大家參考一下吧 !!!

 

Airbolt39463.4949652778