0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

LabVIEW抽象消息使用教程(上)

華穗科技 ? 來源:華穗科技 ? 2025-01-03 14:22 ? 次閱讀

自學(xué)LabVIEWActor 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。

d47dab3e-c972-11ef-9310-92fbcf53809c.png

對話場景.vi:該VI的前面板設(shè)有一個“關(guān)閉 Actor”按鈕,用于關(guān)閉已啟動的 Actor。

d491fbe8-c972-11ef-9310-92fbcf53809c.png

在對話場景.vi的程序框圖中,編寫了啟動和停止人物A的邏輯,包括關(guān)閉前面板和停止按鈕的響應(yīng)。

d4a954be-c972-11ef-9310-92fbcf53809c.png

人物A擁有一個私有屬性,內(nèi)容為Actor Enqueuer(操作者隊(duì)列)。

d4ba336a-c972-11ef-9310-92fbcf53809c.png

同時人物A還繼承了Actor類的Actor Core,其中含有調(diào)用嵌套Actor的邏輯與將嵌套Actor隊(duì)列寫入私有屬性的邏輯。

d4c4a23c-c972-11ef-9310-92fbcf53809c.png

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)用)。

d4d8b790-c972-11ef-9310-92fbcf53809c.png

此時,LabVIEW會自動彈出一個VI。按Ctrl+S保存該VI。

d4f467a6-c972-11ef-9310-92fbcf53809c.png

將保存路徑選擇為“人物B”下的Method文件夾,并將文件命名為“關(guān)燈”。

d4ff7d8a-c972-11ef-9310-92fbcf53809c.png

至此,我們已成功為“人物B”創(chuàng)建了一個“關(guān)燈”方法。為了使該方法更加直觀,我們可以在程序框圖中創(chuàng)建一個對話框,并在對話框上添加“人物B把燈關(guān)了”的文本。

在前面板中,按 Ctrl+E 進(jìn)入程序框圖,創(chuàng)建一個對話框函數(shù),保存后關(guān)閉該方法。

d509dd20-c972-11ef-9310-92fbcf53809c.png

接下來,我們需要為“人物 B”重寫一個 Actor Core,并將其保存在“人物 B” 的 Override 文件夾下。具體步驟與創(chuàng)建靜態(tài)調(diào)用類似,但選擇的是 VI for Override(重寫 VI)。

d5258764-c972-11ef-9310-92fbcf53809c.png

在彈出的對話框中選擇“Actor Core”并單擊”O(jiān)K”。

d546e0e4-c972-11ef-9310-92fbcf53809c.png

此時同樣會跳出一個VI,請直接保存在Override文件夾下。由于 Actor Core 是重寫父類(Actor)的方法,因此不要更改名稱。

d55c67ca-c972-11ef-9310-92fbcf53809c.png

d57b5ca2-c972-11ef-9310-92fbcf53809c.png

現(xiàn)在,所有準(zhǔn)備工作已經(jīng)完成,讓我們調(diào)用這個方法。

進(jìn)入”人物B”的Actor Core程序框圖,將剛剛創(chuàng)建的”關(guān)燈.vi”拖入Actor Core,并連接。

d59b0340-c972-11ef-9310-92fbcf53809c.gif

完成后,運(yùn)行 對話場景.vi 以查看效果。我們的對話框應(yīng)能順利彈出。

d5c2b494-c972-11ef-9310-92fbcf53809c.png

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)建消息)。

d5dc8950-c972-11ef-9310-92fbcf53809c.png

LabVIEW腳本自動執(zhí)行完畢后,我們會發(fā)現(xiàn)”人物B”下多了一個”關(guān)燈Msg.lvclass”(關(guān)燈消息類)。該類包含兩個VI“Send關(guān)燈.vi”以及“Do.vi”。

d5f6455c-c972-11ef-9310-92fbcf53809c.png

其中”Do.vi”調(diào)用了”關(guān)燈.vi”,還在外層加了一些查找子類的邏輯。當(dāng)我們的Method擁有一些輸入接線柱的時候,OBJ還會解綁一些數(shù)據(jù)連接至”關(guān)燈.vi”(這里沒有,后面會有)。

d60e2e1a-c972-11ef-9310-92fbcf53809c.png

而”Send關(guān)燈.vi”則是將“關(guān)燈Msg.lvclass”入隊(duì),并在Actor Core中出隊(duì)(紅圈的部分)并調(diào)用”Do.vi”。

d6195b00-c972-11ef-9310-92fbcf53809c.png

d6238f94-c972-11ef-9310-92fbcf53809c.png

打開“人物B”的 Actor Core。刪除之前在程序框圖上放置的“關(guān)燈.vi”。通過 Read Self Enqueuer 獲取“人物B”自己的消息隊(duì)列并進(jìn)行連接。

d6361998-c972-11ef-9310-92fbcf53809c.gif

完成后,運(yùn)行“對話場景.vi”以查看效果。

d6719ae0-c972-11ef-9310-92fbcf53809c.png

我們的對話框應(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ī)會哦。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • LabVIEW
    +關(guān)注

    關(guān)注

    1974

    文章

    3656

    瀏覽量

    324243
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3626

    瀏覽量

    93799

原文標(biāo)題:教程 | LabVIEW抽象消息使用教程(上)

文章出處:【微信號:華穗科技,微信公眾號:華穗科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    LabVIEW之父談?wù)撐磥?b class='flag-5'>LabVIEW的軟件架構(gòu)

    日前,在 NIWEEK 2018, NI 共同創(chuàng)始人、Fellow、有著 LabVIEW 之父稱號的Jeff Kodosky做了主題演講,他暢談了未來LabVIEW的軟件架構(gòu)。 未來
    的頭像 發(fā)表于 05-26 09:25 ?1.8w次閱讀

    硬件抽象層的設(shè)置

    我在進(jìn)行PCI板的開發(fā)時經(jīng)常能夠遇到硬件抽象層這個概念,不知道這個硬件抽象層是在PCI板設(shè)置還是在軟件中設(shè)置的,用什么軟件設(shè)置
    發(fā)表于 07-21 12:06

    抽象工廠模式的創(chuàng)建

    抽象工廠模式(Abstract Factory Pattern)提供一個創(chuàng)建一系列相關(guān)或相互依賴對象的接口,而無須指定它們具體的類。抽象工廠模式又稱為Kit模式,屬于對象創(chuàng)建型模式。抽象工廠模式 問題引入
    發(fā)表于 11-04 06:13

    抽象接口不是通過底層模塊的來實(shí)現(xiàn)嗎

    依賴于底層模塊呀!這是怎么回事呢?區(qū)分設(shè)計(jì)模塊的依賴與物理功能上的依賴的語義不同現(xiàn)實(shí)中抽象模塊功能是通過低層模塊實(shí)現(xiàn)的(繼承實(shí)現(xiàn)),但從依賴關(guān)系上講是低層模塊依賴于抽象模塊,因?yàn)楦割惢蚪涌陬?/div>
    發(fā)表于 09-17 07:25

    JAVA語言的抽象封裝與類

    JAVA語言的抽象封裝與類5.1 抽象與封裝5.2 Java的類5.3 類的修飾符5.4 域5.5 方法5.6 訪問控制符面向?qū)ο蟮某绦蛟O(shè)計(jì)有四大特點(diǎn):抽象、封裝、繼承和多態(tài)性。一
    發(fā)表于 12-14 20:33 ?45次下載

    基于平臺抽象層的進(jìn)程虛擬機(jī)設(shè)計(jì)與實(shí)現(xiàn)

    分析WINE虛擬機(jī)響應(yīng)緩慢的根源,提出平臺抽象層(PAL)的概念,設(shè)計(jì)并實(shí)現(xiàn)了基于PAL的進(jìn)程虛擬機(jī)Elavm。在Linux, Windows和WinCE,完成了Elavm PAL的硬件抽象模塊、操作系統(tǒng)
    發(fā)表于 04-23 10:09 ?18次下載

    網(wǎng)絡(luò)講壇:LabVIEW Scripting()--lab

    網(wǎng)絡(luò)講壇:LabVIEW Scripting()--labview視頻教程
    發(fā)表于 03-26 16:38 ?122次下載

    網(wǎng)絡(luò)講壇:面向?qū)ο蟮木幊?)-labview視頻教程

    網(wǎng)絡(luò)講壇:面向?qū)ο蟮木幊?)-labview視頻教程
    發(fā)表于 03-26 16:41 ?252次下載

    LabVIEW實(shí)現(xiàn)虛擬示波器_labview程序案例

    程序案例LabVIEW實(shí)現(xiàn)虛擬示波器,喜歡的朋友可以下載來學(xué)習(xí)。
    發(fā)表于 01-13 16:12 ?839次下載

    LabVIEW實(shí)現(xiàn)網(wǎng)絡(luò)通信_labview程序案例

    程序案例LabVIEW實(shí)現(xiàn)網(wǎng)絡(luò)通信,喜歡的朋友可以下載來學(xué)習(xí)。
    發(fā)表于 01-13 16:12 ?86次下載

    LabVIEW基于聲卡實(shí)現(xiàn)虛擬示波器【集合】

    LabVIEW基于聲卡實(shí)現(xiàn)虛擬示波器【集合】
    發(fā)表于 01-13 16:21 ?225次下載

    LabVIEW實(shí)現(xiàn)網(wǎng)絡(luò)通信【集合】_程序案例

    程序案例 在LabVIEW實(shí)現(xiàn)網(wǎng)絡(luò)通信【集合】
    發(fā)表于 01-13 16:21 ?38次下載

    分析java接口和抽象類區(qū)別

    一。抽象類 二。接口 三。抽象類和接口的區(qū)別 一。抽象類 在了解抽象類之前,先來了解一下抽象方法。抽象
    發(fā)表于 09-27 16:40 ?0次下載

    通過抽象程序證明復(fù)雜具體程序

    描述了證明抽象程序和具體程序滿足一致性關(guān)系的方法.抽象程序使用抽象數(shù)據(jù)結(jié)構(gòu)(ADTs),如set,list,map及其的操作,具體程序使用類C語言中的類型.
    發(fā)表于 12-29 16:17 ?0次下載
    通過<b class='flag-5'>抽象</b>程序證明復(fù)雜具體程序

    探討一下基于符號抽象的程序分析

    抽象解釋是靜態(tài)分析的核心理論,其關(guān)鍵想法是對程序的可達(dá)狀態(tài)做一個近似。
    的頭像 發(fā)表于 12-30 14:29 ?823次閱讀