RM新时代网站-首页

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

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

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

在LabVIEW中創(chuàng)建Actor Framework的抽象消息及接口

倩倩 ? 來源:華穗科技 ? 作者:華穗科技 ? 2022-09-23 10:51 ? 次閱讀

ActorFrameWork系列教程來到了第二期,大家還記得什么是對象什么是類嗎?還沒有學(xué)習(xí)過第一期或者忘記了的同學(xué)們,請看往期教程回顧學(xué)習(xí)一下吧!

本文教程:

LabVIEW中創(chuàng)建Actor Framework的抽象消息及接口

一、為什么要用到抽象消息和接口?

一般情況下,我們在啟動界面使用“啟動根操作者”啟動根操作者,然后在根操作者和其他操作者的適當(dāng)位置用“啟動嵌套操作者”來啟動其他操作者。就好比一個(gè)用戶登錄程序,其根操作者即為Controller,用以控制整體程序的邏輯,它的嵌套操作者可分為:用戶操作界面的VIEW;登錄判斷模塊、用戶管理模塊等Model。這就是所謂的MVC框架,MVC框架的更多內(nèi)容在后續(xù)給大家詳細(xì)講解。

306390fe-3ae5-11ed-9e49-dac502259ad0.png

上一期我們學(xué)會了在同一個(gè)操作者中進(jìn)行消息的傳輸和接收,但在嵌套操作者之間是怎么互相傳消息的呢?對于一個(gè)嵌套于跟操作者之下的嵌套操作者,要如何傳消息給根操作者呢?用俗話說,就是小兵要怎么一層層地把前線戰(zhàn)報(bào)傳給將軍呢? 接下來本文以NestActor表示嵌套操作者,是被調(diào)用的關(guān)系。以Root Actor為根操作者,是調(diào)用的關(guān)系。 由于面向?qū)ο笮枰档?a href="http://hljzzgx.com/tags/耦合/" target="_blank">耦合性,那么基于類的操作者也需要考慮如何降低耦合性。當(dāng)Nest Actor給Root Actor發(fā)送消息時(shí),需要調(diào)用Root Actor的消息類的Send ***.vi,這就導(dǎo)致了Nest Actor依賴于Root Actor。為了解除這種依賴關(guān)系,我們需要對Root Actor和NestActor解耦。這時(shí)候我們就需要用到抽象消息或者接口來進(jìn)行Nest Actor對Root Actor的消息傳輸。

二、 如何創(chuàng)建抽象消息前面我們得知了嵌套操作者傳送消息的方式是抽象消息,那么接下來,小編將手把手教你如何在LavVIEW中創(chuàng)建抽象消息。

1. 創(chuàng)建Actor

創(chuàng)建兩個(gè)Actor,分別命名為Root Actor和Nest Actor。

2. 創(chuàng)建抽象消息

在項(xiàng)目資源管理器中右鍵Nest Actor.lvclass → ActorFramework → Create Abstract Message for Caller,輸入消息名稱為New Data,放置一個(gè)字符串控件,命名為String Data,點(diǎn)擊Create Message。這時(shí)Nest Actor.lvclass的屬性中將新增一個(gè)New Data Msg類,用來指定由哪個(gè)消息來執(zhí)行。為這個(gè)New Data Msg類創(chuàng)建寫入的方法。

30c0a55a-3ae5-11ed-9e49-dac502259ad0.png

312c5368-3ae5-11ed-9e49-dac502259ad0.png

3. 為Root Actor創(chuàng)建一個(gè)靜態(tài)方法

為Root Actor創(chuàng)建一個(gè)靜態(tài)方法作為消息執(zhí)行方法,命名為Update Data.vi。并在前面板放置字符串控件,命名為String Data,并配置接線端。在程序框圖中將String Data連接到單按鈕對話框。

3166eb4a-3ae5-11ed-9e49-dac502259ad0.png

3199b390-3ae5-11ed-9e49-dac502259ad0.png

4. 繼承抽象消息

在項(xiàng)目資源管理器中右鍵Update Data.vi→ Actor Framework→Create Child of Abstract Message,選擇Nest Actor的New Data Msg.lvclassx消息類。

31df1606-3ae5-11ed-9e49-dac502259ad0.png

320c8b22-3ae5-11ed-9e49-dac502259ad0.png

32476c88-3ae5-11ed-9e49-dac502259ad0.png

5. 重寫Root的Actor Core

為Root Actor重寫Actor Core.vi。在Actor Core.vi中將Root Actor的Update Data Msg.lvclass寫入Nest Actor.lvclass的屬性中,并通過Launch Nested Actor.vi啟用為Root Actor的嵌套操作者。

3298df5a-3ae5-11ed-9e49-dac502259ad0.png

32c63234-3ae5-11ed-9e49-dac502259ad0.png

6. 發(fā)送抽象消息

為Nest Actor創(chuàng)建一個(gè)靜態(tài)方法Write New String Data.vi發(fā)送String Data,如下圖所示,將Hello以New Data類型的抽象消息傳送給調(diào)用方。

32e35b2a-3ae5-11ed-9e49-dac502259ad0.png

7.重寫Nest Actor的Actor Core

重寫Nest Actor的 Actor Core.vi調(diào)用Write New String Data.vi。

33006972-3ae5-11ed-9e49-dac502259ad0.png

8. Launch根操作者

創(chuàng)建一個(gè)Launch.vi啟用Root Actor。

33173f44-3ae5-11ed-9e49-dac502259ad0.png

啟動Launch后,可以看見彈窗“Hello”。此時(shí)一個(gè)包含著信息“Hello”的抽象消息就從Nest Actor傳送給了它的調(diào)用方Root Actor。

33382b5a-3ae5-11ed-9e49-dac502259ad0.png

三、如何創(chuàng)建接口

LabVIEW2020以上版本支持利用接口在嵌套操作者之間傳送消息,接口的使用方法比抽象消息要簡單得多。接下來LabVIEW版本足夠的小伙伴們,我們一起來嘗試創(chuàng)建接口吧!

1. 創(chuàng)建Actor

創(chuàng)建兩個(gè)Actor,分別命名為Root Actor和Nest Actor。

2. 創(chuàng)建接口

在Nest Actor創(chuàng)建一個(gè)接口,命名為Nest Msg Interface.lvclass。

336c5060-3ae5-11ed-9e49-dac502259ad0.png

3. 為接口創(chuàng)建動態(tài)方法

為Nest Msg Interface.lvclass創(chuàng)建一個(gè)動態(tài)方法New Data.vi,前面板添加字符串控件String Data,并為該方法創(chuàng)建一個(gè)消息。

339f84f8-3ae5-11ed-9e49-dac502259ad0.png

4.繼承接口

設(shè)置Root Actor.lvclass繼承接口Nest Msg Interface.lvclass,并重寫New Data.vi。

33ca1646-3ae5-11ed-9e49-dac502259ad0.png

5. 重寫接口方法

Root Actor.lvclass重寫Nest Msg Interface.lvclass的New Data.vi方法。

33f09514-3ae5-11ed-9e49-dac502259ad0.png

6. 重寫Root Actor的Actor Core

為Root Actor重寫Actor Core.vi。在Actor Core.vi中通過Launch Nested Actor.vi啟用Nest Actor為Root Actor的嵌套操作者。

7. 重寫NestActor的Actor Core

為Nest Actor創(chuàng)建一個(gè)靜態(tài)方法Write New String Data.vi發(fā)送String Data,并重寫 Actor Core.vi調(diào)用Write New String Data.vi。

34458808-3ae5-11ed-9e49-dac502259ad0.png

8.Launch 根操作者

創(chuàng)建一個(gè)Launch.vi啟用Root Actor。

3466d148-3ae5-11ed-9e49-dac502259ad0.png

我們可以看到Hello的彈窗也出現(xiàn)了,通過接口也可以實(shí)現(xiàn)嵌套操作者向調(diào)用方傳送消息。

怎么樣,接口的使用方法是不是比抽象消息方便呢?而且改變接口的方法只需要修改Root Actor的重寫方法就可以了,而不是像抽象消息那樣需要把消息刪除后重新創(chuàng)建消息。

以上就是如何在LabVIEW中為ActorFramework創(chuàng)建抽象消息和接口的方法,如果想要進(jìn)一步了解抽象的類和對象是如何通過ActorFramework來實(shí)現(xiàn)的話,敬請期待接下來關(guān)于ActorFramework的一系列技術(shù)分享。

審核編輯 :李倩

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

    關(guān)注

    33

    文章

    8575

    瀏覽量

    151015
  • LabVIEW
    +關(guān)注

    關(guān)注

    1970

    文章

    3654

    瀏覽量

    323307
  • 華穗科技
    +關(guān)注

    關(guān)注

    1

    文章

    12

    瀏覽量

    80

原文標(biāo)題:教程 | ActorFramework的抽象消息和接口

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

收藏 人收藏

    評論

    相關(guān)推薦

    YOLOv6LabVIEW的推理部署(含源碼)

    相關(guān)介紹文章,所以筆者實(shí)現(xiàn)YOLOv6 ONNX LabVIEW的部署推理后,決定和各位讀者分享一下如何使用LabVIEW實(shí)現(xiàn)YOLO
    的頭像 發(fā)表于 11-06 16:07 ?243次閱讀
    YOLOv6<b class='flag-5'>在</b><b class='flag-5'>LabVIEW</b><b class='flag-5'>中</b>的推理部署(含源碼)

    微機(jī)io接口位于什么之間

    I/O接口(輸入/輸出接口)是計(jì)算機(jī)硬件系統(tǒng)的重要組成部分,它連接了計(jì)算機(jī)的內(nèi)部組件和外部設(shè)備。微機(jī)(微型計(jì)算機(jī)),I/O
    的頭像 發(fā)表于 10-14 14:03 ?494次閱讀

    labview生成應(yīng)用程序怎么包括userlist

    1. 準(zhǔn)備工作 開始之前,確保你已經(jīng)安裝了LabVIEW,并且熟悉基本的LabVIEW編程概念。 2. 創(chuàng)建用戶界面 2.1 設(shè)計(jì)界面 打開Lab
    的頭像 發(fā)表于 09-04 17:28 ?425次閱讀

    labview如何實(shí)現(xiàn)字符串換行

    1. 字符串換行的基本概念 LabVIEW,字符串換行通常指的是字符串插入換行符,使得字符串
    的頭像 發(fā)表于 09-04 15:47 ?1614次閱讀

    labview實(shí)現(xiàn)DBC界面加載配置

    labview實(shí)現(xiàn)DBC界面加載配置
    發(fā)表于 08-19 14:27 ?27次下載

    labview 創(chuàng)建mysql 表時(shí) 設(shè)置時(shí)間 怎么mysql是格式是date 而不是datetime?

    選擇 時(shí)間日期 但是mysql是date而不是datetime類型 ,除了sql語句創(chuàng)建表 ,怎么能實(shí)現(xiàn)創(chuàng)建數(shù)據(jù)為datetime類
    發(fā)表于 02-04 09:46

    如何創(chuàng)建重疊的封裝文件

    。它使用多層次的抽象,允許開發(fā)人員實(shí)現(xiàn)數(shù)據(jù)的封裝和隱藏,并確保訪問這些數(shù)據(jù)的方式是可控的。本文將詳細(xì)介紹創(chuàng)建重疊的封裝文件的步驟和最佳實(shí)踐。 確定需求 創(chuàng)建重疊的封裝文件之前,我們首
    的頭像 發(fā)表于 01-07 16:51 ?574次閱讀

    labview聲音采集與處理

    LabVIEW是一種用于數(shù)據(jù)采集與處理的編程語言和開發(fā)環(huán)境。它具有強(qiáng)大的聲音采集和處理功能,可以幫助用戶實(shí)現(xiàn)聲音信號的采集、分析和處理。本文將詳細(xì)介紹LabVIEW聲音采集與處理方面的應(yīng)用。 首先
    的頭像 發(fā)表于 01-04 10:48 ?2352次閱讀

    labview怎么獲取圖像數(shù)據(jù)

    LabVIEW獲取圖像數(shù)據(jù)主要有兩種方法:采集實(shí)時(shí)圖像和加載靜態(tài)圖像。 一、采集實(shí)時(shí)圖像: 首先,需要安裝合適的圖像采集設(shè)備,如相機(jī)或者視頻采集卡。可以通過USB、GigE或其他接口
    的頭像 發(fā)表于 01-04 09:48 ?2237次閱讀

    labview mdi怎么實(shí)現(xiàn)

    、調(diào)整大小和關(guān)閉。 創(chuàng)建主窗口:首先,您需要創(chuàng)建一個(gè)主窗口來容納多個(gè)文檔窗口。LabVIEW,您可以使用一個(gè)Front Panel來作為
    的頭像 發(fā)表于 01-02 16:12 ?1250次閱讀

    labview運(yùn)行后如何初始化

    LabVIEW是一款強(qiáng)大的圖形化編程軟件,在運(yùn)行之前通常需要進(jìn)行一些初始化操作。本文將詳細(xì)介紹LabVIEW運(yùn)行前的初始化過程,并提供了一些常用的初始化方法。 創(chuàng)建新項(xiàng)目:
    的頭像 發(fā)表于 12-28 17:24 ?2624次閱讀

    labview怎么查數(shù)組相同元素的個(gè)數(shù)

    要查找LabVIEW數(shù)組相同元素的個(gè)數(shù),可以使用以下步驟: 創(chuàng)建一個(gè)包含要查找的數(shù)值的數(shù)組。這可以通過手動輸入數(shù)組元素或從文件/其他數(shù)據(jù)源導(dǎo)入數(shù)組實(shí)現(xiàn)。 使用“For Loop”結(jié)
    的頭像 發(fā)表于 12-28 16:42 ?3481次閱讀

    傳感器抽象框架有哪些

    。 背景 傳感器網(wǎng)絡(luò)是由很多分布式傳感器節(jié)點(diǎn)組成的網(wǎng)絡(luò)系統(tǒng),用于采集環(huán)境的各種物理量。每個(gè)傳感器節(jié)點(diǎn)通常由傳感器、處理器、存儲器和通信接口組成。傳感器網(wǎng)絡(luò)可以應(yīng)用于環(huán)境監(jiān)測、農(nóng)業(yè)、交通、醫(yī)療等多個(gè)領(lǐng)域。 設(shè)
    的頭像 發(fā)表于 12-28 14:08 ?659次閱讀

    labview采樣點(diǎn)數(shù)怎么設(shè)置

    LabVIEW。 “項(xiàng)目”面板,選擇“新建VI”。這將創(chuàng)建一個(gè)新的虛擬儀器(VI)。 “工具欄”
    的頭像 發(fā)表于 12-28 11:06 ?2690次閱讀

    labview怎么用鍵盤操控事件結(jié)構(gòu)

    可以方便地通過鍵盤進(jìn)行交互操作。本文中,我們將詳細(xì)介紹LabVIEW中鍵盤操控事件結(jié)構(gòu)的使用方法和注意事項(xiàng),以幫助讀者更好地應(yīng)用這一功能。 首先,LabVIEW
    的頭像 發(fā)表于 12-27 10:14 ?2819次閱讀
    RM新时代网站-首页