使用屬性節(jié)點(diǎn)的目的 在LabVIEW中編寫應(yīng)用程序軟件時(shí),可能需要在程序運(yùn)行的過程中對(duì)VI的前面板及其包含的控件屬性作一些動(dòng)態(tài)的修改,如修改當(dāng)前VI前面板的標(biāo)題名稱、修改某控件的值、外觀顏色或禁用某個(gè)控件等,僅僅依靠在編輯狀態(tài)下完成這些功能顯然是不可能的。針對(duì)這種情況,LabVIEW語(yǔ)言提供了屬性節(jié)點(diǎn)函數(shù),借助于該函數(shù),允許開發(fā)人員以編程的方式動(dòng)態(tài)控制程序運(yùn)行過程中,對(duì)VI的前面板及其包含的控件屬性作一些動(dòng)態(tài)的修改的目的,這大大擴(kuò)展了LabVIEW的編程能力。 首先說明一下什么是屬性,屬性是指對(duì)象(如控件、VI或應(yīng)用程序等)的特性,相當(dāng)于C++類中的數(shù)據(jù)。具有“可讀”、“可寫”或“可讀寫”等操作方式。在程序框圖中的屬性節(jié)點(diǎn)函數(shù)上有一個(gè)小箭頭,若在左邊,表明該屬性可寫,若在右邊,表明該屬性可讀。對(duì)于可讀可寫的屬性,右鍵單擊屬性節(jié)點(diǎn)中的某個(gè)屬性,可以在右鍵菜單中選擇“轉(zhuǎn)換為讀取”或“轉(zhuǎn)換為寫入”,在兩者之間進(jìn)行切換。 下面通過一個(gè)具體例子說明LabVIEW中屬性節(jié)點(diǎn)的編程的編程方法及技巧。 屬性節(jié)點(diǎn)編程技巧例子 這個(gè)例子運(yùn)行時(shí)的前面板如圖1所示,在前面板上放置了4個(gè)布爾型的互斥按鈕控件,同一時(shí)刻只能按下一個(gè)按鈕,即按下某個(gè)按鈕時(shí),該按鈕值為真,其它按鈕值為假,同時(shí),在前面板的標(biāo)題欄上指示當(dāng)前按下了哪個(gè)按鈕。通過這個(gè)例子簡(jiǎn)單演示LabVIEW中控件及VI的屬性節(jié)點(diǎn)的編程方法及技巧。 圖1 屬性節(jié)點(diǎn)編程技巧示例前面板 在程序框圖中,最外層使用了包含2幀的順序結(jié)構(gòu),分別處理程序的初始化和按鈕事件的響應(yīng)操作。第1幀的程序代碼如圖2所示,做程序的初始化工作,將4個(gè)按鈕控件對(duì)應(yīng)的引用組成一個(gè)“引用數(shù)組”通過順序結(jié)構(gòu)的局部變量傳到第2幀中。 圖2 程序框圖第1幀-初始化代碼 順序結(jié)構(gòu)的第2幀是本程序的主要代碼部分,如圖3所示,主要在事件結(jié)構(gòu)里面處理4個(gè)按鈕的“值改變”事件。 從框圖中可以看出,LabVIEW本身在事件分支中包含了一個(gè)“控件引用”的信息,該值即為觸發(fā)該事件的控件所對(duì)應(yīng)的引用。第1幀中已經(jīng)傳入了4個(gè)按鈕控件的“引用數(shù)組”變量,利用“搜索一維數(shù)組”函數(shù),返回當(dāng)前按下的按鈕在“引用數(shù)組”中的位置,在For循環(huán)中,使用屬性節(jié)點(diǎn)設(shè)置每個(gè)控件的值。當(dāng)For循環(huán)的索引等于“搜索一維數(shù)組”函數(shù)的返回值時(shí),意味著設(shè)置的是當(dāng)前按下的按鈕,其值為真,否則為設(shè)置其它按鈕的值,其值為假。 另外,事件分支的“控件引用”信息即為當(dāng)前按下的按鈕所對(duì)應(yīng)的引用,將該引用連接到屬性節(jié)點(diǎn)上,選擇按鈕控件的“布爾文本”?“文本”屬性,然后將該按鈕控件的布爾文本值經(jīng)整理后,連接到當(dāng)前VI的“前面板窗口”?“標(biāo)題”屬性節(jié)點(diǎn)上,即可在當(dāng)前運(yùn)行的前面板標(biāo)題上顯示當(dāng)前按下的按鈕控件信息。 結(jié)論 通過上面的例子可以看出,LabVIEW中使用屬性節(jié)點(diǎn)確實(shí)能夠做到,以編程的方式動(dòng)態(tài)控制程序運(yùn)行過程中,對(duì)VI的前面板及其包含的控件屬性作一些動(dòng)態(tài)的修改的目的。 備注 大家如果有興趣的話可以加關(guān)注:LabVIEW002 |
|