当然此对象非彼对象,对于计算机来说对象是对客观事物的抽象,类是对对象的抽象。如此抽象的概念,在LabVIEW中以Actor Framework的形式来解决多线程的各种复杂问题。
本文小编将手把手教你如何在LabVIEW中创建你的第一个Actor Framework,跟着搭建并感受对象和类的神奇吧!
本文教程:
了解并在LabVIEW中创建Actor Framework
一、什么是模块化设计?
以一个数据采集测试系统为例,我们设计程序的时候一般会将程序分为上图中的高内聚、低耦合的四个模块,分别为:用户界面模块、数据采集模块、数据分析模块、文件I/O模块。
高内聚是指每个模块都有自己明确的功能,并且只负责一件工作。低耦合是指模块之间不互相依赖,每个模块都可以不依赖其它模块独立运行。状态机框架、初始化、错误处理等代码都可以将其抽象,将这四个模块进行打散又重组。是不是有些难以理解呢?没关系,拿一个简单的例子来讲解对象和类的关系。
如上图所示是一个车辆的类。无论是小汽车、跑车、大卡车、赛车,都需要燃油来驱动车辆运行(当然电动的除外啦),也可以通过仪表盘来获取剩余燃油、得知当前车速。我们可以将所有能够称之为汽车的东西都看作拥有同一个父类,这个父类拥有着属性:燃油、最大速度等,也拥有着获取燃油存量、获取目前速度的方法。那么如何把这些抽象出来的属性和方法通过程序来实现呢?接下来我们先学习一些操作者框架的基本知识,或许会有新的见解。
二、 操作者框架
操作者框架主要由操作者Actor和消息Message构成:·消息(Message): 消息在操作者间传递用来触发状态改变。·消息驱动–Actor之间的消息通信是异步的,即使Actor在发送消息后也无需阻塞或者等待就能够处理其他事情;·强隔离性–Actor中的方法不能由外部直接调用,所有的一切都通过消息传递进行的,从而避免了Actor之间的数据共享,想要观察到另一个Actor的状态变化只能通过消息传递进行询问;·面向对象编程-由于采用LabVIEW Class编写,可将面向对象编程思想运用到LabVIEW编程中。LabVIEW中操作者框架的核心就需要通过Launch Actor Core.vi来实现。
Actor Core为操作者框架的核心vi,该vi接收消息、执行消息和错误处理。显然,Actor Framework中的消息就是用来传送消息并执行方法的,而操作者中所包含的各种属性就是类的属性。利用Actor Framework的操作者和消息就可以实现面向对象的编程啦。接下来跟着小编搭建一个简单的Actor,先了解一下如何构建Actor Framework的架构吧~
作为操作者架构,必不可少的就是操作者和消息。所以先跟着小编尝试搭建以消息为媒介的“Hello World”弹窗吧!新建一个LabVIEW空白项目,右键项目下My Computer ->New →Actor,弹出创建Actor面板,填写Actor名称、选择父类、选择保存路径。
你可以在这个项目创建出的Actor下新建一些虚拟文件夹,用以存放不同类型的方法。例如可重写方法Override、私有方法Private以及功能方法Method。在项目资源管理器中右键My First Actor.lvclass → New → VI from Static Dispatch Template创建静态方法,保存命名为Pop Up.vi。并在前面板添加字符串控件,连接接线板;在程序框图连接单按钮对话框。在项目资源管理器中右键Pop Up.vi → Actor Framework → Create Message。等待消息创建完成后,展开Messages for this Actor虚拟文件夹,可以看到消息创建完成。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连接字符串常量输入。
5. 启动程序
运行Launcher.vi。可以看到“Hello World”已经通过Actor的消息发送给了Send Pop Up.vi,而这个vi里实现的功能就是弹出一个对话框,并显示发来的消息。
以上就是如何在LabVIEW中构建一个简单的Actor Framework的基本步骤啦,如果想要进一步了解抽象的类和对象是如何通过Actor Framework来实现的话,敬请期待接下来关于Actor Framework的一系列技术分享。下一期我们将分享Actor Framework中抽象消息的运用。
对Actor Framework感兴趣的工程师们,欢迎持续关注、留言和点赞,也可以私信小编各位的技术困惑和技术需求,以获取参加免费线下培训和技术交流的机会哦。