使用注册事件回调节点来代替ActiveX Event VI
主要软件:
主要软件版本: 7.0
主要软件修正版本: N/A
次要软件: N/A
问题: 在LabVIEW 7.0的升级须知中提到ActiveX Event VI 不在函数选板上,如果我想要使用ActiveX事件就必须采用Register Event Callback Node来注册并处理ActiveX事件。请问Register Event Callback Node和ActiveX Event VI间有什么类似之处吗?
解答: 在LabVIEW 6.1或之前的版本中,可借助List Event Descriptions VI获得一系列针对特定ActiveX目标的事件。接着为每个须处理的事件创建ActiveX事件队列,最后轮询事件。
在LabVIEW 7.0或之后的版本中,可借助Register Event Callback Node来处理ActiveX事件。正如LabVIEW帮助文档中所阐述的,该节点可注册一个VI用以在事件发生时回调。
首先从Register Event Callback node中选择一个事件,然后创建回调VI。不同的事件具有不同的事件数据格式,因此创建回调VI后改变事件会损坏程序框图上的连线。所以,必须在创建回调VI之前选择事件。
创建了回调VI之后,打开回调VI并编辑程序框图来处理事件。回调VI包含如下元素:
- Event Common Data这是一个包含事件源及其时间信息的簇;
- CtlRef是一个ActiveX的引用或者针对事件的自动化引用句柄;
- Event Data是一个簇,其中包含了回调VI处理的事件的参数;用户通过Register Event Callback node选择完事件后,LabVIEW就确定了合适的Event Data。一旦事件没有任何关联数据,LabVIEW就不会在回调VI中创建该控件;
- User Parameter当ActiveX对象产生事件时,LabVIEW通过该参数将回调VI中的数据传递给客户;
- Event Data Out是一个簇,其中包含回调VI所处理的事件中可修改的参数。这些元素仅在过滤事件中可用。
注意:改变Register Event Callback node的大小可同时为一个ActiveX对象或多个对象注册多个事件回调VI。
在LabVIEW 7.1或之前的版本中,参照LabVIEW用户手册中19章的ActiveX事件部分获取更多信息(链接如下)。在LabVIEW 8.0或之后的版本中,参照LabVIEW帮助中Registering and Handling .NET and ActiveX Events的相关章节(链接如下)。
相关链接: Product Manuals: LabVIEW User ManualLabVIEW Help: Registering and Handling .NET and ActiveX EventsProduct Manuals: LabVIEW 7.0 Upgrade Notes
附件:
报告日期: 04/30/2003
最近更新: 03/06/2013
文档编号: 2WTH5A3N
Other Support Options
Ask the NI Community
Collaborate with other users in our discussion forums
Request Support from an Engineer
A valid service agreement may be required, and support options vary by country.