• LabVIEW面向对象-面向对象


    面向对象

    与其他编程语言不同,LabVIEW 的类的对象是采用值传递的

    LabVIEW程序开发一般流程是先设计和实现顶层VI(主界面)然后自上而下设计与编写LabVIEW程序。程序中除了少量最低层的基础程序模块外,大部分模块不具备通用性。

    面向对象的编程方法将程序的功能模块进行封装,提高模块的通用性和安全性。

    内存加载

    查看内存中的所有VI
    在这里插入图片描述
    当一个VI被载入内存时:
    此VI所有的子VI都会被载入内存;
    此VI所在的类中的所有VI都会被载入内存;
    此VI所在的类的父类中的所有VI都会被载入内存;
    以上三条可递归。

    所以,在设计使用LvClass时应注意:
    仅需要对一些VI封装的情况下,应使用lvlib(lvlib与lvclass相比,lvlib只封装方法,lvclass还可以封装对象的属性,即,模块用到的数据)
    类中的VI需要是高内聚的(类中方法共同完成某一基本功能,不可再分割)
    继承关系应尽量简单,如无必要,不用继承。LabVIEW不支持接口,不应创建仅当做接口使用的纯虚类。
    尽量不嵌套调用类(在某个类的VI中调用其他类的VI)
    某些类型选择是程序编译时做出的,不适合套用在多态特性上(多态是让程序根据输入对象的类型选择对应处理方法)

    例子适用性原因
    读写INI适用数据(文件内容),方法有限(打开、读、 写、保存关闭),一般程序都会同时用的这四个方法
    复杂仪器驱动程序不适用驱动程序功能过多,单一个应用程序能用到的有限
    生成报告适用生成不同类型的报告时,可重用的代码很多,可以设计一个基类
    可支持多种不同型号仪器的测试程序不适用测试程序发布给用户时,特定用户的硬件设备是固定的,对仪器的选择应是程序发布时决定好的,而不是等到程序每次运行起来后判断的

    lvclass保存后读取的类型转换

    **如果xml中的内容属于某个lvclass类型的数据,则将数据转换为对应lvclass的对象时,那个lvclass一定要已经被加载进内存,**否则将报错。
    给子类对象设置一些数据,然后把它当做父类的数据,平化成xml并保存
    在这里插入图片描述
    重启labview,做一个程序把xml数据转换为子类的数据。
    或者是,在证运行时子类类型已经被加载至内存的情况下,将xml数据直接转换为父类类型(当子类被载入内存时,它的父类也将被载入内存,但是父类被载入内存时,不会将自己的子类也载入)
    在这里插入图片描述

    在这里插入图片描述

  • 相关阅读:
    实验五 计数/定时器的设计【Verilog】
    建站百科:常见的FTP软件有哪些?
    使用libcurl实现Amazon网页抓取
    51单片机学习笔记1 简介及开发环境
    用10元,20元,50元三种币值的纸币凑出1000元,一共有多少种组合(C++实现)三种思路,两种实现
    输入url到呈现一个页面浏览器做了什么
    Nginx安全加固
    算法基础习题—内存分配(区间树实现)
    分解质因数——AcWing 197. 阶乘分解
    深入理解Java异常处理机制(day20)
  • 原文地址:https://blog.csdn.net/weixin_43781045/article/details/127581058