[发明专利]一种基于LabVIEW调用动态链接库中结构体函数的方法有效
申请号: | 201910970976.4 | 申请日: | 2019-10-14 |
公开(公告)号: | CN111078420B | 公开(公告)日: | 2023-06-27 |
发明(设计)人: | 黄伟杰 | 申请(专利权)人: | 惠州市德赛西威汽车电子股份有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 叶新平 |
地址: | 516006 广东省*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 labview 调用 动态 链接 结构 函数 方法 | ||
本发明涉及LabVIEW函数调用技术领域,具体公开了一种基于LabVIEW调用动态链接库中结构体函数的方法,在LabVIEW调用动态链接库中带有结构体或结构体指针的函数时,进一步判断对应的结构体变量中是否存在数组,若存在则将数组以外的数据类型根据函数原型定义,然后将符合分解条件的数组分解后转换为对应的簇以及将其他数组直接转换成簇;进一步把已定义的数据类型按顺序捆绑成一个簇变量,最后将簇变量的参数类型设置为“匹配至类型”,数据格式设置为“按值处理”,调用结束。
技术领域
本发明涉及LabVIEW函数调用技术领域,尤其涉及一种基于LabVIEW调用动态链接库中结构体函数的方法。
背景技术
LabVIEW(Laboratory Virtual instrument Engineering Workbench)是一种图形化的编程语言的开发环境,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。
为了便于结合外部代码,LabVIEW中集成对于动态链接库(.dll)函数调用的控件,可以便捷地使用外部代码所封装好的函数以更简单地与外部代码、外部设备进行交互,显著提高LabVIEW编程的可扩展性与易用性。
在使用C语言生成的动态链接库时,由于C语言中的函数会较频繁地使用到指针、结构体等概念,而对应的LabVIEW语言中并没有涉及到指针、结构体创建的功能,因此如何与C语言生成的参数带有指针或者结构体的函数的dll进行交互,是一个关键且没有在LabVIEW帮助文件中被详细阐述的技术。如果结构体参数中含有数组,直接使用LabVIEW环境中的数组变量直接作为结构体元素来输入,也会出现函数执行错误,不能得到正确结果。
发明内容
本发明提供一种基于LabVIEW调用动态链接库中结构体函数的方法,解决的技术问题是,LabVIEW语言无法与C语言生成的参数带有指针或者结构体的函数的动态链接库进行交互;在结构体参数中含有数组时,直接使用LabVIEW环境中的数组变量直接作为结构体元素来输入,也会出现函数执行错误。
为解决以上技术问题,本发明提供一种基于LabVIEW调用动态链接库中结构体函数的方法,包括步骤:
S1.判断到函数变量中含有结构体或结构体指针进入下一步;
S2.判断结构体变量中是否含有数组,若是则将所述结构体所包含的除数组外的数据类型根据函数原型逐一定义数据类型并进入下一步,若否则将所述结构体所包含的数据类型根据函数原型逐一定义数据类型;
S3.判断所述数组是否符合分解条件,若是则将所述数组进行分解后转换成对应的簇,若否则直接转换成簇。
进一步地,在所述步骤S3后,还包括步骤:
S4.将所述步骤S2中已定义的数据类型按顺序捆绑成一个簇变量。
进一步地,在所述步骤S4后还包括步骤:
S5.将所述簇变量的参数类型设置为“匹配至类型”,数据格式设置为“按值处理”,调用结束。
进一步地,在所述步骤S1前还包括步骤:
S01.LabVIEW调用动态链接库函数;
S02.判断函数变量中是否含有结构体或结构体指针。
进一步地,在所述步骤S1中,若判断到所述函数变量中不含有结构体或结构体指针时,则为函数中的每个变量分配参数类型,调用结束。
具体地,在所述步骤S3中,所述分解条件为:所述数组为多维数组或者长度大于256的一维数组。
具体地,当所述数组为多维数组时,在所述步骤S3中,所述将所述数组进行分解的具体过程为:将所述多维数组按维数分解为多个一维数组。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于惠州市德赛西威汽车电子股份有限公司,未经惠州市德赛西威汽车电子股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910970976.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:导管
- 下一篇:一种基于数据分析的智能机器人的纠错逻辑判断系统