LabWindowsCVI基础教程.docx
- 文档编号:2174097
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:15
- 大小:30.50KB
LabWindowsCVI基础教程.docx
《LabWindowsCVI基础教程.docx》由会员分享,可在线阅读,更多相关《LabWindowsCVI基础教程.docx(15页珍藏版)》请在冰豆网上搜索。
LabWindowsCVI基础教程
序 言
LabWindows/CVI是National Instruments公司推出的一套面向测控领域的软件开发平台.它以ANSI C为核心,将功能强大,使用灵活的C语言平台与数据采集,分析和表达的测控专业工具有机地接和起来.它的集成化开发平台,交互式编程方法,丰富的控件和库函数大大增强了C语言的功能,为熟悉C语言的开发人员建立检测系统,自动测量环境,数据采集系统,过程监控系统等提供了一个理想的软件开发环境.
本教程面向的是那些从未使用过LabWindows/CVI的读者,但是假设读者以有了C语言的基础并且熟悉Windows 2000/9x/NT操作系统.在每一章节的学习中,作者都是通过一个具体的实例让读者迅速的掌握本章的知识点;而不是长篇大论,述及边枝细叶,反而使读者望而却步,只见树木,不见森林.
想信通过对本教程的学习,读者可迅速掌握LabWindows/CVI编程思想及步骤,为读者日后进一步学习打下基础.
本书约定:
"File>>Page Setup>>Options"
File 这一种黑色斜体字是指多级菜单名,按扭名,窗口名或者是关键性词汇.
">>"
是指打开一个多级菜单或对话框.如:
File>>Page Setup>>Options是指你首先打开File 菜单,然后选择Page Setup项,最后从弹出的对话框中选择Options项.
"说明:
通过这种方式你可以修改Panel 顶端所显示的名字."
该种字体所写的文字是值得读者注意并记忆的内容.
" "
该椭圆形框所框住的内容是读者需修改的地方.
第一部分 CVI快速入门
本部分通过编制一个简单的LabWindows/CVI程序,使读者对CVI编程环境,思想及步骤有一初步的认识.
第一章 初步认识CVI程序设计
—— 从一个例子开始
我们的第一个示例将很简单,我们所要做的是创建一个如下的图形用户界面(User Interface).
当我们按下Acquire按扭,计算机会自动产生一个正弦波形并画在图形显示区中;当按下Clear按扭后则清除正弦波形;当按下Quit按扭后退出该程序.
现在我们就开使创建该程序.首先按下面步骤起动CVI:
开始>>程序>>National Instrument CVI>>CVI IDE
或者直接从桌面起动CVI 的快捷方式,双击桌面
National Instrument CVI 图标
当LabWindows/CVI打开后你就会见到如下所示的一个空的项目(Project)窗:
第一步:
创建用户界面
创建控件元素:
从Project窗中选择:
File>>New>>User Interface(*.uir)…创建一个用户接口文件(*.uir),CVI会自动弹出如下所示的窗口:
在该窗中Untitled Panel 的灰色区域中单击鼠标右键,变会弹出一个快捷菜单如下所示:
从该菜单中选择:
Command Button>>Square Command Button
点击左键后便会创建一个方形的按扭.
由于本程序总共需要三个按扭,所以按照上面的步骤再创建两个方形按扭.从该菜单中选择:
Graph>>Graph ,创建一个用于图形显示的Graph.
现在我们已经建好了用户界面所需的控件元素,请使用鼠标把它们拖到如下图所示的位置.
修改用户界面中各控件元素的属性:
修改Panel的属性:
在Untitled Panel中双击一下,便会弹出Panel的一个Edit Panel窗,如下图所示:
将Panel Title项中的Untitled Panel 改为 Demo Panel.
说明:
通过这种方式你可以修改Panel 顶端所显示的名字.
将Auto-Center Vertically(when loaded)项
与Auto-Center Horizontally(when loaded)项前的矩形框选中.
说明:
当选中后,程序运行时,面板会自动居中.
修改后的Edit Panel 应如下图所示:
点击OK按扭,完成对Panel属性的修改.
修改Graph的属性:
在Untitled Control的蓝色区域中双击一下,便会弹出Graph的一个Edit Graph窗,如下图所示:
将Label项中的Untitled Control改为ShowWave.
说明:
通过这种方法可以修改Graph的标签名.
点击OK按扭,完成对Graph属性的修改.
3.修改Command按扭的属性:
(1)Acquire 按扭:
双击左上方的OK按扭,便会弹出Command的一个Edit Command窗,如下图所示:
将Constant Name项改为ACQUIRE
说明:
Constant Name是程序中用来标识该控件元素的常量,在后面的编程中会用到.
将Callback Function项改为AcquireCallback
说明:
Callback Function(回调函数)是程序中用来响应界面中的Windows消息,
也就是说:
当 该按扭被点击之后,程序会调用AcquireCallback函数来作为
对按扭被按下这一消息的响应.
将Label项改为 Acquire
说明:
通过这种方法可以修改按扭名字,Acquire中A字母前有下画线,是指可
以通过 Alt + A即可达到按下该按扭的效果(即热键).
修改后的Edit Command Button窗应如下图所示:
点击OK按扭,完成对Command Button属性的修改.
(2)Clear 按扭:
与以上步骤相同,双击左下方的OK按扭,弹出Command的一个Edit Command窗.
将其Constant Name改为CLEAR
将Callback Function项改为ClearCallback
将Label项改为 Clear
修改后的Edit Command Button窗应如下图所示:
点击OK按扭,完成Command Button属性的修改.
(3)Quit 按扭:
与以上步骤相同,双击右方的OK按扭,弹出Command的一个Edit Command窗.
a. 将其Constant Name改为QUIT
b. 将Callback Function项改为QuitCallback
c. 将Label项改为 Quit
修改后的Edit Command Button窗应如下图所示:
点击OK按扭,完成Command Button属性的修改.
当完成以上工作后,Panel应该如下图所示:
选择:
File>>Save 保存UIR文件,命名为FirstSample.uir.
到目前为止我们已经完成了用户界面(user interface)的设计,当程序运行时所显示的界面就是我们刚才上图看到的那样.
下面我们要做的就是真正的程序编制工作,其实CVI可以自动生成许多的代码以及缺省消息的处理函数,你只需添加一些你自己所需的一些代码.
第二步:
完成程序的编制
产生程序代码:
现在请你让图形用户界面窗口为当前响应状态,如下图所示:
从用户图形界面窗口中选择:
Code>>Generate>>All Code…
然后会显示出如下的界面:
请用你的鼠标点击Select QuituserInterface Callback 中的QuitCallk项,确保其前面出现一个小钩.
说明:
1.当你想让你的程序的主函数为Win Main而不是Main时你可以选择
Generate WinMian( ) instead of Main( )项前的矩形框.
2.Select panels to load and display at startup 项是指你选择那一个Panel作为最初
装入并显示的Panel,当你创建多个Panel时你就需要选择一个Panel作为最初显
示的面板.由于本程序只有一个Panel所以该Panel就被缺省的作为最初显示
的面板而不再需要你去选择.
3.Select QuituserInterface Callback 项是指你选择那一个函数作为退出程序的终
止函数.本程序是让QuitCallback作为退出函数的.
点击OK按扭,便会弹出如下图所示的源代码(Code)窗:
其窗中的程序代码如下所示:
#include
#include
#include "FirstSample.h"
static int panelHandle;
int main (int argc, char *argv[ ] )
{
if (InitCVIRTE (0, argv, 0) == 0)
return -1; /* out of memory */
if ((panelHandle = LoadPanel (0, "FirstSample.uir", PANEL)) >Advanced Analysis…
在弹出的对话框中选择:
Signal Generation>>Sine Pattern
便会弹出如下图所示的一个函数面板:
请在Number of Elements项中填上512;把Number of Cycles 项改为3;Sine Pattern 项中填上用来装正弦信号的数组Wave,由于Wave是一个数组变量,故我门需要声明该变量:
选择Code>>Declare Variable会弹出一个如下图所示的对话框:
请在Number of Elements 项中填上512,并选择了最下面的矩形框,
然后点击OK按扭完成.
返回到函数面板后,选择Code>>Insert Function Call完成函数的插入,这时Code 窗中的AcquireCallback( )函数应如下所示:
int CVICALLBACK AcquireCallback (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
double Wave[512];
switch (event)
{
case EVENT_COMMIT:
SinePattern (512, 1.0, 0.0, 3.0, Wave);
|
break;
}
return 0;
}
我们已经的得到了正弦信号,现在需要将该信号画到Graph上去:
1).请将鼠标放在SinePattern( )函数下面的空白行上,如上面所示那样.
. 请选择:
Library>>User Interface
在弹出的对话框中选择:
Controls/Graph/Strip Chart>>Graph and Strip Chart>>Graph Plotting and Deleting>>Plot Waveform
把函数面板中的对应各项填写成如下所示:
PanelHandle:
panelHandele
Control ID :
PANEL_GRAPH
Y Array:
Wave
Number of Points:
512
选择Code>>Insert Function Call完成函数的插入,这时Code 窗中的AcquireCallback( )函数应如下所示:
CVICALLBACK AcquireCallback (int panel, int
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LabWindowsCVI 基础教程
![提示](https://static.bdocx.com/images/bang_tan.gif)