labview的深入探索----labview與回調函數
所謂WINDOWS回調函數,就是按照WINDOWS的規(guī)范,編寫的(CALLBACK)函數,當WINDOWS檢測到事件發(fā)生時,自動調用的函數,WINDOWS是通過函數指針調用的,因此,回調函數的內容是由用戶決定的,而何時調用是由操作系統(tǒng)決定的.
我們看一下CVI中的一般回調函數的定義
int callback aaaa(int panel,int control,int event1,int event2,callbackdata *data);
回調函數的參數是有操作系統(tǒng)提供的,比如上面的回調函數,
panel---表示的哪個面板(窗口)發(fā)生的事件
control---表示的面板上哪個控件發(fā)生的事件
event1 event2 表示事件的類型和相應數據,比如鼠標坐標等
回調函數是一般高級編程語言的基本功能,但是,在LABVIEW8.X之前是不支持的,這極大限制了LABVIEW功能的擴展,因為ACTIVEX,.NET都需要回調函數.
8.X中,增加了回調函數的功能,主要用于ACTIVE,.NET和LABVIEW自身控件,LABVIEW例子程序中提供了幾個例子,是有關ACTIVEX和.NET調用的,下面,我們通過LABVIEW自身控件說明一下回調函數的使用方法.
在.NET摸板中也提供了這個節(jié)點,從分類上就可以看出,注冊回調函數主要是用于ACTIVEX和.NET的.
下面我們做一個簡單的回調函數的程序,有兩個功能,返回當前值的變化和記錄控件被點擊的次數
注冊回調函數需要三個參數:控件參考,用戶參數和自動生成的回調函數,有了控件參考,我們就可以選擇事件的類型,用戶參數主要是用于返回結果,因為回調函數是由操作系統(tǒng)調用的,沒有辦法通過數據流返回處理結果.
添加了這兩個參數后,就可以自動生成回調函數了
回調函數如下圖所示
簡單編程,CONTROL的值傳遞給INDICATOR
這樣值變化的回調函數完成了,下面我們通過鼠標UP事件來記錄被點擊的次數
評論