原创 第一个Labwindows/CVI实例

2011-3-20 14:52 10177 6 11 分类: 软件与OS

 


Labwindows/CVI第一次启动,首先会进入如下所示的界面。


9d192f13-db2e-4486-a316-33e9ed189222.jpg


如果不想以后首先进入到这里,那么取消左下角的“Show at Startup”。


这里不去管它,点击标题栏中的叉号将其关闭,关闭后显示如下界面:


6c1b5c20-17f3-4589-a09e-5aace42726b2.jpg



现在我们开始建立我们的第一个程序,要实现的功能很简单,就是一个界面,界面上有两个按钮。当其中一个按钮点击后,会使自己失效,同时激活另一个按钮,按下另一个按钮也是如此。


 


 


第一步:新建工程。点击File>>New>>Project,如下图所示:


833f86fe-b42f-43c0-a9e4-a346b1832ec1.jpg



弹出如下对话框:


3dfe8f16-3c2e-4ff1-9be2-d75d69ddd3af.jpg



Labwindows/CVI(后面简称CVI),当没有任何工程打开时,CVI会有一个默认的工作区,一个工作区可能包含一个或多个工程。


上面一栏“Project Location”就是我们要新建的工程的位置选择,让我们决定是将要新建立的工程放当前工作区中,还是新建立一个工作区来存放它。


下面一栏“Transfer Project Options”,看说明大概是从当前工程中复制一些配置到我们将要新建立的工程中。


这两栏可以根据自己的需要去做选择,这里不去管它,直接点击“OK”。至此,新的工程已经建立好了,回到主界面上,但是我们没发现主界面上有什么变化。


 


 


第二步:建立界面。点击File>>New>>User Interface,如下图:


4ac891be-36b7-4ca0-b1d2-1648744b5ed7.jpg



我们看到主界面的变化,工作区中新出现了一个面板,如下:


5de952e4-fe82-463c-91b7-068e87f12424.jpg



在新建的面板的空白区中,右键点击,选择Command Button>>OK,如下图所示:


26a4cf70-4702-49a6-a8d8-6a9c7f8142dd.jpg



连续在面板中放置两个相同的按键,如下图:


95df14c0-24d6-420c-91e9-b42616255feb.jpg



双击上面的按钮,弹出如下对话框:


7fd4f6a0-b538-4ff7-8285-9c02f934a28a.jpg



将它修改成如下:


34f1aa9d-961f-4c67-bf18-7e090e828ec7.jpg



改好上面的按钮,将更改下面的按钮,注意它们有一点点不一样,将第二个按钮改成如下图示的内容:


cda0ec67-5f80-4dfa-990a-bd16c2cc45b6.jpg



注意按钮2的配置中,“Initially dimmed”选项被选择了,后面我们将会讲述它的作用。配置好两个按钮以后,主面板如下图所示:


0be8e32e-1bf0-41d3-b310-edd07e92d943.jpg



 


 


第三步:生成代码。选择Code>>Generate>>All Code,如下图:


0662a1fa-7bee-4048-9bad-5264967753c5.jpg



点击后,弹出提示对话框,告诉我们UIR文件在生成代码之前需要命名,我们可以使用“另存为”命令来给文件命名,并询问我们现在是否对文件命名?如下图所示:


d2a43ff9-936c-4ec3-a234-a85ffae3f5bb.jpg



点击“Yes”,弹出保存文件的对话框,如下图:


e6d3e2c2-4dbf-4db4-b440-4e19ce243f1f.jpg



我们需要一个文件夹来存放工程、各种文件等,读者朋友可以根据自己的需要在磁盘的某个地方新建一个文件夹,将给文件夹取个自己喜欢的名字。这里我直接在D盘里面建立一个CVITest文件夹,也将UIR文件命名为CVITest并保存在那里,如下图:


abbe7000-38d3-4b7d-a045-0d525dd6e21d.jpg



点击“保存”,然后弹出如下询问对话框:


1fbdcb8d-4d77-4690-89f9-cb8e8898e477.jpg



这里的意思是,在生成并插入代码,必须指定一个目标文件,询问我们是否现在指定?点击“Yes”,弹出如下对话框:


6578cf42-f1e0-48ec-979a-3c03e70fa93d.jpg



我们发现里面并没有任何文件可供选择,这是因为该工程才刚开始,里面根本就没有创建任何文件,因此没得选。


这里可以不用去管它,直接点击“OK”,弹出如下对话框:


7cd23414-77dc-4318-a489-49ca80d7e0a4.jpg



关于这里面的各种选项,我们在后面将会给予专门的说明,这里不去理会,直接点击“OK”,然后弹出如下对话框:


510d4b07-c592-40d3-b710-050c7e603f09.jpg



我们发现这个对话框很熟悉,前面刚开始新建工程时出现过,现在它又出现了一次,将它改成如下:


c1877513-5dd7-4c47-bf3b-b1635632ed22.jpg



点击“OK”,就完成代码生成的工作了。这时我们可以看到生成的代码如下图所示:


c176e88e-bc8d-44e0-82d0-2b0699cba64f.jpg



里面有三个函数,第一个是main函数,另外两个分别是OK1_Func和OK2_Func,main函数就不说了,大家都知道是什么。我们发现,OK1_Func和OK2_Func是我们上面在编辑两个按钮时,填在里面的回调函数名。


当按钮1或者按钮2按下时,CVI就会调用OK1_Func或者OK2_Func函数来进行处理,我们只需要在这里面填写我们需要的功能就行了。


 


 


第四步:编写功能代码。


在OK1_Func中填入如下代码:


e7dd6841-2bec-43e4-bf63-d24b27d468a3.jpg



在OK2_Func中填入如下代码:


45383ef1-a989-46ea-8579-229ec6dca235.jpg


 


 



第五步:运行。点击 按钮,运行程序。


1b4b4881-7361-45fc-93fe-65a8d2313b23.jpg



当我们点击按钮1时,它导致它自己失效,并激活按钮2,如下图:


8186587b-463e-49b0-82b0-9f6ec05a3a67.jpg



当点击按钮2时,会导致它自己失效,并激活按钮1。至此,我们实现这种简单的功能。最后,大家可能发现这个程序运行后,点击关闭,它没有反应,依旧在那里。产生这种情况,是因为我们没有对退出事件进行处理的原因。可以在任务栏中右键关闭它,或者点击CVI的“STOP”按钮。


 


 

PARTNER CONTENT

文章评论5条评论)

登录后参与讨论

用户1845565 2015-7-12 20:03

我用的2010sp1的版本,你的教程对我很有用,谢谢O(∩_∩)O~~写的很详细,接着看下一篇博文啦~

用户377235 2014-2-26 14:30

非常感谢

用户377235 2013-3-8 11:09

没成功! PANEL_OK1 PANEL_OK2没定义。。。。

用户377235 2013-1-20 22:49

恩 很好啊

用户377235 2012-2-23 11:35

相关推荐阅读
用户305493 2011-04-05 20:26
windows消息与CVI事件
  这里,主要讲一下windows消息和Labwindows/CVI的事件,这里全部都是个人的看法。如有雷同,十分荣幸。如有误解,欢迎指正。   我们都知道windows程序的运行是基于消息机制的,用...
用户305493 2011-03-30 22:36
消息框的使用——MessagePopup
  我们重新建立一个工程,并画出如下简单的界面:双击面板的空白处,在弹出的对话框中做如下配置:配置好面板以后,双击“OK”按钮,在弹出的对话框中做如下配置:然后,Code>>Generat...
用户305493 2011-03-27 13:38
CVI的事件机制与回调函数
 CVI的工作流程是基于事件的,用户动作产生事件,然后对事件进行相应的响应。我们来看下面一张图(该图源于CVI的帮助文档):左边的大方框为面板以及面板上各类控件的表示,右边的Source(.c)Fil...
用户305493 2011-03-26 15:20
关于常量名和ID
      这一篇文章里面,大胆的阐述了一些个人观点,欢迎读者朋友批评指正。   现在我们知道设置面板属性、控件属性时,都要设置它的常量名。那么常量名是什么?NI似乎并没有给予明确的说明。但是,通过对...
用户305493 2011-03-26 14:48
对第一个实例的讲解
  首先,声明一下,本人英文不太好,很多地方翻译得会不够准确,有些地方的叫法可能也是不够合理的,但是这些并不影响我们应用LabWindows/CVI(后面简记为CVI)来编写我们的上位机。 一.面板属...
EE直播间
更多
我要评论
5
6
关闭 站长推荐上一条 /3 下一条