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