教程|创建你的第一个Actor Framework

描述

你是否知道“对象”是什么? 当然此对象非彼对象,对于计算机来说对象是对客观事物的抽象,类是对对象的抽象。如此抽象的概念,在LabVIEW中以Actor Framework的形式来解决多线程的各种复杂问题。 想要了解什么是Actor Model,具体的内容请参照以前发表过的文章:

Actor Model --AgileT硬件模块的管理员

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

本文教程:

了解并在LabVIEW中创建Actor Framework

一、什么是模块化设计?

LabVIEW

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

LabVIEW

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

二、 操作者框架

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

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

LabVIEW

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

三、创建你的第一个Actor

作为操作者架构,必不可少的就是操作者和消息。所以先跟着小编尝试搭建以消息为媒介的“Hello World”弹窗吧!

1. 创建Actor

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

LabVIEW

LabVIEW

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

2. 创建静态方法

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

LabVIEW

LabVIEW

3. 为静态方法创建消息

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

LabVIEW

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连接字符串常量输入。

LabVIEW

5. 启动程序

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

LabVIEW

以上就是如何在LabVIEW中构建一个简单的Actor Framework的基本步骤啦,如果想要进一步了解抽象的类和对象是如何通过Actor Framework来实现的话,敬请期待接下来关于Actor Framework的一系列技术分享。

下一期我们将分享Actor Framework中抽象消息的运用。 

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
rock00210 2023-12-18
0 回复 举报
写的有点拗,到第六步就搞不出来了 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分