自學(xué)LabVIEW的Actor FrameWork的消息與抽象消息的時候肯定會覺得非常模糊。小編將給大家?guī)硪粋€有關(guān)抽象消息的教程,分為上下兩期,本期將帶領(lǐng)大家創(chuàng)建Actor中的方法并為方法創(chuàng)建對應(yīng)的消息。
下面請跟隨小編一起來學(xué)習(xí)一下吧!
本文教程:
LabVIEW抽象消息
一、步驟: 1、初始項(xiàng)目解釋
初始項(xiàng)目中包含一個”對話場景.vi”以及兩個Actor(操作者)分別是:人物A、人物B。
對話場景.vi:該VI的前面板設(shè)有一個“關(guān)閉 Actor”按鈕,用于關(guān)閉已啟動的 Actor。
在對話場景.vi的程序框圖中,編寫了啟動和停止人物A的邏輯,包括關(guān)閉前面板和停止按鈕的響應(yīng)。
人物A擁有一個私有屬性,內(nèi)容為Actor Enqueuer(操作者隊(duì)列)。
同時人物A還繼承了Actor類的Actor Core,其中含有調(diào)用嵌套Actor的邏輯與將嵌套Actor隊(duì)列寫入私有屬性的邏輯。
2、創(chuàng)建一個方法并使用
創(chuàng)建方法
首先,我們需為人物 B 創(chuàng)建一個方法并使用該方法。具體步驟如下: 打開項(xiàng)目中的 人物B.lvib。右擊人物B.lvclass,選擇New(新建)。在彈出的菜單中選擇 VI from Static Dispatch Template(創(chuàng)建靜態(tài)調(diào)用)。
此時,LabVIEW會自動彈出一個VI。按Ctrl+S保存該VI。
將保存路徑選擇為“人物B”下的Method文件夾,并將文件命名為“關(guān)燈”。
至此,我們已成功為“人物B”創(chuàng)建了一個“關(guān)燈”方法。為了使該方法更加直觀,我們可以在程序框圖中創(chuàng)建一個對話框,并在對話框上添加“人物B把燈關(guān)了”的文本。
在前面板中,按 Ctrl+E 進(jìn)入程序框圖,創(chuàng)建一個對話框函數(shù),保存后關(guān)閉該方法。
接下來,我們需要為“人物 B”重寫一個 Actor Core,并將其保存在“人物 B” 的 Override 文件夾下。具體步驟與創(chuàng)建靜態(tài)調(diào)用類似,但選擇的是 VI for Override(重寫 VI)。
在彈出的對話框中選擇“Actor Core”并單擊”O(jiān)K”。
此時同樣會跳出一個VI,請直接保存在Override文件夾下。由于 Actor Core 是重寫父類(Actor)的方法,因此不要更改名稱。
現(xiàn)在,所有準(zhǔn)備工作已經(jīng)完成,讓我們調(diào)用這個方法。
進(jìn)入”人物B”的Actor Core程序框圖,將剛剛創(chuàng)建的”關(guān)燈.vi”拖入Actor Core,并連接。
完成后,運(yùn)行 對話場景.vi 以查看效果。我們的對話框應(yīng)能順利彈出。
PS:當(dāng)我們的Actor被Launch的時候會去執(zhí)行Actor Core,因此我們先將方法放在人物B的Actor Core中,當(dāng)人物B被人物A Launch的時“關(guān)燈”Method就會被執(zhí)行。
3、對方法創(chuàng)建消息并使用
在理解了方法的創(chuàng)建與使用之后,我們接下來學(xué)習(xí)如何為 Actor 的方法創(chuàng)建消息以及如何使用這些消息。
首先,我們先為”關(guān)燈.vi”創(chuàng)建一個消息,右擊“關(guān)燈Msg.lvclass”,選擇Actor Framework,然后選擇Create Message(創(chuàng)建消息)。
LabVIEW腳本自動執(zhí)行完畢后,我們會發(fā)現(xiàn)”人物B”下多了一個”關(guān)燈Msg.lvclass”(關(guān)燈消息類)。該類包含兩個VI“Send關(guān)燈.vi”以及“Do.vi”。
其中”Do.vi”調(diào)用了”關(guān)燈.vi”,還在外層加了一些查找子類的邏輯。當(dāng)我們的Method擁有一些輸入接線柱的時候,OBJ還會解綁一些數(shù)據(jù)連接至”關(guān)燈.vi”(這里沒有,后面會有)。
而”Send關(guān)燈.vi”則是將“關(guān)燈Msg.lvclass”入隊(duì),并在Actor Core中出隊(duì)(紅圈的部分)并調(diào)用”Do.vi”。
打開“人物B”的 Actor Core。刪除之前在程序框圖上放置的“關(guān)燈.vi”。通過 Read Self Enqueuer 獲取“人物B”自己的消息隊(duì)列并進(jìn)行連接。
完成后,運(yùn)行“對話場景.vi”以查看效果。
我們的對話框應(yīng)能成功彈出。與上一節(jié)相同,我們將發(fā)送消息的邏輯放在 Actor Core 后面,以觀察現(xiàn)象和運(yùn)行結(jié)果。
4、直接使用方法與通過消息使用方法的區(qū)別
直接調(diào)用方法就和LabVIEW使用Class的方法是一致的,輸入的是類。
通過消息使用方法:通過將消息傳入Actor的隊(duì)列,然后通過Actor Core將“消息類”出隊(duì)列并執(zhí)行對應(yīng)的“Do.vi”達(dá)到調(diào)用方法的目的,輸入的是Actor的隊(duì)列。
以上就是LabVIEW抽象消息教程(上)的所有內(nèi)容啦,下一期將繼續(xù)介紹普通消息的調(diào)用和抽象消息。歡迎大家留言討論,交流分享!
以上內(nèi)容就是本期的全部內(nèi)容,更多關(guān)于測試系統(tǒng)中的實(shí)際軟硬件應(yīng)用知識,可關(guān)注本公眾號/下方合集,敬請期待!
對LabVIEW編程技巧和相關(guān)內(nèi)容感興趣的工程師們,歡迎持續(xù)關(guān)注、留言和點(diǎn)贊,也可以私信小編各位的技術(shù)困惑和技術(shù)需求,以獲取參加免費(fèi)線下培訓(xùn)和技術(shù)交流的機(jī)會哦。
-
LabVIEW
+關(guān)注
關(guān)注
1974文章
3656瀏覽量
324243 -
編程
+關(guān)注
關(guān)注
88文章
3626瀏覽量
93799
原文標(biāo)題:教程 | LabVIEW抽象消息使用教程(上)
文章出處:【微信號:華穗科技,微信公眾號:華穗科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論