LabVIEW专栏九、类的应用

一、类的应用

接上一章"类"
类在项目中,一般会在类的私有成员簇内,包含一个数据类型为参数类的队列。
例如网口类,里面实际会包含很多信息,有IP地址和端口等等参数。这些参数如果不放在队列引用中缓存下来,就无法在实际生产中修改参数。
因此,在实际应用中,需要新建一个网口参数类来包含IP地址等参数,而网口类需要一个元素最大长度为1的队列引用。
这个队列引用的作用就相当于一个全局变量,可以供网口类在初始化之后,别的地方可以读取或者修改其包含的网口参数类。

1.1、新建参数父类

由于参数类是每个仪器都有的,所以也是仪器类的共性,所以新建一个设备参数类"device para",充当仪器参数的父类。
类私有数据的簇,这个簇里面的元素也称为成员变量。
①新建"device para",默认继承LabVIEW对象
在这里插入图片描述
②LabVIEW类私有数据的簇,这个簇里面的元素也称为成员变量。双击类内的.ctl,可以打开,此处是双击"device para.ctl"。
仪器都应该有对应的名称,比如说是"某某工位的网口仪器类"等,所以在仪器参数类中可以包含一个name的成员变量。
添加一个类型为字符串,标签为name的控件。
在这里插入图片描述
③类需要新建一个用于访问类内数据成员的VI,有读和写的方法,通过这两个方法,可以读取和修改这个成员变量。
右键"device para"→点击"新建"→点击"用于数据成员访问的VI…"
在这里插入图片描述
④权限用"读写",其余全部默认,点击确定。就能生成两个vi,一个是读取name,一个是写入name,保存
在这里插入图片描述
在这里插入图片描述

  • 在程序框图里,其实就是簇的解绑和捆绑。
  • 类里面簇包含的变量,只能在成员方法中(静态方法和动态方法)解绑或捆绑,如果VI不是成员方法的,是无法解析类中的元素的。所以上面"读取name"和"写入name"能操作类的成员变量,是因为这两个方法都是类的成员方法。
    因此想要访问类中的成员变量,只能通过成员方法,最好就是通过上述步骤来生成"用于数据成员访问的VI…"
    在这里插入图片描述

1.2、设备类包含参数类队列

需要在设备类中包含一个数据元素为设备参数类的队列控件。
由于LabVIEW前面板没对应的队列控件,所以会有点复杂。
①在程序框图中放置一个"获取队列引用"→鼠标移动到"队列输出"输出接线端→右键后,选中"创建"→点击"输入控件"。
在这里插入图片描述
②这里的"队列输出"控件,就是队列控件。双击控件后,跳转到前面板,
示例图片
③把"device para"类,拉出来放置到队列控件后,就可以得到一个数据元素为设备参数类的队列控件。
在这里插入图片描述
在这里插入图片描述
④把队列控件,放置到device类的成员变量中,并修改标签为"参数类队列",保存后,关闭"device.ctl"。此处如果不关闭,可能会导致类报错,接着正常关闭就行。
在这里插入图片描述
⑥"device"类新建一个"创建"的静态方法,程序框图如下:
在这里插入图片描述

  • 新建了一个队列最大长度为1,数据类型为"device para"的队列,并入了一个默认值进队列
  • 由于队列是引用,这样在程序的其他地方修改了这个队列里的元素是可以生效的。

⑦右键选中"device"类,新建一个静态方法,名字改为"获取参数",程序框图和前面板如下:
在这里插入图片描述

  • 输出节点要连上"元素"控件
  • 要用"预览队列元素"来读取,而非出队列。

⑧右键选中"device"类,新建一个静态方法,名字改为"写入参数",程序框图和前面板如下:
在这里插入图片描述

  • 输入节点要连上"元素"控件
  • 要用"有损耗元素入队列"来读取,而非入队列。

⑨创建一个VI来测试上述功能,程序框图和前面板如下
在这里插入图片描述

  • 上面的循环可以修改"device"成员变量队列中的"device para"的name,下面的循环把"device"成员变量队列中的"device para"的name读取出来, 两者值是一样的。
  • 这里的队列使得类成为了"引用"。

二、子类的创建

三、工厂模式

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

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

相关文章

HarmonyOS开发实战(黑马健康系列一:欢迎页)

系列文章目录 (零)鸿蒙HarmonyOS入门:如何配置环境,输出“Hello World“ (一)鸿蒙HarmonyOS开发基础 (二)鸿蒙HarmonyOS主力开发语言ArkTS-基本语法 (三)鸿蒙…

【Qt QML】TabBar的用法

Qt Quick中的TabBar提供了一个基于选项卡的导航模型。TabBar由TabButton控件填充,并且可以与任何提供currentIndex属性的布局或容器控件一起使用,例如StackLayout或SwipeView。 import QtQuick import QtQuick.Controls import QtQuick.LayoutsWindow …

AWS SES发送邮件如何正确配置?操作指南?

AWS SES发送邮件有哪些限制?AWS SES发信的注意事项? AWS SES作为亚马逊云服务提供的一项高效、可靠的电子邮件发送服务,受到了众多企业的青睐。然而,如何正确配置AWS SES发送邮件。AokSend将详细解析AWS SES发送邮件的配置过程&a…

MIS微调SAM模型实时交互UI界面

前言 SAM模型的基本介绍可见SAM(Segment Anything Model)大模型使用--point prompt_sam大模型-CSDN博客 针对Meta团队去年发布的SAM大模型在医学图像分割领域表现性能较差的情况,笔者收集了一些MIS领域的数据集对SAM的架构进行fine tune&am…

vue快速入门(四十三)axios模块的安装与引入

步骤很详细,直接上教程 上一篇 在项目目录打开终端 输入以下命令安装axios npm i axios重新打开项目即可完成按照 测试 源码 main.js import Vue from vue import App from ./App.vue//全局引入axios // 引入axios import axios from axios; // 挂载到vue原型…

BGP配置和应用案例

策略路由的配置步骤 l 策略路由的配置步骤如下: 创建route-map 通过ACL匹配感兴趣的数据,定义策略动作 在指定接口下通过ip policy 命令应用route-map l 最终实现对通过该接口进入设备的数据进行检查,对匹配的数据执行规定的策略…

【A-034】基于SSH的电影订票系统(含论文)

【A-034】基于SSH的电影订票系统(含论文) 开发环境: Jdk7(8)Tomcat7(8)MySQLIntelliJ IDEA(Eclipse) 数据库: MySQL 技术: SpringStruts2HiberanteJSPJquery 适用于: 课程设计,毕业设计&…

7.MyBatis 操作数据库(初阶)

文章目录 1.什么是MyBatis2.为什么要学习 MyBatis?3.通过spring框架创建MyBatis项目3.1使用MyBatis查询数据库3.2 mysql连接不上报错解决方法 4.MyBatis的基础操作4.1企业建表规范:4.2MyBatis基本实现4.3单元测试4.4使用MyBatis可能遇到的问题4.5配置MyB…

Jsoncpp搭建交叉编译环境(移植到arm)

1. 官网下载源码 github地址:GitHub - open-source-parsers/jsoncpp at update 2. 交叉编译环境 当前平台/开发平台-编译环境: [rootlocalroot ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) [rootlocalroot ~]# uname -a Lin…

4.7 海思SS928开发 - uboot开发 - 自定义分区以及启动方案

4.7 uboot开发 - 自定义分区以及启动方案 ss928 出厂默认的启动方式以及 emmc 默认的分区,不符合需求,考虑自己做一个分区方案以及启动方案。 分区方案 分区表如下: 分区文件系统分区说明fastboot-存放 bootloaderubootenv-存储 uboot 环境…

【预测】小米汽车电子电气架构的猜想

文章目录 前言 整车EEA 硬件平台 软件平台 总结 参考资料 前言 见《【Review】小米汽车发布会》 整车EEA 小米汽车整车电子电气架构方面的信息,小米官方并没有对外介绍,但是从近日流出的整车BOM和供应商列表中看到,车上各种控制器一个都…

蓝牙低能耗安全连接 – 数值比较

除了 LE Legacy 配对之外,LE Secure Connections 是另一种配对选项。 LE 安全连接是蓝牙 v4.2 中引入的增强安全功能。它使用符合联邦信息处理标准 (FIPS) 的算法(称为椭圆曲线 Diffie Hellman (ECDH))来生成密钥。对于 LE 安全连接&#xff…

图像处理技术与应用(二)

图像处理技术与应用入门 椒盐噪声 椒盐噪声,也称为脉冲噪声,是一种常见的数字图像噪声。它通常表现为图像中随机出现的白色(椒)或黑色(盐)像素点,这些像素点在图像上呈现为黑白杂点。椒盐噪声…

算法项目(9)—— 大模型实现PDF检索加QA

本文包含什么? 使用大语言模型进行多个PDF问答检索加QA.gradio实现的网页界面操作,全套代码以及代码介绍运行有问题? csdn上后台随时售后.项目说明 本项目实现使用大语言模型为核心,gradio框架,调用vicuna实现多个pdf QA 代码运行 python3 main.pyimport gradio as gr fr…

云计算革新:以太网 Scale-UP 网络为 GPU 加速赋能

谈谈基于以太网的GPU Scale-UP网络 Intel Gaudi-3 采用 RoCE 互联技术,促进了 Scale-UP 解决方案。业界专家 Jim Keller 倡导以太网替代 NVLink。Tenstorrent 成功应用以太网实现片上网络互联。RoCE 和以太网已成为互联解决方案的新兴趋势,为高性能计算提…

视频中为什么需要这么多的颜色空间?

在视频处理中,经常会用到不同色彩空间:非线性RGB,线性 RGB,YUV,XYZ……为什么需要这么多的色彩空间呢? 1、视频采集时的线性RGB颜色空间 由数码相机中的 CMOS 传感器产生并写入原始文件(Raw Fil…

艾瑞泽5汽车电子控制单元CAN通信数据读写车辆网络系统交互接口

艾瑞泽5的网关接口数据交换通常涉及车辆内部电子设备之间的信息传输,包括车身系统、娱乐系统、远程控制、车辆状态监控、CAN数据采集分析、整车DBC控制策略等信息。 艾瑞泽5作为一款采用CAN协议的汽车,其CAN通信的开发可以提高车辆的安全性、可靠性和实…

怎么设置 idea terminal 窗口的编码格式

1 修改Terminal 窗口为 Git bash 窗口 打开 settings 设置界面,选择 Tools 中的 Terminal (File -> settings -> Tools -> Terminal) 修改 Shell path 为你的 Git bash 安装路径,我的在 C:\my_software\java\Git\bin\bash.exe 2 解决中文显示…

抢单业务介绍

存在的问题 会出现多个人同时访问的问题 解决办法:在判断前加锁,使用户在抢单前先访问锁然后在执行之后的操作 常见的锁 1.基于数据库 2.基础缓存(Redis等) 3.基于Zookeeper