LabVIEW创建类 3

news2024/11/26 16:42:40

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开发等相关项目,可联系们。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/50220.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

聚观早报 | 脸书泄露数据被罚20亿;iPhone15将全系支持灵动岛

今日要闻:脸书泄露数据被罚20亿;iPhone15将全系支持灵动岛;540万推特用户数据被盗;罗永浩入局tiktok;特斯拉研发改款Model3脸书泄露数据被罚20亿 据报道,脸书因泄露5亿用户数据,被欧洲监管机构罚…

Starday为什么是跨境电商卖家的不二之选?

据国内海关统计显示,近5年来,中国跨境电商规模增长近10倍,年增长率在30%以上,占国际贸易近40%。基于流量模式的跨境电商直播、垂直跨境电商等新模式蓬勃发展,近几年跨境电商一直不断地在深度融合发展,加之疫…

WSL Ubuntu20.04安装pycairo指南

环境说明 wsl Ubuntu20.04 走过的一些可能有用的弯路 由于pycairo要求python3.7,但是之前Ubuntu上有个3.6的python环境,所以就安装了python3.8: sudo apt install python3.8然后python3命令还是链接到python3.6,结果就yongln …

Stateflow状态转移练习

文章目录1.外部转移与内部转移1.1 stateflow1.2 分析2.外部转移内部转移超转移2.1 stateflow2.2 video1.外部转移与内部转移 1.1 stateflow 1.2 分析 首先是 xyz0,然后进入 A 状态,此时 A 的 en 激活,xx1,即 x1其次进入默认状态…

聊天软件im即时通讯源码酷信视酷,在线语音视屏通话端对端加密聊天,支持7端互通带部署教程

APP端有安卓端苹果端,PC端,web端,管理端有PC后台! .产品为独立开发,非网上下载不能用的产品! .高端产品,即时聊天软件技术难度大,请不要拿网络其他聊天软件来对比&#xff0…

多线程,了解-概念-实现方式-常见方法-安全问题-死锁-生产者消费者

了解 简单了解多线程 是指从软件或者硬件上实现多个线程并发执行的技术。 具有多线程能力的计算机因有硬件支持而能够在同一时间执行多个线程,提升性能。 简单了解多线程 简单了解多线程 简单了解多线程 简单了解多线程 概念 线程相关的概念 并行:在同…

【Linux进阶】-- 1.python脚本实现守护进程daemon调度,启停等

"怀斯曼不蒸汽啊"1. Linux守护进程介绍1.1 查看进程2. python指令for linux2.1 运行shell命令3. 代码讲解3.1 创建守护进程文件pre_deal.py3.2 用脚本运行3.3 用一个python程序来管理该任务任务介绍: 首先python创建文件1,作用是创建一个守护进程,内容是持续输出时间…

<C++>手撕搜索二叉树

目录 一、搜索二叉树的性质 二、搜索二叉树的结构定义 三、手撕搜索二叉树非递归 1)Insert() 2)Find() 3)Erase() 4)InOder() 5)BSTree(const BSTree& t) 拷贝构造 6)~BSTree()析构函数 四、手…

【学习笔记65】JavaScript的继承

一、认识继承 function Person(name) {this.name name}Person.prototype.sayName () > {console.log(name)}function Stu(age) {this.age age}const s new Stu(18)console.log(s) // {age: 18} 说明: 想让s这个对象内部有一个name属性, 并且可以使用 sayN…

双功能连接试剂:Alkyne hydrazide,炔烃-酰肼 主要特点进行分享

Alkyne hydrazide物理参数: CAS号:N/A |英文名:Alkyne hydrazide | 中文名:炔烃-酰肼 货号:X-CL-1132 分子式:C6H11ClN2O 分子量:162.62 纯度:95% 外形:淡黄色或白…

企业级的商用远程控制软件有哪些

现在远程控制软件,可选性还是比较大的。针对个人用户市场,也有不少免费软件。 企业用户的需求和个人用户的需求,差别较大。个人用户市场,主要诉求是免费、好用。企业用户,主要关注安全、管理功能、性能、价格等因素。…

为什么建议MySQL在2000W条左右记录分表

为什么建议MySQL在2000W条左右记录分表?这个数量问题并不是绝对的,这是一个相对的数量。在回答这个问题前我们应该先了解MySQL底层是用的什么数据结构来进行数据存储的。 MySQL底层采用的B树进行的数据存储 InnoDB存储引擎最小储存单元是页,…

【Java面试】异常常见面试题

文章目录1. Error 和 Exception 区别是什么?运行时异常和一般异常(受检异常)区别是什么?JVM 是如何处理异常的?throw 和 throws 的区别是什么?final、finally、finalize 有什么区别?NoClassDefFoundError 和 ClassNotF…

OpenMP 快速入门

学习《高性能计算:现代系统与应用实践》(Thomas Sterling,Matthew Anderson,Maciej Brodowicz)第 7 章 OpenMP 的基础 OpenMP OpenMP 是一个 API C、C、Fortran OpenMP 是共享内存的多线程编程模型 共享内存 默认所有…

22年11月-自研-面试题

目录背景题目Activiti回退功能条件分支功能,并行网关、包含网关有没有用到流程流转中,需知会其他人,这些人需同意/做处理(有点流程的感觉),最后所有的意见都要汇总。你的实现思路Redis哪些数据结构&#xf…

STM32实战总结:HAL之低功耗

低功耗的含义不必过多解释,一听就能懂。 低功耗对电池供电产品尤其重要。 STM32的有三种低功耗模式,即睡眠模式、停止模式和待机模式。 在我的印象中,停止不就是关机吗?但并不是。 在系统或电源复位以后,微控制器处于运…

基于最小二乘插值(Least-Squares Interpolation)图像超分辨率重构算法研究-附Matlab代码

⭕⭕ 目 录 ⭕⭕✳️ 一、引言✳️ 二、最小二乘图像插值理论与Matlab处理✳️ 三、基于最小二乘插值超分辨重构实验验证✳️ 四、参考文献✳️ 五、Matlab程序获取与验证✳️ 一、引言 图像超分辨率重构技术起源于上世纪60年代Harris和Goodman构造的单帧图像重构方法&#xf…

AutoCAD Electrical 2022—元件的绘制

原理图——图标菜单 选择要插入的元件; 根据实际情况,选择垂直放置还是水平放置,比例大小; 选择一个三极断路器,垂直放置; 点击确定后,点击一根导线,选择断路器另外两个符号是的方向…

相控阵天线(十一):阵列天线有源驻波分析

目录简介有源驻波概念和计算公式平面阵列天线的有源驻波平面阵列有源驻波计算公式平面阵列有源驻波仿真示例不同耦合系数/隔离度的有源驻波分析简介 有源相控阵最大的特点是每一个收发天线后均连接一个独立的T/R组件,每一个T/R组件相当于一个常规雷达的高频前端&am…

【信息检索与数据挖掘期末笔记】(二) IR Evaluation

文章目录测试集无序检索结果集合的评价Precision & RecallAccuarcy?F值有序检索结果评价方法二值相关(相关/不相关)PrecisionK(PK)Mean Average Precision(MAP)Mean Reciprocal Rank多级相关CG&#x…