新聞中心

EEPW首頁 > 測試測量 > 設計應用 > LabVIEW動態(tài)事件的注冊

LabVIEW動態(tài)事件的注冊

作者: 時間:2016-12-26 來源:網(wǎng)絡 收藏
  動態(tài)事件注冊可完全控制LABVIEW產(chǎn)生的事件的類型和時間。動態(tài)事件可使事件僅在應用程序的某個部分發(fā)生,也可在應用程序運行時改變產(chǎn)生事件的VI或控件。使用動態(tài)注冊,可在子VI中處理事件而不是僅在產(chǎn)生事件的VI中處理事件。

  處理動態(tài)注冊的事件主要包括以下4個步驟。
  · 第1步:獲取要處理的事件對象的VI服務器引用;
  · 第2步:將VI服務器引用連接至“注冊事件”函數(shù)以注冊對象的事件;
  · 第3步:將事件結構放在While循環(huán)中,處理對象事件直至出現(xiàn)終止條件為止;
  · 第4步:通過取消注冊事件函數(shù)以停止事件發(fā)生。

本文引用地址:http://butianyuan.cn/article/201612/334090.htm

  要動態(tài)注冊對象事件,必須先獲取該對象的VI服務器引用??赏ㄟ^打開應用程序引用和打開VI引用函數(shù)來獲取應用程序和VI的引用。要獲取控件引用,可使用屬性節(jié)點查詢VI的控件,或右鍵單擊該控件、從彈出的快捷菜單中選擇“創(chuàng)建→引用”來創(chuàng)建控件引用常量。

  使用注冊事件函數(shù)可動態(tài)注冊事件,注冊事件函數(shù)位于函數(shù)選板的“編程→對話框與用戶界面一事件”,拖動上下箭頭可調(diào)整“注冊事件”函數(shù)的大小以顯示一個或多個事件源輸入端。將應用程序、VI或控件引用連接到每一個事件源輸入端,右鍵單擊每一個輸入端,從快捷菜單的“事件”中選擇想要注冊的事件。所能選擇的事件取決于連接到事件源輸入端的VI服務器引用類型。

  “事件”快捷菜單上的事件與靜態(tài)注冊事件時在“編輯事件”對話框出現(xiàn)的事件相同。“注冊事件”函數(shù)執(zhí)行時,LABVIEW將對每個事件源輸入引用句柄相關聯(lián)的對象上的事件進行注冊。一旦注冊了事件,LABVIEW將按事件發(fā)生的順序?qū)⑹录湃腙犃?,直到事件結構來處理這些事件。除非有另一對象在函數(shù)執(zhí)行之前己經(jīng)注冊了事件,否則將不會產(chǎn)生事件。

  動態(tài)事件接線端類似于移位寄存器,可右鍵單擊事件結構并從彈出的快捷菜單中選擇“顯示動態(tài)事件接線端”來獲取。左接線端接受事件注冊引用句柄或事件注冊引用句柄的簇;如果不連接內(nèi)部的右接線端,右接線端的數(shù)據(jù)將與左接線端相同。但是,可通過“注冊事件”函數(shù)將事件注冊引用句柄或事件注冊引用句柄的簇連接至內(nèi)部的右接線端并動態(tài)地修改事件注冊。

  要停止產(chǎn)生事件,可將事件結構右側的動態(tài)事件接線端連接至位于“注冊事件”函數(shù)左上角的“事件注冊引用句柄”輸入端。“取消注冊事件”函數(shù)位于函數(shù)選板的“編程→對話框與用戶界面→事件”,其處于含有該事件結構的While循環(huán)外。“取消注冊事件”函數(shù)執(zhí)行時,
LABVIEW將把該事件注冊引用句柄所指定的一切事件注冊取消,銷毀與該事件注冊引用句柄相關的事件隊列,同時放棄任何尚在隊列中的事件。如果用戶不取消注冊事件,而包含事件結構的While循環(huán)執(zhí)行結束后用戶叉執(zhí)行了可產(chǎn)生事件的操作,那么LABVIEW將無限地查詢事件。如果事件已配置為將前面板鎖定,則此時Ⅵ無響應。在這種情況下,LABVIEW將在Ⅵ空閑時銷毀事件隊列。



評論


技術專區(qū)

關閉