編程的主要目的是為了實現用戶的某種功能,用戶通過用鼠標、鍵盤、程序內部等觸發(fā)某種程序動作,從而達到某種結果,這些操作都被稱作為事件,LabVIEW中相應這些事件最常用的結構就是“事件結構”。事件結構內容豐富,基本上大的程序結構都需要用到事件結構,下面將詳細介紹事件結構。
事件結構在程序不能夠單獨響應各種事件,必須與循環(huán)結構一同使用,如下圖
事件添加方式很簡單,鼠標右鍵事件框彈出菜單如上圖,有添加、刪除、復制、編輯事件等選項,按照操作即可。如下圖,為事件結構添加Stop事件,布爾控件觸發(fā)事件的方式有多種,鼠標按下、經過、離開、進入等,這里我們選擇“值改變”。確定后,stop事件就被添加進去了,如下圖,當我們運行程序后,點擊前面板的stop按鈕,觸發(fā)事件使while循環(huán)停止而后程序也停止。
同一事件分支只能添加一種事件嗎?當然不是!有的時候有很多不同操作卻會執(zhí)行相同代碼,怎么編程才不會讓代碼冗余呢?看個例子,如下圖2個按鈕stop1,stop2點擊后都可以讓程序停止,我們怎么為其添加事件呢?
我們先添加一個事件stop1的,方法上面已經描述了。由于stop2的執(zhí)行代碼和stop1一樣,我們在事件stop1上右鍵->彈出菜單->編輯本事件分支(Edit Event Handled by This Case)會彈出已添加事件stop1的編輯框,這是左側有2個按鈕如下截圖
我們點擊Add Event左側事件列表會出現如下變化
選中這個后,右側列表選中stop2的Value Change事件后,點擊確定在看該事件分支如下,2個事件就添加在同一個分支當中了,運行程序后,點擊stop1或stop2均可讓程序停止。
超時
超時是事件結構特有的,看名字就知道是怎么回事,即超過一定時間沒有觸發(fā)事件則執(zhí)行超時事件。如果超時時間設置<=-1,則永遠也不執(zhí)行超時事件,循環(huán)處于空閑等待狀態(tài)。如下圖,如果設置超時時間為100,則超過100ms無任何事件觸發(fā),則執(zhí)行超時事件。
所以如果程序事件功能不多,又需要定時執(zhí)行一段代碼,可以考慮用此方式來完成;如果程序操作頻繁,則不建議用此事件來定時執(zhí)行代碼。
添加事件方法學會了,有的人在編程時發(fā)現點擊按鈕下去后,發(fā)現前面無法響應其他事件了,似乎前面被鎖住了一樣,這是為什么呢?我們知道添加事件是會有個事件編輯框,上面已經截圖了,那你有沒有注意在框體下邊有個
選項呢
這個選項的意思是:如果本事件框沒有執(zhí)行完畢前鎖定前面板。看到這你就應該明白上述問題所在了吧,所以有的時候我們果斷去掉這個選項。OK,問題解決了。