首页/最新动态
 你是否知道“对象”是什么?

当然此对象非彼对象,对于计算机来说对象是对客观事物的抽象,类是对对象的抽象。如此抽象的概念,在LabVIEW中以Actor Framework的形式来解决多线程的各种复杂问题。

本文小编将手把手教你如何在LabVIEW中创建你的第一个Actor Framework,跟着搭建并感受对象和类的神奇吧!


本文教程:

了解并在LabVIEW中创建Actor Framework


图片

一、什么是模块化设计?

1.png

以一个数据采集测试系统为例,我们设计程序的时候一般会将程序分为上图中的高内聚、低耦合的四个模块,分别为:用户界面模块、数据采集模块、数据分析模块、文件I/O模块。
高内聚是指每个模块都有自己明确的功能,并且只负责一件工作。
低耦合是指模块之间不互相依赖,每个模块都可以不依赖其它模块独立运行。
这四个模块中有什么需要重复编写的相似吗?
状态机框架、初始化、错误处理等代码都可以将其抽象,将这四个模块进行打散又重组。
不是有些难以理解呢?没关系,拿一个简单的例子来讲解对象和类的关系。


2.png

如上图所示是一个车辆的类。无论是小汽车、跑车、大卡车、赛车,都需要燃油来驱动车辆运行(当然电动的除外啦),也可以通过仪表盘来获取剩余燃油、得知当前车速。我们可以将所有能够称之为汽车的东西都看作拥有同一个父类,这个父类拥有着属性燃油、最大速度等,也拥有着获取燃油存量、获取目前速度的方法
那么如何把这些抽象出来的属性和方法通过程序来实现呢?接下来我们先学习一些操作者框架的基本知识,或许会有新的见解。


二、 操作者框架

操作框架主要由操作者Actor消息Message构成
·操作者(Actor:拥数据状态的模块;
·消息(Message息在操作者间传递用来触发状态改变。

操作者框架拥有以下特点
·消息驱动Actor之间的消息通信是异步的,即使Actor在发送消息后也无需阻塞或者等待就能够处理其他事情;
·强隔离性–Actor中的方法不能由外部直接调用,所有的一切都通过消息传递进行的,从而避免了Actor之间的数据共享,想要观察到另一个Actor的状态变化只能通过消息传递进行询问;
·面向对象编程-由于采用LabVIEW Class编写,可将面向对象编程思想运用到LabVIEW编程中。

LabVIEW中操作者框架的核心就需要通过Launch Actor Core.vi来实现。

83.png

Actor Core为操作者框架的核心vi,该vi接收消息、执行消息和错误处理。
显然,Actor Framework中的消息就是用来传送消息并执行方法的,而操作者中所包含的各种属性就是类的属性。利用Actor Framework的操作者和消息就可以实现面向对象的编程啦。
接下来跟着小编搭建一个简单的Actor,先了解一下如何构建Actor Framework的架构吧~


 三、创建你的第一个Actor
作为操作者架构,必不可少的就是操作者和消息。所以先跟着小编尝试搭建以消息为媒介的“Hello World”弹窗吧!
1. 创建Actor

新建一个LabVIEW空白项目,右键项目下My Computer ->New →Actor,弹出创建Actor面板,填写Actor名称、选择父类、选择保存路径。

4.png

5.png

你可以在这个项目创建出的Actor下新建一些虚拟文件夹,用以存放不同类型的方法。例如可重写方法Override、私有方法Private以及功能方法Method。

2. 创建静态方法
在项目资源管理器中右键My First Actor.lvclass → New → VI from Static Dispatch Template创建静态方法,保存命名为Pop Up.vi。并在前面板添加字符串控件,连接接线板;在程序框图连接单按钮对话框。

6.png

7.png


3. 为静态方法创建消息
在项目资源管理器中右键Pop Up.vi → Actor Framework → Create Message。等待消息创建完成后,展开Messages for this Actor虚拟文件夹,可以看到消息创建完成。

8.png

4. 发送消息

第一步,项目资源管理器中新建Launcher.vi;

第二步,在Launcher.vi程序框图中添加Launch Root Actor.vi;

位置:程序框图 → Data Communication → Actor Framework → Launch Root Actor.vi。

第三步,创建一个My First Actor.class实例,并连接到 Launch Root Actor.vi;

第四步,添加Send Pop Up.vi,并连接到Launch Root Actor.vi;

第五步,添加Send Normal Stop.vi;

位置:程序框图 → Data Communication → Actor Framework → Send Normal Stop.vi;

第六步,为Send Pop Up.vi连接字符串常量输入。

9.png


5. 启动程序

运行Launcher.vi。可以看到“Hello World”已经通过Actor的消息发送给了Send Pop Up.vi,而这个vi里实现的功能就是弹出一个对话框,并显示发来的消息。

10.jpg


以上就是如何在LabVIEW中构建一个简单的Actor Framework的基本步骤啦,如果想要进一步了解抽象的类和对象是如何通过Actor Framework来实现的话,敬请期待接下来关于Actor Framework的一系列技术分享。
下一期我们将分享Actor Framework中抽象消息的运用
对Actor Framework感兴趣的工程师们,欢迎持续关注、留言和点赞,也可以私信小编各位的技术困惑和技术需求,以获取参加免费线下培训和技术交流的机会哦。