第二讲初步认识CVI程序设计一个示例ppt课件.ppt

上传人:本田雅阁 文档编号:2569874 上传时间:2019-04-10 格式:PPT 页数:52 大小:483.01KB
返回 下载 相关 举报
第二讲初步认识CVI程序设计一个示例ppt课件.ppt_第1页
第1页 / 共52页
第二讲初步认识CVI程序设计一个示例ppt课件.ppt_第2页
第2页 / 共52页
第二讲初步认识CVI程序设计一个示例ppt课件.ppt_第3页
第3页 / 共52页
第二讲初步认识CVI程序设计一个示例ppt课件.ppt_第4页
第4页 / 共52页
第二讲初步认识CVI程序设计一个示例ppt课件.ppt_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《第二讲初步认识CVI程序设计一个示例ppt课件.ppt》由会员分享,可在线阅读,更多相关《第二讲初步认识CVI程序设计一个示例ppt课件.ppt(52页珍藏版)》请在三一文库上搜索。

1、初步认识CVI程序设计 从一个例子开始,我们的第一个示例将很简单,我们所要做的是创建一个如下的图形用户界面(User Interface)。,当我们按下Acquire按扭,计算机会自动产生一个正弦波形并画在图形显示区中;当按下Clear按扭后则清除正弦波形;当按下Quit按扭后退出该程序。,现在我们就开使创建该程序。首先按下面步骤起动CVI: 开始程序National Instrument CVICVI IDE 或者直接从桌面起动CVI 的快捷方式,双击桌面 National Instrument CVI 图标 当LabWindows/CVI打开后你就会见到如下所示的一个空的项目(Projec

2、t)窗口:,第一步:创建用户界面,创建控件元素:从Project窗中选择:FileNewUser Interface(*.uir)创建一个用户接口文件(*.uir),CVI会自动弹出如下所示的窗口:,在该窗中Untitled Panel 的灰色区域中单击鼠标右键,便会弹出一个快捷菜单如下所示:,该菜单中选择:Command ButtonSquare Command Button 点击左键后便会创建一个方形的按扭。 由于本程序总共需要三个按扭,所以按照上面的步骤再创建两个方形按扭。从该菜单中选择:GraphGraph ,创建一个用于图形显示的Graph。 现在我们已经建好了用户界面所需的控件元素

3、,请使用鼠标把它们拖到如下图所示的位置。,修改用户界面中各控件元素的属性: 修改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

4、 应如下图所示:,点击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

5、 Name是程序中用来标识该控件元素的常量,在后面的编程中会用到。 将Callback Function项改为AcquireCallback 说明:Callback Function(回调函数)是程序中用来响应界面中的Windows消息, 也就是说:当 该按扭被点击之后,程序会调用AcquireCallback函数来作为 对按扭被按下这一消息的响应。 将Label项改为 Acquire 说明:通过这种方法可以修改按扭名字,Acquire中A字母前有下画线,是指可 以通过 Alt + A即可达到按下该按扭的效果(即热键)。 修改后的Edit Command Button窗应如下图所示:,点击OK

6、按扭,完成对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改为Q

7、UIT b. 将Callback Function项改为QuitCallback c. 将Label项改为 Quit 修改后的Edit Command Button窗应如下图所示:,点击OK按扭,完成Command Button属性的修改。 当完成以上工作后,Panel应该如下图所示:,选择:FileSave 保存UIR文件,命名为FirstSample.uir。 到目前为止我们已经完成了用户界面(user interface)的设计,当程序运行时所显示的界面就是我们刚才上图看到的那样。 下面我们要做的就是真正的程序编制工作,其实CVI可以自动生成许多的代码以及缺省消息的处理函数,你只需添加一

8、些你自己所需的一些代码。,第二步:完成程序的编制,产生程序代码: 现在请你让图形用户界面窗口为当前响应状态,如下图所示:,从用户图形界面窗口中选择:CodeGenerateAll Code 然后会显示出如下的界面:,请用你的鼠标点击Select QuituserInterface Callback 中的QuitCallk项,确保其前面出现一个小钩。 说明:1。当你想让你的程序的主函数为Win Main而不是Main时你可以选择 Generate WinMian( ) instead of Main( )项前的矩形框。 2Select panels to load and display at

9、startup 项是指你选择那一个Panel作为最初装入并显示的Panel,当你创建多个Panel时你就需要选择一个Panel作为最初显 示的面板。由于本程序只有一个Panel所以该Panel就被缺省的作为最初显示的面板而不再需要你去选择。 3Select QuituserInterface Callback 项是指你选择那一个函数作为退出程序的终止函数。本程序是让QuitCallback作为退出函数的。 点击OK按扭,便会弹出如下图所示的源代码(Code)窗:,其窗中的程序代码如下所示: #include #include #include “FirstSample.h“ static in

10、t 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) 0) return -1; DisplayPanel (panelHandle); RunUserInterface (); DiscardPanel (panelHandle); return 0; int CVICALLBACK AcquireCallba

11、ck (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) switch (event) case EVENT_COMMIT: break; return 0; ,int CVICALLBACK ClearCallback (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) switch (event) case EVENT_COMMIT: break

12、; return 0; int CVICALLBACK QuitCallback (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) switch (event) case EVENT_COMMIT: QuitUserInterface (0); break; return 0; ,该程序代码共有4个函数: main( )函数,是程序的入口,它的功能是初始化程序,装载用户界面面板,并显示。 AcquireCallback( )函数,当Acquire按扭被点击之后,该函数就

13、是响应该消息的函数。 ClearCallback( )函数,当Clear按扭被点击之后,该函数就是响应该消息的函数。 QuitCallback( )函数,当Quit按扭被点击之后,该函数就是响应该消息的函数。 main( )与QuitCallback( )函数中的代码是计算机自动生成的,而计算机只生成AcquireCallback( )与ClearCallback( )函数的框架,其内部的用来响应并处理消息的代码是需要你自己添加上去的。,添加程序代码: 1添加AcquireCallback( )函数的程序代码: AcquireCallback( )函数完成以下功能:从高级分析库(Advance

14、d Ananysis)中产生一个正弦波,放在Wave数组中。 现在请将鼠标放在AcquireCallback( )函数Event_Commit: 下面的空白行上,如下图所示: 说明:你鼠标所放位置,就是函数插入的位置。LabWindows/CVI程序中所需的库函数都 是你使用函数面板,填写参数然后插入到函数所需要的位置。,请选择: LibraryAdvanced Analysis 在弹出的对话框中选择: Signal GenerationSine Pattern 便会弹出如下图所示的一个函数面板:,请在Number of Elements项中填上512;把Number of Cycles 项改

15、为3;Sine Pattern 项中填上用来装正弦信号的数组Wave,由于Wave是一个数组变量,故我门需要声明该变量: 选择CodeDeclare Variable会弹出一个如下图所示的对话框:,请在Number of Elements 项中填上512,并选择了最下面的矩形框, 然后点击OK按扭完成。 返回到函数面板后,选择CodeInsert Function Call完成函数的插入,这时Code 窗中的AcquireCallback( )函数应如下所示: int CVICALLBACK AcquireCallback (int panel, int control, int event,

16、 void *callbackData, int eventData1, int eventData2) double Wave512; switch (event) case EVENT_COMMIT: SinePattern (512, 1.0, 0.0, 3.0, Wave); | break; return 0; ,我们已经的得到了正弦信号,现在需要将该信号画到Graph上去: 1)请将鼠标放在SinePattern( )函数下面的空白行上,如上面所示那样。 . 请选择: LibraryUser Interface 在弹出的对话框中选择: Controls/Graph/Strip Ch

17、artGraph and Strip ChartGraph Plotting and DeletingPlot Waveform 把函数面板中的对应各项填写成如下所示: PanelHandle: panelHandele Control ID : PANEL_GRAPH Y Array: Wave Number of Points: 512,选择CodeInsert Function Call完成函数的插入,这时Code 窗中的AcquireCallback( )函数应如下所示: CVICALLBACK AcquireCallback (int panel, int control, int

18、event, void *callbackData, int eventData1, int eventData2) double Wave512; switch (event) case EVENT_COMMIT: SinePattern (512, 1.0, 0.0, 3.0, Wave); PlotWaveform (panelHandle, PANEL_GRAPH, Wave, 512, VAL_DOUBLE, 1.0, 0.0, 0.0, 1.0, VAL_THIN_LINE, VAL_EMPTY_SQUARE, VAL_SOLID, 1, VAL_RED); break; retu

19、rn 0;,到现在为止我们已经完成了AcquireCallback( )函数的的程序代码。 添加ClearCallback( )函数的程序代码: ClearCallback( )函数完成以下功能:当Clear按扭按下后,计算机会清除Graph上所画的正弦图形。 现在请将鼠标放在ClearCallback( )函数Event_Commit: 下面的空白行上,如下图所示:,请选择: LibraryUser Interface 在弹出的对话框中选择: Control/Graph/Strip ChartGraph and Strip ChartGraph Plotting and DeletingDe

20、lete Graph Plot 把函数面板中的对应各项填写成如下所示: PanelHandle: panelHandele Control ID : PANEL_GRAPH PlotHandle: -1,选择CodeInsert Function Call完成函数的插入,这时Code 窗中的ClearCallback( )函数应如下所示: int CVICALLBACK ClearCallback (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) switch (eve

21、nt) case EVENT_COMMIT: DeleteGraphPlot (panelHandle, PANEL_GRAPH, -1, VAL_IMMEDIATE_DRAW); break; return 0; 到目前为止我们已经完成了程序的编制任务。这一个看起来不算简单的程序,我们编起来并没有写多少源代码,这正是体现了LabWindows/CVI的强大功能所在。,第四步 运行程序完成项目文件,现在请你让源代码(Code)窗为当前响应状态,选择: RunDebug FirstSample_dbg.exe 便会弹出一个对话框,询问你是否在编译前为该文件命名并添加到工程文件中去。点击yes按扭

22、,把该文件命名为FirstSample.c。然后计算机询问你是否把 “analysis.h”包含到FirstSample.c中去(因为,我们的程序中用到了高级分析库),点击yes按扭,同意该选项。,运行后的程序正如我们预期要求的那样。退出程序后,从源代码(Code)窗中选择: WindowProject 现在项目 (Project)窗为当前响应状态,请选择: EditAdd Files to ProjectAll Files(*.*) 便会弹出如下图所示的对话框:,请你按住键,点击FirstSample.h ,FirstSample.c , FirstSample.uir。然后点击Add按扭把这些文件方到Selected Files框中。 点击OK按扭,把以上文件添加到工程文件中去。,至此为止我们已经完成了第一个程序的编制工作,想必大家对 LabWindows/CVI编程已经有了一个初步的了解,头脑里已建起程序编制的基本框架。,通过本部分的学习,你是否已经掌握? LabWindows/CVI 程序编制的基本步骤。 简单的用户图形界面(*.uir)的创建。 能使用函数面板完成函数的插入,构建源代码程序。 项目工程文件的基本构成。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1