LabVIEW程序設(shè)計(jì)模式(四)—狀態(tài)機(jī)和事件結(jié)構(gòu)的結(jié)合
圖 24 狀態(tài)機(jī)中的事件結(jié)構(gòu)
本例中引入了4個(gè)變量以供不同的狀態(tài)分支調(diào)用,如圖 25所示。其中的意義如下所述。
- Index:當(dāng)前排序的列號(hào),表示Listbox以哪一列為依據(jù)進(jìn)行排序。
- ASC:表示當(dāng)前排序的方式,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)部變量的值對(duì)Listbox賦值并更新列頭的顯示。
圖 27 DSort狀態(tài)
圖 27調(diào)用了2D數(shù)組的排序函數(shù),該函數(shù)的實(shí)現(xiàn)過(guò)程如圖 28所示。LabVIEW并沒(méi)有提供2D數(shù)組的排序方式,只提供了1D數(shù)組的排序函數(shù)。本例充分利用了LabVIEW提供的排序函數(shù)功能,當(dāng)然并不是唯一的,也可以使用LabVIEW實(shí)現(xiàn)常用的排序算法。
圖 28 2D數(shù)組排序
評(píng)論