解決方案
Enumerated type (Enum)是具有相應整數值 (integer)的字串 (string)標籤列表。它在LabVIEW中作為unsigned integer處理 (U8,預設值U16和U32)。
例如 ,我們可以用一個enum來儲存四個季節,在這種情況下,我們為每個季節的字串(string)標上對應的數值:0-"Spring",1-"Summer",2-"Autumn"和3-"Winter"。
將enum連接到Case Structure的case selector時,您就可以為其中每個數值創建不同的case。 右鍵點擊case structure的框架,然後選擇Add case for every value,就能夠為每一個enum中的數值,建立各別的case。
例如 ,enum儲存了四個季節,則每個字串"Spring"、"Summer"、"Autumn"和"Winter"對應的數值共可以有四個不同的case。
此外,透過在case label中輸入複數個季節,您就可以在同一個case中擁有多個季節。enum的字串值用雙引號括起來,並由逗號 (,)做區隔。
例如,假使希望Case Structure能夠一併處理春天與秋天,因為春、秋季為分點 (equinoxes);夏天與冬天一併處理,因為夏、冬季為至點 (solstices),我們可設定:Case 1 - "Spring","Autumn";Case 2 - "Summer", "Winter"。
使用enumerated type (enum)時,務必為該control創建type definition。創建type definition可以防止每次在enum中添加或刪除數值選項時,都需要重新撰寫程式的情況。且如此一來您在修改任何選項時,也不會導致在Case Structure的label中,有string被替換為數字的情況發生。
注意 :上圖的Case Structure顯示的是數字,而不是字串label。這是因為enum常數內的其中一個數值被修改了。因此LabVIEW就會將這些數值全都強制轉換為數字類型 (numeric type),並使Case Structure只接收該類型的數值。在使用以enum作為輸入的狀態機 (state machines)或Case Structures 時,都建議為enum創建type definition ,如此您就不必在進行修改時,手動變更所有常數。