LabVIEW创建类 3

简介: LabVIEW创建类 3

LabVIEW创建类 3


继承


通过“继承”可在现有类的基础上创建新类。若创建一个新的LabVIEW类并将它设置为继承另一个类的数据及成员VI,这个新类将可使用它所继承的类中“公共”及“保护”型的成员VI。这个新类还可添加自己的数据和成员VI以丰富其功能。例如,“汽车”类的私有数据包括齿轮数量、车门数量、颜色、制造和型号。如创建了一个名为卡车类的新类,可将卡车类设置为继承汽车类,并对卡车类添加布尔型数据短车厢?和四轮驱动?。但是,如下图所示,在对LabVIEW类进行捆绑或解除捆绑时,节点上仅显示当前类私有数据的接线端,而不显示从祖先类继承的任何数据的接线端。


祖先类的数据是私有的,必须使用祖先类提供的函数(成员VI)才能修改这些数据。子孙类的成员VI可以调用祖先类任何“公共”型的成员VI,就像调用LabVIEW中的其它VI一样。子孙类的成员VI也可以调用祖先类“保护”型的成员VI。若指定一个祖先类成员VI为“保护”型,则其任何子类的成员VI可以调用其方法,但该类继承层次结构以外的任何其它VI都不能调用其方法。如需访问卡车类从汽车类继承而来的齿轮数量,可在汽车类中创建一个“公共”型或“保护”型的成员VI,比如Get Gears.vi。在GetGears.vi的程序框图中可对汽车类解除捆绑,从而得到齿轮数量。然后将齿轮数量分配到连线板的一个输出接线端,用这种方法,汽车类的子孙类(例如,卡车类)就可访问汽车类的某个私有数据(例如,齿轮数量)了。


在汽车类中创建访问数据成员的成员VI,即可访问齿轮数量。创建成员VI时,勾选创建访问器对话框的通过属性节点实现复选框。然后,将卡车类连接至属性节点,右键单击属性接线端并选择选择属性»齿轮数量。


注:  LabVIEW类不可调用另一个LabVIEW类的“私有”型成员VI,即使是父类,也无法调用其子类的私有成员VI。类的“私有”成员VI只能由这个类的其它成员VI在程序框图中调用。


注:  (FPGA模块)创建FPGA VI时,可在限制的范围内使用继承。


LabVIEW对象


短语LabVIEW对象是一个特定的类的名称。LabVIEW面向对象编程中,LabVIEW对象是继承树的根类。默认状态下,所有LabVIEW类都是从“LabVIEW对象”继承而来的。通过“LabVIEW对象”创建的VI,能对多个LabVIEW类执行通用的操作。例如,可创建一个由若干LabVIEW类构成的数组,该数组的类型是某个基类,数组中的数据可以是这个基类或它的任何子孙类类型的元素,因此数组中的数据是异构的。如果一个数组的类型为“LabVIEW对象”,则该数组可包含汽车类、卡车类和保龄球类。保龄球类并不是从汽车类或卡车类继承而来的,因此LabVIEW将创建一个通用于这些类的最近的祖先基类,此处便以“LabVIEW对象”为基类。


下图显示了汽车类数组,一个包含汽车类和卡车类的数组。由于卡车类是从汽车类继承而来的,汽车类就是通用于这两个类的最近的祖先基类。该图还显示了包含“LabVIEW对象”类、汽车类、卡车类和保龄球类的LabVIEW对象数组。保龄球类不是从汽车类或卡车类继承而来的,但所有的这三个类都是从“LabVIEW对象”这个根类继承而来,因此LabVIEW对象数组的类型是“LabVIEW对象”。

设置继承


默认状态下,所有LabVIEW类都是从“LabVIEW对象”继承而来的。如果要更改一个类的继承关系,必须在创建该类之后更改继承。通过类属性对话框,可设置类的继承关系和其它选项。在LabVIEW类层次结构窗口中,可查看LabVIEW类的层次结构。类继承的层次结构可包括下列类型的类。


父类-供其它LabVIEW类继承数据、“公共”型成员VI和“保护”型成员VI的LabVIEW类。


子类-继承父类的公共和受保护成员VI的LabVIEW类。除非父类提供访问VI,否则子类不继承父类的私有数据。


兄弟类-和一个LabVIEW类继承同一个父类的另一个LabVIEW类。


祖先类-一个LabVIEW类的上一层(父类)、上二层(父类的父类)、上三层等等。“LabVIEW对象”是所有LabVIEW类的始祖。


子孙类-一个LabVIEW类的下一层(子类)、下二层(子类的子类)、下三层等等。


注:  如创建的VI重写父级LabVIEW类中的属性访问器VI,则必须在子类和父类的属性定义文件夹中指定相同的名称和文件夹路径。


连线外观


类定义了新的数据类型。在程序框图中,通过类定义的数据类型采用默认的LabVIEW类连线外观,或者继承父类的连线外观。通过类属性对话框可对LabVIEW类更改连线外观。适当地更改不同LabVIEW类的连线外观,可提高程序框图的可读性。而使用过多的连线色彩和连线模式将破坏程序框图的可读性。下图左侧显示了LabVIEW内置的连线外观,右侧显示了自定义连线外观的样例。

关于在LabVIEW中避免过多连线和色彩的技巧,见LabVIEW Style Checklist。


需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目,可联系们。

相关文章
|
XML 存储 程序员
LabVIEW开发LabVIEW类
LabVIEW开发LabVIEW类
413 0
|
存储 SQL 关系型数据库
mysql中 如何设置字段不限长度
在MySQL中,可以使用数据类型TEXT来存储不定长的文本数据。如果不需要限制文本的最大长度,可以使用TEXT数据类型而不指定长度。 例如,下面的SQL语句创建一个名为my_table的表,其中包含一个text_column字段,该字段不限长度:
2242 0
|
Docker 容器 Perl
云效flow构建docker镜像更换apt源为阿里镜像源
在 Dockerfile 中添加命令以更换 Debian 源为阿里云镜像,加速容器内软件包下载。核心命令通过 `sed` 实现源地址替换,并更新 apt 软件源。其中 `cat` 命令用于验证替换是否成功,实际使用中可删除该行。
3092 32
|
10月前
|
算法 测试技术 决策智能
美团开源发布 LongCat-Flash-Chat:专为高效智能体任务设计,推理速度超100 tokens/s
9月1日,美团正式发布 LongCat-Flash-Chat,并同步开源。LongCat-Flash 采用创新性混合专家模型(Mixture-of-Experts, MoE)架构,总参数 560 B,激活参数 18.6B~31.3B(平均 27B),实现了计算效率与性能的双重优化。
1317 1
|
开发框架 .NET API
RESTful API 设计与实现:C# 开发者的一分钟入门
【10月更文挑战第5天】本文从零开始,介绍了如何使用 C# 和 ASP.NET Core 设计并实现一个简单的 RESTful API。首先解释了 RESTful API 的概念及其核心原则,然后详细说明了设计 RESTful API 的关键步骤,包括资源识别、URI 设计、HTTP 方法选择、状态码使用和错误处理。最后,通过一个用户管理 API 的示例,演示了如何创建项目、定义模型、实现控制器及运行测试,帮助读者掌握 RESTful API 的开发技巧。
931 7
LabVIEW在应用程序和接口中使用LabVIEW类和接口
LabVIEW在应用程序和接口中使用LabVIEW类和接口
675 0
|
机器学习/深度学习 计算机视觉
深度学习之农作物病害检测
基于深度学习的农作物病害检测利用卷积神经网络(CNN)、生成对抗网络(GAN)、Transformer等深度学习技术,自动识别和分类农作物的病害,帮助农业工作者提高作物管理效率、减少损失。
504 4
|
传感器 数据采集 数据挖掘
基于AB32VG1的冬笋探测器设计
基于AB32VG1的冬笋探测器设计利用微波反射法,由发射/接收电路、天线、相位检测模块(如AD8302D)及温湿度补偿单元构成。设备产生900MHz信号,通过土壤时,信号变化由AB32VG1分析并显示在LCD屏幕上。硬件包括AB32VG1主控、ADF4351高频源、温湿度传感器和900M天线。软件利用AB32VG1处理信号并进行探测。项目开源,代码可在Gitee找到。
594 1
|
监控 Linux API
LabVIEW监控实时嵌入式目标上的CPU和内存使用情况
LabVIEW监控实时嵌入式目标上的CPU和内存使用情况
834 4

热门文章

最新文章