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

評論