labview实例_手把手以实例教你学LabVIEW编程,事件结构框架
LabVIEW又稱為G語言,簡單易學、形象直觀,采用圖形化的編程方式,是專為測試、測量和控制應用而設計的系統工程軟件。
前面幾篇文章中依次講解了LabVIEW中順序順序結構、條件結構及循環結構的編程方法,下面再講一種與軟件界面響應有關的事件結構的編程方法。
事件結構框架特點
在程序設計中,我們經常需要對用戶界面的各種操作(如單擊鼠標、按下鍵盤、改變控件的值等)作出響應,在早期的LabVIEW版本中,是采用輪詢方式來檢測的,其缺點是不夠靈活,占用CPU資源較多,而且操作頻率較快時可能會檢測不到變化,從而漏掉某個事件的發生。
在LabVIEW6系列版本后,引入了事件結構,這種程序處理結構克服了輪詢方式結構的缺點,極大改善了界面處理的運行效率,同時也降低了CPU的占用,提高了軟件用戶的使用體驗。嚴格意義上來說,事件結構不是純粹的程序運行控制結構,它是一種監測GUI界面上各種事件發生并采取相應處理措施的一種機制。
事件結構的框架樣式如下圖所示:
上圖中,事件結構框架中包括了事件類型、超時端口、事件附加數據及事件框等要素信息。
下面通過簡單的例子,演示LabVIEW中事件結構的編程方法。
示例說明
本例運行界面如下圖所示:
實現的功能是,在軟件運行過程中監測鍵盤、鼠標等事件,在“事件信息”字符串顯示控件中顯示當前的各種運行信息。本例包括了如下事件處理:
1. “鍵按下”事件:當按下鍵盤時在界面上顯示當前按下的字符。
2. “鼠標按下”事件:當鼠標按下時在界面上顯示當前按下的是左、中、右哪個鍵及當前的鼠標位置信息。
3. “值改變”事件:當點擊退出按鈕時程序退出運行。
4. “超時”事件:每隔1s顯示一次當前的日期時間信息。
程序框圖實現過程
本例中涉及到了多種類型事件,主框架采用事件結構配合while循環的方式實現。在事件結構分支中添加各種事件,每響應一次事件執行一次while循環,直到執行退出按鈕的值改變事件時退出整個程序,且在while循環中添加了一個移位寄存器,用以保存前面的提示信息。
在程序開始運行時可以作一些初始化工作,本例中在最外層順序結構的第一幀中初始化“事件信息”的值,其代碼如下圖所示:
在順序結構的第2幀中對各種事件分別進行處理,下面依次給出4個事件的處理程序框圖代碼。
(1)“超時”事件
程序框圖代碼如下圖所示:
“超時”事件中實現每隔1s顯示一次當前的日期時間信息,超時時間設置為1000ms,使用“獲取日期/時間字符串”函數得到當前的日期時間,使用“連接字符串”函數與移位寄存器中已有的提示信息相連接,送到“事件信息”控件中顯示即可。
注意,若超時時間設置為-1,則永不執行該分支代碼,這也是其默認值。
(2)“鍵按下”事件
程序框圖代碼如下圖所示:
“鍵按下”事件中,當鍵盤上有按鍵按下時,可在其附加數據中得到當前按鍵的“I16”類型字符值,其對應的是該按鍵的ASCII碼,將其轉換為U8類型的變量,然后使用LabVIEW內置函數“強制轉換類型”將其轉換為字符串類型,就可得到該按鍵對應的具體字符。
(3)“鼠標按下”事件
程序框圖代碼如下圖所示:
“鼠標按下”事件中,當鼠標在窗口主界面上按下時,其附加數據中的“按鈕”值包含了當前按下了哪個鍵的信息,其中1、2、3分別代表了按下了左鍵、右鍵及中鍵。附加數據中的“坐標”則給出了當鼠標按下時當前其所在窗口上的位置信息。
(4)“值改變”事件
程序框圖代碼分別如下圖所示:
“值改變”事件中實現了當按下前面板上的“退出”按鈕時,退出該程序。
總結
本文舉了一個很簡單的例子演示LabVIEW中事件結構的編程方法,當然,在實際軟件編程中,不同的事件源(如控件、VI本身等)會產生不同類型的事件,每種事件類型中又會給出其對應的附加數據,根據這些附加數據信息,就可以實現我們的處理目的,其編程方式完全是類似的。
需要注意的是,不同于其它高級編程語言,在LabVIEW平臺中事件結構一般不會單獨出現,它通常是與while循環結構進行結合使用的。
本文由編碼那些事原創,請關注+轉發+收藏+點贊,帶你一起長知識!
總結
以上是生活随笔為你收集整理的labview实例_手把手以实例教你学LabVIEW编程,事件结构框架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 拼多多中有哪些常见问题 拼多多中常见问题
- 下一篇: win10回收站已损坏是否清空该驱动怎么