你是否知道“对象”是什么? 当然此对象非彼对象,对于计算机来说对象是对客观事物的抽象,类是对对象的抽象。如此抽象的概念,在labview中以actor framework的形式来解决多线程的各种复杂问题。 想要了解什么是actor model,具体的内容请参照以前发表过的文章:
actor model --agilet硬件模块的管理员
本文小编将手把手教你如何在labview中创建你的第一个actor framework,跟着搭建并感受对象和类的神奇吧!
本文教程:
了解并在labview中创建actor framework
一、什么是模块化设计?
以一个数据采集测试系统为例,我们设计程序的时候一般会将程序分为上图中的高内聚、低耦合的四个模块,分别为:用户界面模块、数据采集模块、数据分析模块、文件i/o模块。 高内聚是指每个模块都有自己明确的功能,并且只负责一件工作。 低耦合是指模块之间不互相依赖,每个模块都可以不依赖其它模块独立运行。 这四个模块中有什么需要重复编写的相似代码吗? 状态机框架、初始化、错误处理等代码都可以将其抽象,将这四个模块进行打散又重组。 是不是有些难以理解呢?没关系,拿一个简单的例子来讲解对象和类的关系。
如上图所示是一个车辆的类。无论是小汽车、跑车、大卡车、赛车,都需要燃油来驱动车辆运行(当然电动的除外啦),也可以通过仪表盘来获取剩余燃油、得知当前车速。我们可以将所有能够称之为汽车的东西都看作拥有同一个父类,这个父类拥有着属性:燃油、最大速度等,也拥有着获取燃油存量、获取目前速度的方法。 那么如何把这些抽象出来的属性和方法通过程序来实现呢?接下来我们先学习一些操作者框架的基本知识,或许会有新的见解。
二、 操作者框架
操作者框架主要由操作者actor和消息message构成: ·操作者(actor):拥有数据状态的模块; ·消息(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的架构吧~
三、创建你的第一个actor
作为操作者架构,必不可少的就是操作者和消息。所以先跟着小编尝试搭建以消息为媒介的“hello world”弹窗吧!
1. 创建actor
新建一个labview空白项目,右键项目下my computer ->new →actor,弹出创建actor面板,填写actor名称、选择父类、选择保存路径。
你可以在这个项目创建出的actor下新建一些虚拟文件夹,用以存放不同类型的方法。例如可重写方法override、私有方法private以及功能方法method。
2. 创建静态方法
在项目资源管理器中右键my first actor.lvclass → new → vi from static dispatch template创建静态方法,保存命名为pop up.vi。并在前面板添加字符串控件,连接接线板;在程序框图连接单按钮对话框。
3. 为静态方法创建消息
在项目资源管理器中右键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中抽象消息的运用。
集中式光伏电站和分布式光伏电站的差异
微软智能云Microsoft Azure新增数据中心区域正式启用
江苏长晶发布FST2.0高性能IGBT系列产品
交流供电系统的作用
PCB红墨水测试的定义
教程|创建你的第一个Actor Framework
三星关闭工厂消息终于坐实,坚决不做下一个诺基亚
STM32单片机寄存器的位置是如何定义的
毫米波是推进5G持续商用的重要方向
基于HHARM2410嵌入式开发套件实现多输入H.264视频服务器的设计
华为Mate X2:将引领未来智能手机新形态
具有扩展频率范围的 LCR 表提高测量性能
6月,上海等你!| 第二届生物医学光子学交叉融合学术论坛
标准电容器概述
电容容量选择规则与经验技巧
交换机的分类及特点
Intel推出集成高带宽存储器的FPGA
一氧化碳传感器在线监测烟道废气CO含量改善燃气锅炉的燃烧效率
造成磁翻板液位计出现假液位的原因有哪些
“生死看淡”的雷军要造车,这对中国的汽车产业意味着什么?