初步认识cvi程序设计一个示例

上传人:tia****nde 文档编号:67436580 上传时间:2019-01-07 格式:PPT 页数:52 大小:483.01KB
返回 下载 相关 举报
初步认识cvi程序设计一个示例_第1页
第1页 / 共52页
初步认识cvi程序设计一个示例_第2页
第2页 / 共52页
初步认识cvi程序设计一个示例_第3页
第3页 / 共52页
初步认识cvi程序设计一个示例_第4页
第4页 / 共52页
初步认识cvi程序设计一个示例_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《初步认识cvi程序设计一个示例》由会员分享,可在线阅读,更多相关《初步认识cvi程序设计一个示例(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 ChartGraph and Strip ChartGraph Plotting and DeletingPlot Waveform 把函数面板中的对应各项填写成如下所示: PanelHandle: panelHandele Contr

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号