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

          新聞中心

          EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > LabVIEW程序設(shè)計(jì)模式(二)—基本狀態(tài)機(jī)模式

          LabVIEW程序設(shè)計(jì)模式(二)—基本狀態(tài)機(jī)模式

          作者: 時(shí)間:2017-01-09 來(lái)源:網(wǎng)絡(luò) 收藏
          狀態(tài)機(jī)是一種最為經(jīng)典的程序設(shè)計(jì)模式,在LabVIEW 7.1(含)之前它幾乎統(tǒng)治了大部分的LabVIEW主程序。最基本的狀態(tài)機(jī)結(jié)構(gòu)如圖 1所示。狀態(tài)是狀態(tài)機(jī)運(yùn)行的經(jīng)脈,在開(kāi)始使用狀態(tài)機(jī)模式撰寫(xiě)程序時(shí)需要將應(yīng)用分為若干個(gè)狀態(tài)。下面以圖中的應(yīng)用為例說(shuō)明基本狀態(tài)機(jī)的使用。
          【應(yīng)用1】
          前面板具有3個(gè)按鈕(Control)和1個(gè)波形顯示控件Chart(Indicator),功能分別是:
          1. 開(kāi)始采集:Label是start,單擊后開(kāi)始進(jìn)行模擬數(shù)據(jù)采集程序(這里使用隨機(jī)數(shù)代替)。
          2. 關(guān)于:Label是dialog,單擊后彈出對(duì)話框以說(shuō)明這個(gè)程序的版權(quán)、幫助等信息。
          3. 停止:Label是stop,單擊后停止程序的運(yùn)行。
          4. Chart:用于顯示獲取的隨機(jī)數(shù)。
          這是一個(gè)非常簡(jiǎn)單的應(yīng)用,但是具有一定的代表性。根據(jù)要求,該應(yīng)用至少包含以下5種狀態(tài)結(jié)構(gòu)。
          1. Initial:初始化狀態(tài);
          2. Idle:空閑狀態(tài),用于響應(yīng)各種用戶界面操作;
          3. acquire:采集狀態(tài),用于持續(xù)模擬采集數(shù)據(jù);
          4. about:用于彈出關(guān)于和幫助對(duì)話框;
          5. stop:停止?fàn)顟B(tài),退出循環(huán)并中止程序。

          1. 背面板

          1. 前面板
          圖 1 基本的狀態(tài)機(jī)結(jié)構(gòu)背面板
          仔細(xì)分析圖中的基本狀態(tài)機(jī),可以看出狀態(tài)始終貫穿整個(gè)應(yīng)用程序,并由移位寄存器進(jìn)行值的寄存和傳遞。當(dāng)前狀態(tài)分支的結(jié)果將決定下一個(gè)狀態(tài),如圖中的Idle狀態(tài)。在這個(gè)狀態(tài)中,程序?qū)⒆詣?dòng)檢測(cè)前面板的三個(gè)按鈕是否被按下。如果start被按下,則進(jìn)入acquire狀態(tài);如果dialog被按下,則進(jìn)入about狀態(tài);如果stop被按下,則進(jìn)入stop狀態(tài);否則如果沒(méi)有任何按鈕被按下,則仍然進(jìn)入當(dāng)前的Idle狀態(tài)繼續(xù)檢測(cè)。
          在acquire狀態(tài)中,為了保證程序的重復(fù)采集使得下一個(gè)狀態(tài)仍然為acquire,但是這樣會(huì)導(dǎo)致程序無(wú)法停止(中斷采集)。于是需要在acquire狀態(tài)分支中加入stop的探測(cè),如果stop被按下,則不再進(jìn)入acquire狀態(tài)而直接進(jìn)入stop狀態(tài)。
          從應(yīng)用1可以看出,基本狀態(tài)機(jī)模式大體上能夠滿足主程序結(jié)構(gòu)的需要。該模式能夠很好地使得應(yīng)用程序的各個(gè)功能以狀態(tài)的方式有順序地執(zhí)行,并且保證了程序的可讀性(以狀態(tài)圖的方式顯示清晰明了)和擴(kuò)展性(日后只需要擴(kuò)展?fàn)顟B(tài)即可擴(kuò)展相應(yīng)的功能)。
          事例中使用的是“string”型結(jié)構(gòu)來(lái)標(biāo)記狀態(tài),事實(shí)上也可以使用其它的數(shù)據(jù)類型替換,如ring、numeric或enum。從嚴(yán)格意義而言,ring并不屬于一種數(shù)據(jù)類型,它只是一種特殊的numeric性,其性質(zhì)與numeric基本上一樣。盡管ring與enum控件從外觀上看是一樣的,如圖 2所示,但是它們實(shí)質(zhì)上是不同的。主要體現(xiàn)為以下7點(diǎn)。

          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          技術(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); })();