CVI驱动程序编写入门
仪器驱动程序有一个VPP规范(VXI即插即用),这个VPP规范中介绍仪器驱动的架构,使用的接口及前面板规范,函数原形规范等等。看过这个规范的朋友可能知道,VPP就是对CVI开发仪器驱动的规范。
在开始编写驱动之前,请先安装NI-Visalabwindows8.0
下面介绍如何用CVI编写仪器驱动
生成仪器驱动程序工程文件(.prj
设计函数树和函数面板(.fp, .c, .h
完成驱动程序每个函数的代码(.c
编译调试,生成动态链接库
1 新建工程文件
双击labWindows/CVI程序文件,打开CVI。在“File”下拉菜单中选择“New”,再选择 Project”创建工程,弹出如图1-1对话框
1-1 创建工程
在对话框中有两个单选项,前一个指在当前工作区创建工程,后一个指新建一个工作区创建工程。通常选则后一个,这样在一个工作区对应一个工程,简单明了。其他保持默认。单击
确定,创建工程完成。
2 设计函数树和函数面板
这是最关键的一步,创建.fp.c.h等文件是仪器驱动中必不可少的文件,其中.fp是仪器驱动的核心。先介绍.fp创建过程。
在“File”下拉菜单中选择“New”,再选“Function Tree”,如图1-2
1-2 创建fp文件
在右边白区域,单击右键并点击create Instrument,弹出如下对话框,如图1-3
1-3 仪器节点
Name”指当前函数树的名字,prefix指函数名的前趋,在后面创建的.h文件中每一个函数名以zyosc开头,后面再跟实际函数名。填写完后单击ok,如图1-4
1-4 函数树创建
蓝阴影部分的有这样的提示“create class or function panel window”,意思是在此可以创建类和函数前面板。这里的类指用户如何划分函数,根据用户的需要将某些函数规为一类。通常情况我们将错误消息、错误查询、复位,自检和版本查询等函数规为通用函数,具体操作硬件的部分的函数规为功能函数。
单击阴影部分,再单击鼠标右键,选择创建类,并在对话框中填入“Utility Functions”,单击确定,如图1-5
1-5 创建类
程序中创建了一个“通用函数”类。下面在这个类中添加错误消息、错误查询、复位,自检和版本查询等函数面板。
同样鼠标右击“create class or function panel window,选择“创建函数面板”,弹出如图1-6对话框
1-6 创建函数面板
该对话框中的“name”项指的是该函数面板的名字,而function name 指的该函数的函数名。单击ok创建成功。
1-7
函数面板已经创建好了,但还得编辑函数面板。单击Reset函数面板,右击选中“edit function panel window”,出现如图1-8
1-8
函数面板最上面的是加了前缀的函数名,指示当前正在编辑的函数面板。在面板上右键可以添加输入参数、输出参数、返回值等。参数不能随便放,VPP规定函数面板的输入参数放左边,输出参数与返回值放右边。下面是编辑好的Reset面板如图1-9
1-9
其他函数的前面板编辑方法与Reset面板相同。
如在创建控件时,需要引入VI数据类型,执行以下两步操作,如图1-9-11-9-2
1-9-1
1-9-2
下面我们介绍如何创建.c.h文件。
其实有了上述函数面板的创建过程,源文件与头文件的创建就非常简单了。回到图1-7,这时必须保证reset面板已经编辑完毕了,并保存完毕。单击“源程序是指什么程序Reset”,右键选择“generate source for function node”,将自动创建出源文件和头文件。保存后加入到工程中来即可
生成出来头文件和源文件都需要修改,源文件只有函数壳,没有函数体,需要自己手动添加,后面再介绍。先来介绍头文件应该做什么样修改。
在头文件需要加入C编译头,如图1-10
1-10 c编译头
加入C编译头的目的,如果在C++程序中使用,将自动以C语言方式编译和连接,其意义是强制编译器不要修改你的函数名。只有用这种方式,才能在C++程序中正常使用。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。