LabVIEW程序設(shè)計模式(四)—狀態(tài)機和事件結(jié)構(gòu)的結(jié)合
圖 24 狀態(tài)機中的事件結(jié)構(gòu)
本例中引入了4個變量以供不同的狀態(tài)分支調(diào)用,如圖 25所示。其中的意義如下所述。
- Index:當前排序的列號,表示Listbox以哪一列為依據(jù)進行排序。
- ASC:表示當前排序的方式,true表示升序,而false表示降序。
- Column Header:表示Listbox的列頭數(shù)據(jù)。
- Data:表示Listbox的內(nèi)容數(shù)據(jù)。
圖 25 數(shù)據(jù)變量
在圖 26中,事件結(jié)構(gòu)處理的是Listbox的
圖 26 排序事件
在圖 27所示的DSort狀態(tài)中,根據(jù)內(nèi)部變量的值對Listbox賦值并更新列頭的顯示。
圖 27 DSort狀態(tài)
圖 27調(diào)用了2D數(shù)組的排序函數(shù),該函數(shù)的實現(xiàn)過程如圖 28所示。LabVIEW并沒有提供2D數(shù)組的排序方式,只提供了1D數(shù)組的排序函數(shù)。本例充分利用了LabVIEW提供的排序函數(shù)功能,當然并不是唯一的,也可以使用LabVIEW實現(xiàn)常用的排序算法。
圖 28 2D數(shù)組排序
評論