<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > labview事件結(jié)構(gòu)學(xué)習(xí)

          labview事件結(jié)構(gòu)學(xué)習(xí)

          作者: 時間:2017-01-06 來源:網(wǎng)絡(luò) 收藏
          編程的主要目的是為了實現(xiàn)用戶的某種功能,用戶通過用鼠標(biāo)、鍵盤、程序內(nèi)部等觸發(fā)某種程序動作,從而達到某種結(jié)果,這些操作都被稱作為事件,LabVIEW中相應(yīng)這些事件最常用的結(jié)構(gòu)就是“事件結(jié)構(gòu)”。事件結(jié)構(gòu)內(nèi)容豐富,基本上大的程序結(jié)構(gòu)都需要用到事件結(jié)構(gòu),下面將詳細(xì)介紹事件結(jié)構(gòu)。
          事件結(jié)構(gòu)在程序不能夠單獨響應(yīng)各種事件,必須與循環(huán)結(jié)構(gòu)一同使用,如下圖

          事件添加方式很簡單,鼠標(biāo)右鍵事件框彈出菜單如上圖,有添加、刪除、復(fù)制、編輯事件等選項,按照操作即可。如下圖,為事件結(jié)構(gòu)添加Stop事件,布爾控件觸發(fā)事件的方式有多種,鼠標(biāo)按下、經(jīng)過、離開、進入等,這里我們選擇“值改變”。確定后,stop事件就被添加進去了,如下圖,當(dāng)我們運行程序后,點擊前面板的stop按鈕,觸發(fā)事件使while循環(huán)停止而后程序也停止。

          同一事件分支只能添加一種事件嗎?當(dāng)然不是!有的時候有很多不同操作卻會執(zhí)行相同代碼,怎么編程才不會讓代碼冗余呢?看個例子,如下圖2個按鈕stop1,stop2點擊后都可以讓程序停止,我們怎么為其添加事件呢?

          我們先添加一個事件stop1的,方法上面已經(jīng)描述了。由于stop2的執(zhí)行代碼和stop1一樣,我們在事件stop1上右鍵->彈出菜單->編輯本事件分支(Edit Event Handled by This Case)會彈出已添加事件stop1的編輯框,這是左側(cè)有2個按鈕如下截圖

          我們點擊Add Event左側(cè)事件列表會出現(xiàn)如下變化


          選中這個后,右側(cè)列表選中stop2的Value Change事件后,點擊確定在看該事件分支如下,2個事件就添加在同一個分支當(dāng)中了,運行程序后,點擊stop1或stop2均可讓程序停止。


          超時


          超時是事件結(jié)構(gòu)特有的,看名字就知道是怎么回事,即超過一定時間沒有觸發(fā)事件則執(zhí)行超時事件。如果超時時間設(shè)置<=-1,則永遠(yuǎn)也不執(zhí)行超時事件,循環(huán)處于空閑等待狀態(tài)。如下圖,如果設(shè)置超時時間為100,則超過100ms無任何事件觸發(fā),則執(zhí)行超時事件。

          所以如果程序事件功能不多,又需要定時執(zhí)行一段代碼,可以考慮用此方式來完成;如果程序操作頻繁,則不建議用此事件來定時執(zhí)行代碼。
          添加事件方法學(xué)會了,有的人在編程時發(fā)現(xiàn)點擊按鈕下去后,發(fā)現(xiàn)前面無法響應(yīng)其他事件了,似乎前面被鎖住了一樣,這是為什么呢?我們知道添加事件是會有個事件編輯框,上面已經(jīng)截圖了,那你有沒有注意在框體下邊有個
          選項呢

          這個選項的意思是:如果本事件框沒有執(zhí)行完畢前鎖定前面板。看到這你就應(yīng)該明白上述問題所在了吧,所以有的時候我們果斷去掉這個選項。OK,問題解決了。


          關(guān)鍵詞: labview事件結(jié)

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();