條件結(jié)構(gòu)和事件結(jié)構(gòu),總體來說比較類似,都是需要處理一個(gè)分支。但是他們也有不同之處,表現(xiàn)為:1、條件結(jié)構(gòu)必須有一個(gè)分支能夠執(zhí)行到,不然將出現(xiàn)錯(cuò)誤。而時(shí)間結(jié)構(gòu)可以等待其中某一分支事件的出現(xiàn)(當(dāng)然其中包括超時(shí)
編程的主要目的是為了實(shí)現(xiàn)用戶的某種功能,用戶通過用鼠標(biāo)、鍵盤、程序內(nèi)部等觸發(fā)某種程序動(dòng)作,從而達(dá)到某種結(jié)果,這些操作都被稱作為事件,LabVIEW中相應(yīng)這些事件最常用的結(jié)構(gòu)就是“事件結(jié)構(gòu)”。事件結(jié)構(gòu)
剛開始接觸事件結(jié)構(gòu)時(shí)覺得它很好用,所以很喜歡用,但也引起了一些問題,就是前面板很容易就被掛起來了,就是所前面板沒有響應(yīng)了,很郁悶。之后就不敢用了,很多可以用事件結(jié)構(gòu)的地方都只用CASE結(jié)構(gòu)麻煩的代替了~~今
前文提到了事件結(jié)構(gòu),仔細(xì)研究會(huì)發(fā)現(xiàn)要搞清楚也不是很容易.labwindows是典型的事件驅(qū)動(dòng)編程方式,它是通過定義回調(diào)函數(shù)實(shí)現(xiàn)的(回調(diào)函數(shù)是WINDOWS編程的基本方法),WINDOWS可以檢測(cè)到系統(tǒng)的各類事件,比如畫面上一個(gè)按鈕按
在編寫一個(gè)中等規(guī)模的程序時(shí),狀態(tài)機(jī)和事件結(jié)構(gòu)是常見的設(shè)計(jì)模式,SR(SHIFT REGISTER)經(jīng)常用于在各個(gè)CASE之間傳遞數(shù)據(jù),當(dāng)CASE比較多的時(shí)候,經(jīng)常會(huì)出現(xiàn)SR忘記連接或者需要增加新的SR,此時(shí)會(huì)非常麻煩,需要在幾十個(gè)CASE之
labview事件結(jié)構(gòu)的事件源之一是鍵盤,設(shè)置方法為創(chuàng)建一個(gè)本VI-鍵按下的分支,將事件數(shù)據(jù)節(jié)點(diǎn)里的掃描代碼連接到顯示控件,得到按鍵對(duì)應(yīng)的代碼。然后利用條件結(jié)構(gòu)編寫相應(yīng)的程序,如下 PS:過濾事件-前面板關(guān)閉?中設(shè)
最近看到利用事件結(jié)構(gòu)中超時(shí)TIMEOUT事件進(jìn)行數(shù)據(jù)采集的方法,過去我也過這種方法. 優(yōu)點(diǎn):不再需要單獨(dú)的數(shù)據(jù)采集循環(huán),使用SHFIT REGISTER就可以在其他事件中共享數(shù)據(jù). 但是這種用法是存在一定缺陷的,假如TIMEOUT
事件類型輸出數(shù)值(類型節(jié)點(diǎn))另外:可通過右鍵某控件----高級(jí)----自定義來創(chuàng)建 自定義控件!然后保存控件 方便下次使用!其格式為.ctl 格式!
標(biāo)準(zhǔn):1、將具有值改變事件的控件,放置在其事件結(jié)構(gòu)的值改變頁面里。
事件結(jié)構(gòu),是LV編程結(jié)構(gòu)的精髓所在。它類似于單片機(jī)的中斷功能,優(yōu)點(diǎn)在于不占用CPU資源。比如按鍵按下串口發(fā)送數(shù)據(jù),以及設(shè)置鍵盤快捷鍵等等功能,事件結(jié)構(gòu)比查詢結(jié)構(gòu)要節(jié)省很多系統(tǒng)資源。下面我介紹一下利用事件結(jié)構(gòu)
對(duì)于前面板和前面板上的控件,如果鼠標(biāo)左鍵點(diǎn)擊面板上的一個(gè)控件,控件肯定會(huì)發(fā)生mouse down事件,那么由于控件是位于面板上的,面板是否會(huì)發(fā)生mouse down事件那?如果發(fā)生mouse down事件,那么這個(gè)兩個(gè)事件的先后次序如何