微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > 关于事件回调的运用(有关于 中断)

关于事件回调的运用(有关于 中断)

时间:01-09 来源:互联网 点击:
关于事件回调 的解释 ,官方的是这样的:

注册VI,在事件发生时调用该VI。该函数用于注册和处理.NET和ActiveX事件。LabVIEW依据连线至各项的输入引用的类型确定可注册的事件。

我理解的就是:注册了事件回调之后,当某些事件发生以后,就会触发程序掉应设置好的子VI,运行子VI,类似于单片机C语言里面的中断处理。

看这样的一个例子(官方原例)

关于通过回调VI修改标题显示的例子。

在VI前面板实现网页浏览的基本功能。

前面板是这样的


程序框图是这样的



事件回调注册事件 用了两个事件。即 Titlechange和BeforeNavigate2.我们以第一个回调事件来进行解释。

当该浏览器控件发生标题改变时间后,就会回调TitleChangeCallback.vi进行某些处理。

我们打开这个子VI进行查看。





程序中 就是 将 事件数据 里面的TEXT 赋值给 我们前面板上的字符串显示控件 Title。

至于我们应该怎么样创建一个子VI。下面我们进行简单的探索。

我们先 创建一个 事件回调注册 节点(互连接口——.net——事件回调注册)

然后我们将这个节点与 ActiveX控件或.net控件 链接起来。

然后 我们从 第一个选项 “事件”里 选择 TitleChange 事件。就关联了Titlechange事件

右键VI引用端子,创建回调VI。就会创建一个半成型的VI。这个半成型的 VI会根据上一步选择事件的不同而不同。主要是因为用到的参数不同,我们在这个基础之上进行修改。

有的回调VI需要用户参数,有的则不需要。而本例中 我们用到的用户参数就是 我们用到的字符串显示控件Title的引用句柄。

看一下 半成型的回调VI的不同。

Titlechange回调VI是这样的

回调VIBeforeNavigate2.VI

则是这样的:



存在着很大的不同吧!在这个基础上 修改回调VI就相对比较简单了。

语言组织比较乱!我自己能懂。如有不同想法,大家一起留言探讨。

我们可以把这种思维用到 中断程序处理中(例如 串口中断),继续探讨。

需要说明的是:在回调VI中,用户参数一般都是 变体数据类型的。如果我们想改变回调参数的数据类型,在创建回调VI之前,连线用户参数端子,如连线的是字符串引用句柄,则回调VI中的用户参数为字符串型引用。

我们之前创建的半成型的Titlechange回调VI就是这样来的。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top