0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在LabVIEW中创建Actor Framework的抽象消息及接口

倩倩 来源:华穗科技 作者:华穗科技 2022-09-23 10:51 次阅读

ActorFrameWork系列教程来到了第二期,大家还记得什么是对象什么是类吗?还没有学习过第一期或者忘记了的同学们,请看往期教程回顾学习一下吧!

本文教程:

LabVIEW中创建Actor Framework的抽象消息及接口

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

一般情况下,我们在启动界面使用“启动根操作者”启动根操作者,然后在根操作者和其他操作者的适当位置用“启动嵌套操作者”来启动其他操作者。就好比一个用户登录程序,其根操作者即为Controller,用以控制整体程序的逻辑,它的嵌套操作者可分为:用户操作界面的VIEW;登录判断模块、用户管理模块等Model。这就是所谓的MVC框架,MVC框架的更多内容在后续给大家详细讲解。

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

上一期我们学会了在同一个操作者中进行消息的传输和接收,但在嵌套操作者之间是怎么互相传消息的呢?对于一个嵌套于跟操作者之下的嵌套操作者,要如何传消息给根操作者呢?用俗话说,就是小兵要怎么一层层地把前线战报传给将军呢? 接下来本文以NestActor表示嵌套操作者,是被调用的关系。以Root Actor为根操作者,是调用的关系。 由于面向对象需要降低耦合性,那么基于类的操作者也需要考虑如何降低耦合性。当Nest Actor给Root Actor发送消息时,需要调用Root Actor的消息类的Send ***.vi,这就导致了Nest Actor依赖于Root Actor。为了解除这种依赖关系,我们需要对Root Actor和NestActor解耦。这时候我们就需要用到抽象消息或者接口来进行Nest Actor对Root Actor的消息传输。

二、 如何创建抽象消息前面我们得知了嵌套操作者传送消息的方式是抽象消息,那么接下来,小编将手把手教你如何在LavVIEW中创建抽象消息。

1. 创建Actor

创建两个Actor,分别命名为Root Actor和Nest Actor。

2. 创建抽象消息

在项目资源管理器中右键Nest Actor.lvclass → ActorFramework → Create Abstract Message for Caller,输入消息名称为New Data,放置一个字符串控件,命名为String Data,点击Create Message。这时Nest Actor.lvclass的属性中将新增一个New Data Msg类,用来指定由哪个消息来执行。为这个New Data Msg类创建写入的方法。

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

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

3. 为Root Actor创建一个静态方法

为Root Actor创建一个静态方法作为消息执行方法,命名为Update Data.vi。并在前面板放置字符串控件,命名为String Data,并配置接线端。在程序框图中将String Data连接到单按钮对话框。

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

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

4. 继承抽象消息

在项目资源管理器中右键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. 发送抽象消息

为Nest Actor创建一个静态方法Write New String Data.vi发送String Data,如下图所示,将Hello以New Data类型的抽象消息传送给调用方。

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

7.重写Nest Actor的Actor Core

重写Nest Actor的 Actor Core.vi调用Write New String Data.vi。

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

8. Launch根操作者

创建一个Launch.vi启用Root Actor。

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

启动Launch后,可以看见弹窗“Hello”。此时一个包含着信息“Hello”的抽象消息就从Nest Actor传送给了它的调用方Root Actor。

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

三、如何创建接口

LabVIEW2020以上版本支持利用接口在嵌套操作者之间传送消息,接口的使用方法比抽象消息要简单得多。接下来LabVIEW版本足够的小伙伴们,我们一起来尝试创建接口吧!

1. 创建Actor

创建两个Actor,分别命名为Root Actor和Nest Actor。

2. 创建接口

在Nest Actor创建一个接口,命名为Nest Msg Interface.lvclass。

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

3. 为接口创建动态方法

为Nest Msg Interface.lvclass创建一个动态方法New Data.vi,前面板添加字符串控件String Data,并为该方法创建一个消息。

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

4.继承接口

设置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创建一个静态方法Write New String Data.vi发送String Data,并重写 Actor Core.vi调用Write New String Data.vi。

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

8.Launch 根操作者

创建一个Launch.vi启用Root Actor。

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

我们可以看到Hello的弹窗也出现了,通过接口也可以实现嵌套操作者向调用方传送消息。

怎么样,接口的使用方法是不是比抽象消息方便呢?而且改变接口的方法只需要修改Root Actor的重写方法就可以了,而不是像抽象消息那样需要把消息删除后重新创建消息。

以上就是如何在LabVIEW中为ActorFramework创建抽象消息和接口的方法,如果想要进一步了解抽象的类和对象是如何通过ActorFramework来实现的话,敬请期待接下来关于ActorFramework的一系列技术分享。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口
    +关注

    关注

    33

    文章

    8488

    浏览量

    150809
  • LabVIEW
    +关注

    关注

    1962

    文章

    3652

    浏览量

    322309
  • 华穗科技
    +关注

    关注

    1

    文章

    11

    浏览量

    76

原文标题:教程 | ActorFramework的抽象消息和接口

文章出处:【微信号:华穗科技,微信公众号:华穗科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    YOLOv6LabVIEW的推理部署(含源码)

    相关介绍文章,所以笔者实现YOLOv6 ONNX LabVIEW的部署推理后,决定和各位读者分享一下如何使用LabVIEW实现YOLO
    的头像 发表于 11-06 16:07 169次阅读
    YOLOv6<b class='flag-5'>在</b><b class='flag-5'>LabVIEW</b><b class='flag-5'>中</b>的推理部署(含源码)

    labview生成应用程序怎么包括userlist

    1. 准备工作 开始之前,确保你已经安装了LabVIEW,并且熟悉基本的LabVIEW编程概念。 2. 创建用户界面 2.1 设计界面 打开Lab
    的头像 发表于 09-04 17:28 360次阅读

    labview如何实现字符串换行

    1. 字符串换行的基本概念 LabVIEW,字符串换行通常指的是字符串插入换行符,使得字符串
    的头像 发表于 09-04 15:47 1252次阅读

    labview 创建mysql 表时 设置时间 怎么mysql是格式是date 而不是datetime?

    选择 时间日期 但是mysql是date而不是datetime类型 ,除了sql语句创建表 ,怎么能实现创建数据为datetime类
    发表于 02-04 09:46

    如何创建重叠的封装文件

    。它使用多层次的抽象,允许开发人员实现数据的封装和隐藏,并确保访问这些数据的方式是可控的。本文将详细介绍创建重叠的封装文件的步骤和最佳实践。 确定需求 创建重叠的封装文件之前,我们首
    的头像 发表于 01-07 16:51 531次阅读

    labview声音采集与处理

    LabVIEW是一种用于数据采集与处理的编程语言和开发环境。它具有强大的声音采集和处理功能,可以帮助用户实现声音信号的采集、分析和处理。本文将详细介绍LabVIEW声音采集与处理方面的应用。 首先
    的头像 发表于 01-04 10:48 2167次阅读

    labview怎么获取图像数据

    LabVIEW获取图像数据主要有两种方法:采集实时图像和加载静态图像。 一、采集实时图像: 首先,需要安装合适的图像采集设备,如相机或者视频采集卡。可以通过USB、GigE或其他接口
    的头像 发表于 01-04 09:48 2064次阅读

    labview mdi怎么实现

    、调整大小和关闭。 创建主窗口:首先,您需要创建一个主窗口来容纳多个文档窗口。LabVIEW,您可以使用一个Front Panel来作为
    的头像 发表于 01-02 16:12 1106次阅读

    labview运行后如何初始化

    LabVIEW是一款强大的图形化编程软件,在运行之前通常需要进行一些初始化操作。本文将详细介绍LabVIEW运行前的初始化过程,并提供了一些常用的初始化方法。 创建新项目:
    的头像 发表于 12-28 17:24 2472次阅读

    labview怎么查数组相同元素的个数

    要查找LabVIEW数组相同元素的个数,可以使用以下步骤: 创建一个包含要查找的数值的数组。这可以通过手动输入数组元素或从文件/其他数据源导入数组实现。 使用“For Loop”结
    的头像 发表于 12-28 16:42 3192次阅读

    传感器抽象框架有哪些

    。 背景 传感器网络是由很多分布式传感器节点组成的网络系统,用于采集环境的各种物理量。每个传感器节点通常由传感器、处理器、存储器和通信接口组成。传感器网络可以应用于环境监测、农业、交通、医疗等多个领域。 设
    的头像 发表于 12-28 14:08 605次阅读

    labview采样点数怎么设置

    LabVIEW“项目”面板,选择“新建VI”。这将创建一个新的虚拟仪器(VI)。 “工具栏”
    的头像 发表于 12-28 11:06 2444次阅读

    labview怎么用键盘操控事件结构

    可以方便地通过键盘进行交互操作。本文中,我们将详细介绍LabVIEW中键盘操控事件结构的使用方法和注意事项,以帮助读者更好地应用这一功能。 首先,LabVIEW
    的头像 发表于 12-27 10:14 2641次阅读

    基于Actor Framework仿真线性编码器

    在学习LabView面向对象编程过程,相信大家也都接触到了Actor Framework。该框架于2010年NI Week首次公布,经过多年不断迭代更新,逐渐成为
    的头像 发表于 12-22 10:15 761次阅读
    基于<b class='flag-5'>Actor</b> <b class='flag-5'>Framework</b>仿真线性编码器

    如何在LabVIEW清晰加载图片呢?

    有开发者提出,使用LabVIEW开发图片加载显示程序时,为什么明明看着很清晰的图片,LabVIEW加载显示后就变得粗糙,线条不流畅。
    的头像 发表于 12-20 09:08 1612次阅读
    如何在<b class='flag-5'>LabVIEW</b><b class='flag-5'>中</b>清晰加载图片呢?