博客首页 | 排行榜 |

csxcs366的博客--LABVIEW CVI

http://labview.weebly.com/ 群:80754347 群:78561268 群:37591940

个人档案
博文分类
labview编程技巧-----xcontrol如何发送用户事件  2008-05-11 11:30

我在XCONTROL一文中详细说明了如何利用属性和方法,通过XCONTROL的事件结构,建立XCONTROL的方法.

通过属性可以控制XCONTROL的显示状态,通过方法,可以要求XCONTROL执行动作(命令),有的时候,XCONTROL需要想调用VI发送数据或者命令,要求调用VI执行动作,如何实现这个目的,有几种方法,全局变量,队列,用户事件,使用全局变量显然是不合适的,我们用XCONTROL的目的是实现组件封装,XCONTROL的运行不应该依赖于外部变量,使用队列也有它的问题,是我们不得不专门用一个循环来处理队列,这对一个不太经常发生的数据传送 ,显然是不经济的.

今天推荐一个方法,使用用户事件.

关于用户事件,我专门有一篇文章介绍.现在的LV编程,采用事件结构越来越多,我们只需要简单地

在事件结构中增加用户接口事件就可以了.

先看看程序实现的功能




按下SnapShot(捕捉)按钮后,XCONTROL自动通过用户事件把捕捉到的图象传送到调用VI




要想调用VI响应用户事件,必须得到用户事件参考,最好的办法是通过XCONTROL的只读属性得到,这样就需要在xcontrol的STATE中定义这个属性,看一下它的状态定义:



这个用户事件的数据是一个图片框,得到这个参考是需要技巧的,我演示一下方法:



另外一种常用的方法:



首先在XCONTROL的INIT中生成用户事件


在UNINTI.VI中销毁用户事件





在FACADE.VI中发送用户事件



这样只要XCONTROL的捕捉按钮按下,XCONTROL响应这个按钮同时把图片通过用户事件发送出去.


看看调用VI是如何响应用户事件的.


类别:labview编程技巧 |
上一篇:DAQ----时钟的概念 | 下一篇:数据采集---从基本的AD0809谈起
以下网友评论只代表其个人观点,不代表本网站的观点或立场