1.1 LabWindows/CVI
1.1.1 LabWindows/CVI概述
LabWindows/CVI是美国NI(National Instruments)公司开发的面向计算机测控领域的虚拟仪器软件开发平台,可以在多种操作系统(WindowsXP/Vista/7、Mac OS和Unix)下运行。
LabWindows/CVI 是为C 语言程序员提供的集成开发环境(IDE),在此开发环境中可以利用C语言及其提供的库函数来实现程序的设计、编辑、编译、链接、调试。使用LabWindows/CVI 可以完成以下但不限于以下工作:
·交互式的程序开发;
·具有功能强大的函数库,用来创建数据采集和仪器控制的应用程序;
·充分利用完备的软件工具进行数据采集、分析和显示;
·利用向导开发IVI 仪器驱动程序和创建ActiveX 服务器;
·为其它程序开发C 目标模块、动态连接库(DLL)、C 语言库。
图 11 LabWindows/CVI界面
LabWindows/CVI 的功能强大在于它提供了丰富的函数库。利用这些库函数除可实现常规的程序设计外,还可实现更加复杂的数据采集和仪器控制系统的开发。
数据采集。IVI库、GPIB/GPIB 488.2库、NI-DAQmx库、传统的NI-DAQ库、RS-232库、VISA库、VXI库以及NI-CAN库。
数据分析。格式化IO库、分析库以及可选的高级分析库。
GUI库。使用LabWindows/CVI 的用户界面编辑器可以创建并编辑图形用户界面(GUI),而使用LabWindows/CVI 的用户界面库函数可以在程序中创建并控制GUI。此外,LabWindows/CVI为GUI 面板的设计,准备了许多专业控件,如:曲线图控件、带状图控件、表头、旋钮和指示灯等,以适应测控系统软件开发的需求,利用这些控件可以设计出专业的测控程序界面。
网络和进程间通信库。动态数据交换(DDE)库、TCP库、ActiveX库、Internet库、DIAdem连接库、DataSocket库等。
除此之外,用户可以在CVI中使用ANSI C库中的全部标准函数。
正式因为有了强大的库支持,所以在CVI中,完成绘制图 12所示正弦函数波形的功能,只需要在main()函数中写三行代码:
图 12 CVI程序运行结果
一旦提及NI公司,大家可能最先联想到的是NI公司推出的LabVIEW软件。LabWindows/CVI与LabVIEW相比,主要应用在各种测试、控制、故障分析及信息处理软件的开发中,其更适合中、大型复杂测试软件的开发,是工程技术人员开发建立监测系统、自动测量环境、数据采集系统、过程监测系统的首选工具。
1.1.2 LabWindows/CVI安装
要安装CVI,只需要根据CVI安装包里的“Release Notes.pdf”和“说明.txt”一步步完成安装即可。
安装完CVI后,我们有必要看一下,安装程序在我们计算机的磁盘中丢下了哪些东西。
表 11 LabWindows/CVI主要目录及其内容
目录名 | 说明 |
\bin | LabWindows/CVI的库文件 |
\extlib | 外部编译器使用的CVI库文件(只在Windows95/NT中使用) |
\fonts | windows开发平台字体文件 |
\include | 头文件 |
\instr | 仪器模块 |
\samples | CVI开发例程 |
\sdk | SDK库文件(只在Windows95/NT中使用) |
\toolslib | 开发工具包和库文件 |
\tutorial | 使用手册 |
\vxd | VXD实例开发模板 |
\wizard | CVI开发环境中的向导程序 |
其中,samples文件夹中的例程可以使初学者迅速掌握CVI编程开发基本步骤。bin文件夹下的cvi.chm(也可以通过CVI开发环境中按F1打开)是学习CVI之路必不可少的参考文档。
1.2 寻根问底:开发环境
对于一门学问的初学者来说,最希望搞懂的就是学的东西的本质是什么。在前一小节中我们提到了,LabWindows/CVI是NI推出的一个基于C语言的集成开发环境(IDE,Integrated Development Environment)。那么什么是开发环境呢,开发环境是怎么工作的呢?
集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套(组)都可以叫集成开发环境。如微软的Visual Studio系列,Borland的C++ Builder系列等。
但我们自从学习C语言开始就与集成开发环境建立了不解之缘。似乎在我们心中,C语言就是VC/VS、VC/VS就是C语言、VC/VS就是编译器、编译器就是VC/VS。虽然不可否认的是,IDE的出现大大的降低了软件开发的门槛,曾经帮助我们快速入门,但IDE过于友好的界面让人无需思考程序编译、运行的原理即可开始写自己的第一个HelloWorld程序。
所以,我们有必要了解IDE的工作模式,有必要了解IDE是怎么通过命令行去工作的。命令行,看似简陋,却能让人专心于自己的事物,并搞清楚一个程序的来龙去脉。
Keil下的命令行工作方式已经在创新中心的《SST单片机实践教程》的“汇编语言工具链”一节中有了详细的介绍,下面通过一个实例介绍最常用的VC6.0的命令行工作方式。
在此之前,我们假设你至少已经用VC写过C语言,编译过工程,并对Windows下的命令行至少略知一二。当然,如果你现在还不懂,赶紧利用Google等一切现代化的工具解除自己的疑惑。
例1 使用命令行完成用VC对下面简单的C语言程序的编译。
实验步骤
(1)将这段代码保存为.c文件(此处保存为main.c),并讲这段代码放在VC安装路径下的“VC98\Bin\”文件夹下。
启动命令行窗口,并将地址修改为当前地址
(2)敲入cl.exe main.c命令执行编译。
此时可能会弹出窗口,提示缺少文件“mspdb60.dll”,编译失败。毕竟当前的命令行窗口没有标准VC的环境变量,所以编译程序cl.exe无法从当前的环境变量中到mspdb60.dll。
此时可能会弹出窗口,提示缺少文件“mspdb60.dll”,编译失败。毕竟当前的命令行窗口没有标准VC的环境变量,所以编译程序cl.exe无法从当前的环境变量中到mspdb60.dll。
(3)在VC安装路径的“Common\MSDev98\Bin”目录中到此DLL并复制到“VC98\Bin”文件夹下之后,按键盘方向键↑重新运行cl.exe main.c。此时会提示不到stdio.件。在VC安装路径的“VC98\Include”目录中到stdio.h之后,复制到“VC98\Bin”文件夹下。
图 13 命令行编译main.c-提示不到stdio.h
(4)同理,程序会依次提示不到文件LIBC.lib、OLDNAMES.lib、kernel32.lib。这些库文件都可以在VC安装目录下的“VC98\Lib”路径中到。
(5)再次运行,命令行提示编译成功。
图 14 命令行编译main.c-编译成功
(6)在命令行中敲入。“Hello,world!”是否显示出来了呢?
图 15 运行
至此,聪明的你应该已经知道VC的IDE是如何依赖于安装包内的编译器CL.exe程序实现编译的功能了吧。
本小节旨在通过对大家熟悉的VC的IDE改用命令行进行编译的方式引导大家接触一个新
的事物首先应该搞清楚其本质的思想,养成搞学问时喜欢刨根问底的好习惯。除了编译器的功能外,集成开发环境IDE应该还带有调试器的功能。限于篇幅,此处不再多过多探索,大家可以自行研究。若对IDE感兴趣,大家还可以调用现有的编译器程序、调试器程序编写自己的IDE!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论