【LabVIEW面向对象】封装篇:001“数据与方法分开”的设计理念(上)

本文介绍LabVIEW面向对象编程中的数据与方法分离理念,通过创建02_Timer类实现全局计时器功能,强调与功能性全局变量的区别。该类支持初始化、关闭和操作方法,允许创建多个实例并实现数据同步。鼓励读者动手实践并探讨设计技巧。
摘要由CSDN通过智能技术生成

我希望通过做这个题目时,重点对比此方法与“功能性全局变量”的区别,

深刻理解面向对象主要思想之一:“数据与方法要分开”的概念,自己体会为什么需要数据与方法分开。

另外,“功能性全局变量”与面向对象的“数据方法分开”思想背道而驰,后面不再会用到,准备和它说再见吧。

同时,对于没接触过LabVIEW 类结构的同学,可以通过此题目入门。

实践是检验真理的唯一标准,同学们一定要把手动起来。

类名称:02_Timer

功能说明:

创建一个02_Timer类,它是一个全局计时器,你可以设定倒计时时间或开始正计时,并在其他任何地方查询剩余时间和已用时间。(所有方法我只定义输入输出接口,具体程序代码大家自己写)

方法输入输出定义(LabVIEW里“方法”就是VI):

Init:初始化

Close:释放内存

Opration:计数器操作方法

其他要求:

用下面的Demo验证你的结果:

  1. 可以创建多个实例(就是你可以同时创建多个本类),Opration方法连接的对象不同,则代表对不同的计数器进行操作。(这个特性与功能性全局变量完全不同,想想如果你要建1000个计时器,功能性全局变量怎么弄?)
  2. 所有VI的重入方式使用“共享副本重入执行”(这很重要,也是实现要求1的必然,后面几乎所有VI都是这种重入方式。另,动态VI仅支持此重入方式,不支持“预先分配副本重入执行”。所以提前养成好习惯)
  3. 全局数据同步,即只要连接对象是一个,不需要前后顺序连接类的连线也能访问数据。如下图所示读取计时器的VI并没有与启动计时器的VI顺序连接,但依然可以读出正确的数值。这个功能是需要专门设计的,你可以思考一下。(“全局性”是一个在面向对象思想之上的独立设计技巧,在使用LabVIEW自带VI时,也并不是所有模块都具备全局性,有些模块必须收尾依次相连使用;有些就可以只连接输入即可实现操作,例如串口。)

Demo:

运行结果:

项目视图:

 

同学们一定要动手试验,不要只看不做。请做完的同学将截图贴到评论里,后面会公布答案并讲解。

 

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值