labwindowscvi2第三章 图形用户界面设计
- 格式:ppt
- 大小:872.00 KB
- 文档页数:38
用MATLAB制作图形用户界面MATLAB是一种流行的科学计算软件,它不仅在数值计算和数据分析领域有着广泛的应用,还提供了一种高效的界面设计工具,使得用户可以自定义和制作自己的图形用户界面(GUI)。
通过创建自定义的GUI,用户可以简化复杂操作,提高工作效率,下面就让我们来学习如何用MATLAB制作图形用户界面。
MATLAB的图形用户界面主要由以下几部分组成:窗口:窗口是GUI的基本元素,它提供了一个空间,用户可以在其中添加和组织各种控件(如按钮、文本框等)。
控件:控件是GUI中的基本元素,它们可以接收用户的输入,并在窗口中显示出来。
例如,按钮、文本框、滑动条等都是常见的控件。
菜单:菜单是GUI中的一种导航工具,它们可以链接到其他窗口或者函数,方便用户进行操作。
工具栏:工具栏是GUI中的一种快速执行工具,它们提供了一键执行常见操作的快捷方式。
下面就让我们通过一个简单的例子来学习如何用MATLAB制作一个简单的图形用户界面:打开MATLAB,在命令窗口输入“guide”,并按Enter键。
这将打开GUI设计工具。
在打开的GUI设计工具中,选择“Blank GUI”并点击“OK”,进入GUI编辑器。
在GUI编辑器中,你可以看到一个空白的窗口和一些控件。
你可以通过拖拽的方式将这些控件添加到窗口中。
选中你添加的控件,在右侧的“Properties”面板中,你可以修改控件的属性,如颜色、字体、大小等。
在设计完成后,点击“Save”按钮,保存你的GUI。
此时,MATLAB会生成一个.fig文件和一个.m文件。
其中.fig文件是GUI的图形文件,而.m文件包含了GUI的代码。
在生成的.m文件中,你可以编写控件的事件处理函数。
例如,当用户点击按钮时,应该执行什么样的操作。
在编写完事件处理函数后,你就可以运行你的GUI了。
在命令窗口输入“edit(gcf)”,然后按Enter键,就可以打开你的GUI并进行测试了。
l a b w i n d o w s-C V I-教程本页仅作为文档封面,使用时可以删除This document is for reference only-rar21year.MarchLabWindows/CVI基础教程序言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编程环境,思想及步骤有一初步的认识。
创建高效Matlab图形用户界面的技巧作为一种用于科学计算和数据分析的强大工具,Matlab广泛应用于各个领域。
而图形用户界面(GUI)则能够提供直观、友好的操作界面,方便用户与程序进行交互。
本文将介绍一些创建高效Matlab图形用户界面的技巧,帮助读者更好地利用Matlab的GUI功能。
一、设计用户界面的基本原则在开始创建Matlab的GUI之前,我们首先需要了解一些基本的设计原则,以确保所开发的界面具有良好的可用性和易操作性。
以下是一些基本的设计原则:1. 界面布局要合理:确保界面元素的布局合理,使得各个功能模块和按钮有一定的组织结构,便于用户的使用和理解。
2. 明确界面功能:界面上的各个按钮和功能模块必须具备明确的功能,以便用户能够准确地进行操作。
3. 减少用户的操作负担:尽量降低用户的操作负担,例如通过下拉列表、单选按钮等方式减少输入操作,提供默认值等方式简化用户的操作。
4. 友好的提示和错误处理:在界面中添加适当的提示信息和错误处理机制,以便用户能够及时了解当前的操作情况,并通过错误提示解决问题。
二、选择适合的GUI工具包Matlab提供了多种GUI工具包供开发者使用,如GUIDE、App Designer等。
不同的GUI工具包适用于不同的应用场景和需求。
1. GUIDE:GUIDE是Matlab早期的GUI开发工具包,通过可视化界面来创建GUI,并生成相应的M文件。
它适用于简单的界面设计和快速原型开发。
2. App Designer:App Designer是Matlab的新一代GUI工具包,采用了面向对象的设计思想,可在界面设计和功能实现之间进行更灵活的切换。
它适用于复杂的界面设计和需要较高可扩展性的应用。
选择适合的GUI工具包有助于提高开发效率和界面质量,开发者可根据具体需求选择合适的工具包。
三、合理使用界面控件GUI的主要构成部分就是各种界面控件,如按钮、文本框、列表框等。
合理使用这些控件可以提升用户界面的友好性和易用性。
LabWindows/CVI基础指导教程1. 简介LabWindows/CVI是一种基于C语言的集成开发环境(IDE),广泛应用于数据采集、实验控制和测试自动化等领域。
本教程旨在为初学者提供关于LabWindows/CVI的基础指导,包括环境安装、项目创建、界面设计和编程等方面的内容。
2. 环境安装在开始使用LabWindows/CVI之前,我们首先需要安装LabWindows/CVI的运行环境。
按照以下步骤进行安装:1.下载LabWindows/CVI安装程序,并运行安装程序。
2.在安装程序中选择安装路径,并点击“下一步”进行安装。
3.根据提示完成安装过程。
安装完成后,我们就可以开始创建LabWindows/CVI项目了。
3. 项目创建LabWindows/CVI使用项目(Project)的方式来组织和管理代码。
下面是创建新项目的步骤:1.打开LabWindows/CVI IDE。
2.点击“文件”菜单,并选择“新建项目”。
3.在弹出的对话框中选择项目类型和保存路径,然后点击“确定”。
4.在新建项目的基础上,可以添加文件、配置编译选项等。
4. 界面设计LabWindows/CVI提供了UI工具箱,可以通过拖拽控件来设计界面。
下面是界面设计的基本步骤:1.打开项目。
2.点击“窗体”菜单,并选择“添加窗体”。
3.在窗体设计器中,可以拖拽控件到窗体中,并调整位置和大小。
4.可以通过属性编辑器来设置控件的属性和事件。
界面设计完成后,我们可以进行程序的编程。
5. 编程LabWindows/CVI使用C语言进行编程。
下面是编程的基本步骤:1.打开窗体设计器,选择需要编写代码的控件。
2.双击控件,进入控件的事件处理函数。
3.在事件处理函数中编写代码,实现相应的功能。
4.可以使用LabWindows/CVI提供的函数库来完成各种操作,如数据采集、图形绘制等。
除了事件处理函数,我们还可以创建其他类型的函数来实现更复杂的功能。
LabWindows/CVI实验说明LabWindows/CVI是National Instruments公司推出的一套面向测控领域的软件开发平台。
它以ANSI C为核心,将功能强大,使用灵活的C语言平台与数据采集,分析和表达的测控专业工具有机地结合起来。
它的集成化开发平台,交互式编程方法,丰富的控件和库函数大大增强了C语言的功能,为熟悉C语言的开发人员建立检测系统,自动测量环境,数据采集系统,过程监控系统等提供了一个理想的软件开发环境。
实验中用到的函数及其函数原型LabWindos/CVI 编程的步骤基本如下:第一步:第二步:第三步:第四步:LabWindows/CVI 编程环境用户接口编辑窗(User Interface Edit window)图形用户接口编辑窗是用来创建,编辑GUI(Graph User Interface)的。
一个用户接口至少要有一个面板(Panel)以及在面板上的各种控件元素(Control Element)。
图形用户接口编辑窗为你提供了非常快捷的创建、编辑这些面板和控件元素的方法,可以让你在短时间里创建出符合你要求的图形界面。
一个图形用户接口编辑窗就如下页图所示,下面详细介绍:图形用户接口编辑窗中还有四个模式选择按扭::当该按扭被按下后,你可以操作面板上的控件,同时在图形用户接口编辑窗的右上角上来观察面板上的事件消息。
:在这种模式下你可以创建、编辑面板和控件元素以及修改它们的属性。
:在这种模式下你可以直接修改控件元素的名字、标签等文字相关方面的东西。
:在这种模式下你可以直接修改面板,控件元素的颜色。
先把鼠标放在你所想修改颜色的对象上,点击右键便会弹出一个选色对话框,选择你所想要的颜色后点击后即可。
在图形用户接口编辑窗中Panel 的灰色区域中单击鼠标右键,便会弹出一个快捷菜单如上所示:源代码编辑窗(Sourse window)你可以在源代码编辑窗中开发你的C 语言代码文件。
LabWindowsCVI教程第⼀章 : LabWindows/CVI1.1 LabWindows/CVI1.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 语⾔库。
图 1‐1 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 ⾯板的设计,准备了许多专业控件,如:曲线图控件、带状图控件、表头、旋钮和指⽰灯等,以适应测控系统软件开发的需求,利⽤这些控件可以设计出专业的测控程序界⾯。
LabWindows/CVI基础教程1LabWindows/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的一个EditCommand窗.将其Constant Name改为CLEAR将Callback Function项改为ClearCallback将Label项改为Clear修改后的Edit Command Button窗应如下图所示:点击OK按扭,完成Command Button属性的修改.(3)Quit 按扭:与以上步骤相同,双击右方的OK按扭,弹出Command的一个EditCommand窗.a. 将其Constant Name改为QUITb. 将Callback Function项改为QuitCallbackc. 将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>>GraphPlotting and Deleting>>Plot Waveform把函数面板中的对应各项填写成如下所示:PanelHandle: panelHandeleControl ID : PANEL_GRAPHY Array: WaveNumber of Points: 512选择Code>>Insert Function Call完成函数的插入,这时Code 窗中的AcquireCallback( )函数应如下所示: 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);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;}return 0;到现在为止我们已经完成了AcquireCallback( )函数的的程序代码.添加ClearCallback( )函数的程序代码: ClearCallback( )函数完成以下功能:当Clear按扭按下后,计算机会清除Graph上所画的正弦图形.现在请将鼠标放在ClearCallback( )函数Event_Commit:下面的空白行上,如下图所示:请选择:Library>>User Interface在弹出的对话框中选择:Control/Graph/Strip Chart>>Graph and Strip Chart>>Graph Plotting and Deleting>>Delete Graph Plot把函数面板中的对应各项填写成如下所示:PanelHandle: panelHandeleControl ID : PANEL_GRAPHPlotHandle: -1选择Code>>Insert Function Call完成函数的插入,这时Code 窗中的ClearCallback( )函数应如下所示:int CVICALLBACK ClearCallback (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){switch (event){case EVENT_COMMIT:DeleteGraphPlot (panelHandle, PANEL_GRAPH, -1,VAL_IMMEDIATE_DRAW);break;}return 0;}到目前为止我们已经完成了程序的编制任务.这一个看起来不算简单的程序,我们编起来并没有写多少源代码,这正是体现了LabWindows/CVI的强大功能所在.第四步运行程序完成项目文件现在请你让源代码(Code)窗为当前响应状态,选择:Run>>Debug FirstSample_dbg.exe便会弹出一个对话框,询问你是否在编译前为该文件命名并添加到工程文件中去.点击yes按扭,把该文件命名为FirstSample.c.然后计算机询问你是否把"analysis.h"包含到FirstSample.c中去(因为,我们的程序中用到了高级分析库),点击yes按扭,同意该选项.运行后的程序正如我们预期要求的那样.退出程序后,从源代码(Code)窗中选择:Window>>Project现在项目(Project)窗为当前响应状态,请选择:Edit>>Add Files to Project…>>All Files(*.*)便会弹出如下图所示的对话框:请你按住键,点击FirstSample.h ,FirstSample.c , FirstSample.uir.然后点击Add按扭把这些文件方到Selected Files框中.点击OK按扭,把以上文件添加到工程文件中去.至此为止我们已经完成了第一个程序的编制工作,想必大家对LabWindows/CVI编程已经有了一个初步的了解,头脑里已建起程序编制的基本框架.通过本部分的学习,你是否已经掌握LabWindows/CVI 程序编制的基本步骤.简单的用户图形界面(*.uir)的创建.能使用函数面板完成函数的插入,构建源代码程序.项目工程文件的基本构成.第二部分CVI环境下程序设计通过编制第一章的FirstSample程序,读者已对LabWindows/CVI编程有一定了解.本部分就是在第一部分的基础上进一步讲述LabWindows/CVI程序设计及其编程环境等细节问题.这一章所讲内容请大家都务必动手实际操作一下,只有这样才能使你真正的掌握本章的内容.看完本章后请大家结合第一章把FirstSample重新编制一遍,以巩固本章所讲的加速LabWindows/CVI编程的技巧.第二章LabWindows/CVI 程序剖析通过例程FirstSample的编制,大家已对LabWindows/CVI编程有了初步的认识.本章是作者从总体上来谈谈自己对LabWindows/CVI程序的理解与认识.LabWindos/CVI 编程的步骤基本如下:制定程序设计的基本方案第一步根据任务确定程序的基本框架如:程序界面,程序中所需的函数等.创建用户图形界面第二步根据第一步制定的方案创建用户图形界面及回调函数名.程序源代码的编制第三步让计算机生成程序代码及回调函数的基本框架.添加函数代码,完成源代码的编制工作.工程项目的完成第四步编译,调试程序.把头文件,用户图形界面文件,源代码文件添加到项目文件中去,完成整个程序的编制程序框架及文件间的相互关系如下图所示(以FirstSample.prj为例):项目工程文件(FirstSample.prj)用户图形界面文件源代码文件头文件(FirstSample.uir) (FirstSample.c) (FirstSample.h)panel include "FirstSample.h" 定义了程序中所需的常事件消息量以及函数原形.Acquire按扭AcquireCallback( )事件消息Wave[512]Clear按扭ClearCallback( )事件消息Quit按扭QuitCallback( )ShowWave上图所画的构成一项目工程文件的各文件之间的关系是非常重要的.如果你能理解上图所示的内容,那么你就基本理解了LabWindos/CVI程序的运作过程.请读者仔细阅读以上内容并理解,这些都有助于读者从整体上去把握LabWindows/CVI 程序设计的核心思想,有益于读者进一步学习LabWindows/CVI.第三章LabWindows/CVI 编程环境LabWindows/CVI开发环境有以下三个最主要的窗(window)与函数面板(Function Panel):·项目工程窗(Project Window)·用户接口编辑窗(User Interface Editor window)·源代码窗(Source window)下面就会对以上三个窗及函数面板作详细的介绍.项目工程窗(Project Window)一个项目工程窗(Project Window)如下图所示:在项目工程窗中列出了组成该项目工程所有的文件,项目工程窗中的个菜单项功能如下:File : 创建,保存或打开文件.可以打开以下文件:项目工程文件(*.Prj)源代码文件(*.c),头文件(*.h)以及用户接口文件(*.uir).Edit: 在项目工程中添加或移去文件.Build: 使用LabWindows/CVI 编译链接器.Run: 运行一个项目工程.Windows: 用来访问某个已经打开的窗,例如:用户接口编辑窗,源代码窗… .Tools: 运行向导(wizard)或者你添加到Tools菜单中的一些工具.Options: 设置LabWindows/CVI 的编程环境.Help: LabWindows/CVI 在线帮助及Windows SDK 的函数帮助.工程项目文件显示了所列文件的状态,其各项的含义如下图所示:文件名这个标志是指源代码最后修改该文件文件是否是打开的的日期时间S是指该文件已经修C是指运行该文件之O是指你可以让该文件I是指这是一个改过了,请保存该文件前必须先经过编译编译而无需debugging 仪器驱动程序如果你想进一步了解项目工程窗(Project window)细节请使用在线帮助.请选择:Help>>CVI Library>>Related Help…Online Manuals ForLabWindows/CVI请查阅LabWindows/CVI User Manual Chapter 3 Project window.第二节用户接口编辑窗(User Interface Edit window)图形用户接口编辑窗是用来创建,编辑GUI(Graph Uer Interface)的.一个用户接口至少要有一个面板(Panel)以及在面板上的各种控件元素(Control Element).图形用户接口编辑窗为你提供了非常快捷的创建,编辑这些面板和控件元素的方法,可以让你在短时间里创建出符合你要求的图形界面.一个图形用户接口编辑窗就如下图所示,下面我们就详细讲讲图形用户接口编辑窗各菜单项的功能:File: 创建,保存或打开文件.Edit: 可用来编辑面板或控件元素.说明:其实我们直接用鼠标双击我们想要编辑对象即可(就象编制中修改面板和四个按扭那样).Creat: 可用来创建面板和各种控件元素.说明:其实我们只需在Panel上点击鼠标右键,便会弹出一个快捷菜单,选择你所想创建的对象即可(就象编制FisrtSample 时创建Graph和四个Button那样).View: 当创建多个面板后就可用该项来查看想要看的面板.Arrange: 用来调节各个控件元素的位置与大小.Code: 产生源代码,以及选择你所需的事件消息类型.Run: 运行程序.Library: 函数库.说明:我们将在后面详细的介绍LabWindows/CVI的函数库.Tools: 一些你可使用的工具项.Windows: 用来访问某个已经打开的窗,例如:项目工程窗,用户接口编辑窗,源代码窗… .Options: 设置用接口编辑窗的编辑环境.Help: LabWindows/CVI 在线帮助及Windows SDK 的函数帮助.说明:在用户接口编辑窗中有一快捷菜单是非常有用的,当你把鼠标指在某一控件元素上点击右键后便弹出一快捷菜单,通过该菜单你可以生成回调函数以及查看回调函数,而无须你再切换到源代码窗后再查看.这是一个大家以后在编程中要常用到的技巧,请掌握.图形用户接口编辑窗中还有四个模式选择按扭,现介绍如下:当该按扭被按下后,你可以操作面板上的控件,同时在图形用户接口编辑窗的右上角上来观察面板上的事件消息.在这种模式下你可以创建,编辑面板和控件元素以及修改它们的属性. 在这种模式下你可以直接修改控件元素的名字,标签等文字相关方面的东西.在这种模式下你可以直接修改面板,控件元素的颜色.先把鼠标方在你所想修改颜色的对象上,点击右键便会弹出一个选色对话框,选择你所想要的颜色后点击后即可.在图形用户接口编辑窗中Panel 的灰色区域中单击鼠标右键,便会弹出一个快捷菜单如下所示:说明:请读者用鼠标点击各项自己看一看,在这里就无须作者多言. 如果你想进一步了解用户接口编辑窗(User Interface Edit window)细节请使用在线帮助.请选择:Help>>CVI Library>>Related Help…Online Manuals ForLabWindows/CVI请查阅LabWindows/CVI User Manual Chapter 4 User InterfaceEdit window源代码编辑窗(Sourse window)你可以在源代码编辑窗中开发你的C 语言代码文件.例如:添加,删除,插入函数等编程所需的基本编辑操作.但是LabWindows/CVI 又有其独特的简捷快速的开发,编辑工具,可以让你在短时间内完成一个较复杂的C程序代码的开发.一个源代码编辑窗(Source window)就如下图所示,下面我们就详细讲讲源代码编辑窗中各菜单项的功能:File: 创建,保存或打开文件.Edit: 可用来编辑源代码文件.View: 设置源代码编辑窗的风格等功能.Build: 编译文件以及编译设置.Run: 运行程序.Instrument: 装入仪器驱动程序.Library: 函数库.Tools: 一些你可使用的工具项.Windows: 用来访问某个已经打开的窗,例如:项目工程窗,用接口编辑窗,源代码窗… .Options: 设置用接口编辑窗的编辑环境.Help: LabWindows/CVI 在线帮助及Windows SDK 的函数帮助.说明:在编程中有一快捷菜单是非常有用的,当你把鼠标指在某一函数上点击右键后便弹出一快捷菜单,通过该菜单你可以查看回调函数以及与该函数对应控件元素.这是一个大家以后在编程中要常用到的技巧,请掌握.第四节函数面板(Fuction Panel)在LabWindows/CVI 编程环境下,当你想在源程序某处插入函数时,你只需从函数所在的库中选择该函数后便会弹出一个与之对应的函数面板,你所做的就是:填入该函数所需的参数后完成插入即可.而且更为方便的是:若参数是一你以有的常量或变量,你只需点击常量或变量工具按扭后选择你所需的量即可;若参数是一变量,你直接可声明该变量而无须再切换至源代码窗.下面我们就谈谈这些在LabWindows/CVI中可以加快你编程的技巧.一个函数面板如下图所示:这是FirstSample中产生一个正弦波的函数其中SinePattern项是用来装正弦波的数组,我们在程序中使用数组Wave[512] 来装正弦波的.当我们在SinePattern项填入Wave后,由于Wave是一变量,所以我们需要声明该变量:让鼠标指在Wave上然后点击工具条中的声明变量按扭后, 便弹出一个声明变量对话框即可声明该变量为局域变量或为全局变量.当你所填参数是一以有的常量或变量,你只需点击选择常量或变量工具按扭后选择你所需的量即可,下面就介绍该技巧:上图是FirstSample中把数组Wave中的正弦波画到Graph上去的PlotWaveform函数.其中,Control ID 项所填的是程序中用来标识GUI中控件元素的常量,该常量是由LabWindows/CVI自动在头文件中预定义的(你可以打开头文件看看).故当我们填入该常量时只需将鼠标放在Control ID项的文本框中然后用鼠标点击工具条中的选择属性或UIR常量按扭后, 便弹出一个选择属性或UIR常量对话框,选择你所需的常量或属性即可.Panel Handle 是程序运行开始时UIR 的句柄,是由LabWindows/CVI 自动生成的是一变量;Number of Points 项需填的是512,这正是我们在声明Wave时已用过的;Y Array 项所填的是我们已经声明过的变量——数组Wave;故当我们填入以上各项时只需将鼠标放在对应项下文本框中,然后用鼠标点击工具条中的选择变量按扭后, 便弹出一个选择变量对话框,选择你所需的变量Wave即可.当你填完函数的参数后,点击插入按扭后即可完成函数的插入,而无须再选择菜单中的插入命令.以上这些都是加快你编程的技巧,这些技巧你以后编程时是会非常频繁使用的.而这些也正是LabWindows/CVI 开发环境所独具的加快你编程速度的特色.说明:当你的鼠标落在工具条按扭上时,计算机会自动的显示该工具按扭的功能.请你使用上面所讲技巧重新编制FirstSample,我相信你将会有新的收获.当你对函数中的某个参数有不明白的时候,你只须将鼠标置于该项的文本框中点击鼠标右键后便会出现对此参数说明的在线帮助,这一技巧在编程中是非常有帮助的.如果你想进一步了函数面板(Function Panel )细节请使用在线帮助. 请选择:Help>>CVI Library>>Related Help…Online Manuals ForLabWindows/CVI请查阅LabWindows/CVI User Manual Chapter 6 Using FunctionPanels第四章LabWindows/CVI 的函数库(Library) LabWindows/CVI 其强大功能的所在就是基于其非常丰富的库函数.LabWindows/CVI 所提供的库函数从用户图形界面,数据采集,数据分析,仪器控制… 到现在Internet时代的TCP.所以说LabWindows/CVI 在测量领域成为先锋的同时又与当前时代的新科技保持了同步.下面我们就来谈谈LabWindows/CVI 的函数库,我们把LabWindows/CVI 的函数库分为了五个大的方面,各个方面又分成了不同的小类:·数据采集方面(Data Acquisition),7个库:Instrument Library: 仪器驱动库GPIB/GPIB 488.2 Library: 仪器控制函数库Data Acquisition Library: 数据采集函数库Easy I/O for DAQ : 易用的数据采集函数库RS 232 Library : RS 232 库VISA Library : VISA 库VXI Library : VXI库·数据分析方面,两个库:Formatting and I/O Library : 格式化以及输入输出库Analysis Library: 分析库或者Advanced Analysis Library: 高级分析库·数据显示方面:User Interface Library : 用户接口库说明: 用户接口库中提供了许多用于与面板上各种控件元素打交道的函数,通过这些函数你可以非常容易的把一个采集来的波形画到Panel 的Graph上或删除Graph 上已画的图形;得到Panel上某个控件元素的数值以及把某个数值写到Panel上的某个控件元素上去(亦就是改变该控件元素的值);修该Panel上控件元素的属性.总之,你只有熟练掌握了用户接口库函数后才能使你创建的用户图形界面正正的动起来,该库是初学者应迅速熟悉的库.·网络,通信与数据交换方面,四个库:DDE Library : 动态数据交换库TCP Library: TCP库Active X Automation Library: Active X自动化库DataSocket Library: DataSocket库·其它方面:ANSI C Library: 标准C 库如果你想进一步了解LabWindows/CVI 函数库(Library)细节请使用在线帮助.请选择:Help>>CVI Library>> Library Help中你感兴趣的库通过本部分的学习,你是否已经掌握□LabWindows/CVI 程序设计步骤及程序的运行机制.三个主要窗的基本操作.在用户接口编辑窗中用快捷方式生成或查看回调函数,在源代码窗中用快捷方式返回到函数面板或对应控件元素等编程中所需的快捷操作.在函数面板上声明变量,选择变量或常量,插入函数等快捷操作.LabWindows/CVI 库的构成及其在编程中适用的方向.第四部分CVI 中数据采集的应用通过前两部分的学习,读者应该已掌握了LabWindows/CVI程序设计的基本步骤,思路以及编程环境.本部分将在前两部分的基础上讲解LabWindows/CVI中的数据采集,并在讲解的过程中编制一个程序:EeasyIOSample .请读者确保自己已经安装了Daq驱动,否则你会找不到例子中要用到的函数.Easy IO 库中数采函数的应用本章我们将使用Easy IO 库中的数采函数来编制一个真正能用于实际工作中的数据采集程序EasyIOSample.我们程序运行时的界面如下图所示:其中各控件元素的功能说明如下: ChannelSrting 项是一字符串控件,我们通过该项来设置采集数据的通道(数采路径).我们把该项缺省设置为:daq::1!(0)其意思是指:采集设备(device)1的0通道(channel).其中设备号正是你在Measurement &Automation 中所看到的对应于数采板的编号.在数采停止时,该项是可以修改的.daq::1!(0) 这段字符串是NI 数采通道的语法表示,具体说明如下: daq::1!(0,2,5) 是指采集设备1的通道0,2,5.daq::1!(2:6)是指采集设备1的通道2,3,4,5,6.ScanRate项是一数字控件,我们通过该项来设置扫描速率,其缺省设置为1000Acquire/Stop项是一开关控件,我们通过该开关来控制数据采集的开始与停止.Clear项是一按扭,当我们按下该按扭后即可清除Acquire Wave上所画的波形.Quit项是一按扭,当我们按下该按扭后,退出程序. Acquire Wave项是一波形显示控件,我们所采集的数据正是通过该控件来显示的.现在我们就开使创建该程序.首先按下面步骤起动CVI:。
Matlab中的图形用户界面设计指南Matlab是一种广泛使用的数值计算工具,而图形用户界面(Graphical User Interface,GUI)则成为许多程序开发者实现用户友好和交互性的重要工具。
本文将探讨如何在Matlab中设计和开发图形用户界面,并分享一些设计指南和最佳实践。
1. 理解GUI的重要性图形用户界面在软件开发中扮演着至关重要的角色。
一个好的GUI设计能够提升用户体验,提供更直观、易于理解的界面,使用户能够高效地使用软件功能。
因此,在进行GUI设计之前,我们需要对用户的需求和使用场景有充分的了解。
2. 选择合适的GUI设计工具Matlab中提供了多种GUI设计工具,如GUIDE、App Designer等。
GUIDE是Matlab中最早版本的GUI设计工具,而App Designer则是Matlab R2016a之后引入的新工具。
两者均可以方便地进行GUI设计,具体选择哪个工具可以根据个人喜好和项目需求来决定。
3. 界面布局与设计在进行GUI设计时,界面的布局和设计是非常重要的。
一个清晰、简洁的界面布局能够帮助用户更好地理解软件功能和操作流程。
以下是一些建议:3.1 选择合适的控件和布局Matlab中有多种控件可供选择,如按钮、文本框、下拉菜单等。
在选择控件时,应根据功能需求和用户习惯来决定。
同时,通过合理的布局,将控件有序地排列在界面中,可以提高用户对界面的易用性。
3.2 考虑界面风格与颜色搭配选择适合的界面风格和颜色搭配也是一个重要的设计考虑因素。
一个统一、协调的风格能够为用户提供一致的视觉体验,并让界面更加美观。
4. 增加交互性和反馈机制提供良好的交互性和及时的反馈机制是GUI设计中的重要方面。
以下是一些建议:4.1 响应用户操作GUI设计应能够响应用户的各种操作,例如点击按钮、输入数据等。
通过编写相应的回调函数,可以实现与用户的交互,让用户感到界面与自己的操作紧密相关。
LabWindowsCVI入门之第三章:计算机外设开发LabWindows/CVI入门之第三章:计算机外设开发通过上一章节的学习,大家已经掌握了在CVI 下开发GUI应用程序的基本步骤和基本方法。
CVI的重要应用是工业接口通信、复杂的数据采集和仪器控制系统的开发,所以对于学习CVI 来说仅仅掌握GUI程序的开发还远远不够。
实际生产生活中,有些设备要求能够满足军用或工业领域恶劣环境或极端天气下对于可靠性的要求,有些设备要求能够满足快速大容量数据的持续传输的要求,有些设备要求能够满足防尘防水防暴防震防撬的要求,有些设备要求满足低成本的要求,纷繁的要求导致了不同的接口标准以及接口协议的诞生。
仅仅掌握了CVI下GUI的编程只能说是对CVI入门,却没有充分的体会到CVI的精华。
在纷繁的接口与个性化的需求下,开发简捷高效、稳定易用、用户体验良好的程序才是我们学习CVI的终极目标。
3.1 计算机组件编程在本节中,我们将会接触到在CVI下进行文件操作、音频播放、OpenGL操作、SQL数据库查询、剪贴板操作、动态数据交换、ActiveX 控件操作、调用.Net操作等相关内容。
在介绍相关内容时,我们只介绍原理与CVI对应的函数功能,具体使用方法需要大家查询CVI的帮助文档。
3.1.1 在CVI中进行文件操作在程序运行时,常常需要将一些数据(运行的最终结果或中间数据)输出到磁盘上存放起来,以后需要时再从磁盘中输入到计算机内存。
这样就需要对文件进行读写操作,LabWindows/CVI 中对文件读写操作的常用函数如下:(1)OpenFile 打开一个文件用以读或者写,函数返回文件句柄;(2)CloseFile 关闭指定的文件;(3)ReadFile 从文件中读取指定字节数的内容到字符串缓冲区;(4)WriteFile 将字符串缓冲区中指定字节数的内容写到文件中;(5)ArrayToFile 将数组内容保存到文件中;该函数运行之后,将在工程文件夹下新建一test.txt的文本文件,文件内容如图3-1所示。