<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 測試測量 > 設計應用 > labview控制程序流程——labview事件結構

labview控制程序流程——labview事件結構

作者: 時(shí)間:2017-01-06 來(lái)源:網(wǎng)絡(luò ) 收藏
1 事件結構及它的圖形化表示法
事件被用來(lái)通知用戶(hù)有異步活動(dòng)發(fā)生。圖形化語(yǔ)言的事件響應包括:用戶(hù)界面事件、外部I/O事件和程序其它部分的事件。
對事件的處理程序也被稱(chēng)為:事件驅動(dòng)程序。事件驅動(dòng)程序可以分為若干個(gè)分支,每個(gè)分支處理不同的事件響應。所以對事件的響應結果也可以控制程序的流程。

事件驅動(dòng)機制來(lái)自于可視化的操系統,可視化操作系統對用戶(hù)事件提供了簡(jiǎn)潔、有效的響應方式,最常見(jiàn)的事件來(lái)自于鼠標和鍵盤(pán)。
虛擬儀器借助于操作系統的事件處理機制實(shí)現了圖形化語(yǔ)言的事件響應能力。在沒(méi)有引入事件結構之前,LabVIEW是借助于輪詢(xún)的方式來(lái)查詢(xún)用戶(hù)操作,由于輪詢(xún)的方式會(huì )占用一定的CPU資源,甚至可能遺漏事件,所以這種處理方式并非理想。事件結構的出現避免了對CPU資源的占用,同時(shí)也避免了事件的遺漏。

事件結構在函數選板》編程》結構子選板中可以找到,并可以將其直接拖拽到程序框圖中,圖形化表示的事件結構,參見(jiàn)下圖。

圖 1 圖形化的事件結構


與Case結構和循環(huán)結構類(lèi)似,事件結構也包含了一個(gè)主框架,這個(gè)框架內將用來(lái)放置事件處理的事件驅動(dòng)程序代碼。如果事件處理任務(wù)眾多,會(huì )有眾多事件分支存在,在結構上類(lèi)似Case的多幀結構(選擇器標簽)。

當在程序框圖上拖放一個(gè)事件結構時(shí),我們只能看到上圖所示的一幀已經(jīng)預先注冊的超時(shí)事件(Timeout),超時(shí)事件分支。它具有定時(shí)延遲的基本功能(不包括While循環(huán)),參見(jiàn)下圖。

圖 2具有定時(shí)延遲的基本功能


當然也可以采用另一種表示方法,參見(jiàn)下圖。

圖 3利用事件結構內部節點(diǎn)獲得中止時(shí)間


通過(guò)這個(gè)例子也好理解內部節點(diǎn)中“時(shí)間”的含義(是事件響應的停止時(shí)間)。

超時(shí)事件
超時(shí)事件是一種特殊的事件,當然也可以看成是默認的事件分支。如果存在其它事件源時(shí),超時(shí)事件完全可以被忽略或取消??聪旅嬉粋€(gè)例子。

圖 4僅有的兩個(gè)事件之一——超時(shí)事件


圖 5僅有的兩個(gè)事件之一——“停止”鼠標按下


這個(gè)例子運行狀況是這樣的:程序運行后進(jìn)入超時(shí)事件,等待5秒鐘后,在字符串顯示器中顯示:“嗨。。。5秒鐘內,用戶(hù)沒(méi)有操作!”(標志超時(shí)事件已經(jīng)結束)。然后一直等待用戶(hù)操作,當用戶(hù)點(diǎn)擊停止按鍵后,程序停下來(lái),同時(shí)顯示:“哈哈,終于響應了。”

為了響應多個(gè)事件的請求,所以要求在事件結構外面套加一個(gè)While循環(huán)。以便能夠及時(shí)準確的響應每個(gè)事件。




5.6.2 事件結構的數據流運行機制
從數據流的運行機制來(lái)看,事件可以理解為多個(gè)無(wú)定序的數據源。事件的響應處理過(guò)程是根據事件發(fā)生的先后順序,依次進(jìn)行處理。而事件的處理過(guò)程仍然是依據數據流運行機制的。
所謂多個(gè)無(wú)定序的數據源是指:事件發(fā)生是隨機的,它們之間沒(méi)有固定的時(shí)間或先后順序關(guān)系。
事件結構的運行機制是一個(gè)一個(gè)的處理事件,這樣就要求在事件處理程序上要求:簡(jiǎn)單快速執行,避免事件處理過(guò)程中產(chǎn)生不必要的堆積。

下面通過(guò)一個(gè)例子來(lái)進(jìn)一步理解事件結構中需要注意的一些問(wèn)題。

例 5-14 事件處理的演示
在例子程序的前面版中,我們放置了四個(gè)控件。門(mén)——布爾控件表示一個(gè)門(mén)(鼠標點(diǎn)擊相當于敲門(mén));敲門(mén)次數——控件用來(lái)紀錄事件的次數;停止——布爾控件用來(lái)停止演示程序的運行;其中還有一個(gè)門(mén)把手裝飾用控件。
下面我們在具體看看它的程序框圖。

圖 6 例5-14的程序框圖(僅包含兩個(gè)事件源)

上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: labview程序流程事件結

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>