久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 測試測量 > 設計應用 > LabVIEW程序設計模式(三)—消息隊列型狀態機模式

LabVIEW程序設計模式(三)—消息隊列型狀態機模式

作者: 時間:2017-01-09 來源:網絡 收藏

  1. 第一類:Initial
  1. UI Initial:前面板界面的初始化。
  2. Data Initial:數據的初始化。
  1. 第二類:System
  1. Idle(Default):空閑狀態。
  2. CheckMoney:販賣機中的剩余錢數和剩余的貨物數以決定交易是否成功。
  3. Exit:退出程序。
程序開始運行時進入UI Initial和Data Initial狀態,完成初始化操作。從圖中可以看出系統采用數組函數處理消息隊列。


圖 8 自動販賣機背面板
在UI Initial中,系統給標題欄和說明欄賦值,并將前面板的商品設置為不可購買狀態,因為在初始化時還沒有完成投幣動作。如圖 9所示。


圖 9 UI Initial分支
在Data Initial中包含兩個共享的數據:Money和GState,前者表示販賣機中剩余的幣值,初始化值為0;而后者表示販賣機中各個商品剩余的數量,初始化值為20。數據使用移位寄存器傳遞以便于在各個case分支中共享和使用,如圖 10所示。


圖 10 Data Initial分支
CheckMoney分支主要是為了防止不合法的交易(如投入的幣值不足或商品數量不足),如圖 11所示。


圖 11 CheckMoney分支
當程序運行到Exit分支時,將停止循環并退出程序,如圖 12所示。


圖 12 Exit分支
Idle分支用來監控前面板各個按鈕控件的變化并執行相應的狀態。該分支比較復雜,當檢測到第0個按鈕被按下時(即1USD按鈕),販賣機中的貨幣值應該加一,同時需要判斷是否達到了交易條件(即進入CheckMoney狀態)。其它的狀態可以執行相應的代碼即可,這里不再重復解釋。


圖 13 Idle分支
從本例可以看出,相比基本狀態機而言,盡管程序的復雜度增加了,但是在構建大型的應用程序時也更加地健壯,代碼也易于維護和查看。

上一頁 1 2 下一頁

評論


技術專區

關閉