LabVIEW中Event可以偵測不同事件,當使用靜態的方法註冊事件(Static Event Registeration) ,也就是我們最熟悉的使用Event Structure 的方法,這個方法每當事件被觸發時LabVIEW就會自動的把這項事件排到處理佇列中。如果是選擇動態的註冊事件,那使用者就可以自由的管理被處發的事件,可以設計這些事件所觸發的排程應用,甚至決定事件發生的條件,這篇就是介紹什麼是動態的註冊事件(Dynamic Event Registration),和 靜態註冊事件(Static Event Registration) 的不同

Static Event Registration 靜態註冊事件

就是大家最熟悉的Event偵測,也就是使用Event Structure來偵測人機介面上使用者的操作。 

Dynamic Event Registration 動態註冊事件

使用動態註冊事件除了上面講到可以管理被處放的事件的排程,在排程上的應用之外還有以下應用優點:

 

  1. 事件偵測 ->比靜態註冊事件更有效率、明確
  2. 動態管理觸發的事件 -->根據需求即時(Run time)取消註冊和重新註冊事件
  3. 可將觸發事件包裝成SubVI-->幫助模組化
  4. 可以在其他的subVI中處理事件 -->更彈性的程式架構

1.事件偵測

就像靜態使用Event Structure一樣,使用時可以針對控制元件、應用程式、使用者動作做事件的偵測,但是比起靜態註冊,卻更有彈性了。下圖的應用,若是在工程模式則用Stop 2的事件偵測。

2.動態管理觸發的事件

除了靠成事邏輯去管理觸發的程序,也可以使用像是Flush Event Queue的元件去管理動態註冊。如下圖(1)展示如何動態的取消Boolean 的Mouse Down、Mouse Up的事件偵測。

3.可將觸發事件包裝成SubVI

這在LabVIEW內建Template-QMH的架構裡面也有被應用到(Queued Message Handler),在這架構裡主要使用在離開被觸發的時候;同一個開發團隊或是類似的專案,可以將觸發事件的條件、觸發偵測內容都建立成SubVI,增加程式模組化和重複使用率。

4.可以在其他的subVI中處理事件

在第三點鐘,提到QMH的架構也有使用到動態註冊事件去偵測被按下"Stop"離開訊息,之前我自己的應用還會用在Alarm的觸發上,包裝成subVI後,可以在不同的VI或迴圈裡,觸發Alarm的事件,去限制使用者的操作。

 

還是不事很明瞭動態註冊嗎? 沒關係,下一篇介紹如何寫動態註冊的程式,就能對動態註冊事件更了解

 

 

如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

arrow
arrow

    安伯伯 發表在 痞客邦 留言(0) 人氣()