labview的深入探索----labview与回调函数
时间:01-09
来源:互联网
点击:
回调函数是WINDOWS编程(API编程)的核心内容之一,在许多高级编程语言,如VB,VC(MFC)中已经封装了回调函数,取而代之的是事件响应函数,但是,追溯其本质,实际就是回调函数.
所谓WINDOWS回调函数,就是按照WINDOWS的规范,编写的(CALLBACK)函数,当WINDOWS检测到事件发生时,自动调用的函数,WINDOWS是通过函数指针调用的,因此,回调函数的内容是由用户决定的,而何时调用是由操作系统决定的.
我们看一下CVI中的一般回调函数的定义
int callback aaaa(int panel,int control,int event1,int event2,callbackdata *data);
回调函数的参数是有操作系统提供的,比如上面的回调函数,
panel---表示的哪个面板(窗口)发生的事件
control---表示的面板上哪个控件发生的事件
event1 event2 表示事件的类型和相应数据,比如鼠标坐标等
回调函数是一般高级编程语言的基本功能,但是,在LABVIEW8.X之前是不支持的,这极大限制了LABVIEW功能的扩展,因为ACTIVEX,.NET都需要回调函数.
8.X中,增加了回调函数的功能,主要用于ACTIVE,.NET和LABVIEW自身控件,LABVIEW例子程序中提供了几个例子,是有关ACTIVEX和.NET调用的,下面,我们通过LABVIEW自身控件说明一下回调函数的使用方法.
在.NET摸板中也提供了这个节点,从分类上就可以看出,注册回调函数主要是用于ACTIVEX和.NET的.
下面我们做一个简单的回调函数的程序,有两个功能,返回当前值的变化和记录控件被点击的次数
注册回调函数需要三个参数:控件参考,用户参数和自动生成的回调函数,有了控件参考,我们就可以选择事件的类型,用户参数主要是用于返回结果,因为回调函数是由操作系统调用的,没有办法通过数据流返回处理结果.
添加了这两个参数后,就可以自动生成回调函数了
回调函数如下图所示
简单编程,CONTROL的值传递给INDICATOR
这样值变化的回调函数完成了,下面我们通过鼠标UP事件来记录被点击的次数
可以看出,这次,我们注册的是鼠标抬起事件,因此,系统传递了鼠标的坐标等信息
最后看一下主程序框图
在主程序循环中,没有对控件和指示器做任何操作,所有操作响应都是通过回调函数完成的
所谓WINDOWS回调函数,就是按照WINDOWS的规范,编写的(CALLBACK)函数,当WINDOWS检测到事件发生时,自动调用的函数,WINDOWS是通过函数指针调用的,因此,回调函数的内容是由用户决定的,而何时调用是由操作系统决定的.
我们看一下CVI中的一般回调函数的定义
int callback aaaa(int panel,int control,int event1,int event2,callbackdata *data);
回调函数的参数是有操作系统提供的,比如上面的回调函数,
panel---表示的哪个面板(窗口)发生的事件
control---表示的面板上哪个控件发生的事件
event1 event2 表示事件的类型和相应数据,比如鼠标坐标等
回调函数是一般高级编程语言的基本功能,但是,在LABVIEW8.X之前是不支持的,这极大限制了LABVIEW功能的扩展,因为ACTIVEX,.NET都需要回调函数.
8.X中,增加了回调函数的功能,主要用于ACTIVE,.NET和LABVIEW自身控件,LABVIEW例子程序中提供了几个例子,是有关ACTIVEX和.NET调用的,下面,我们通过LABVIEW自身控件说明一下回调函数的使用方法.
在.NET摸板中也提供了这个节点,从分类上就可以看出,注册回调函数主要是用于ACTIVEX和.NET的.
下面我们做一个简单的回调函数的程序,有两个功能,返回当前值的变化和记录控件被点击的次数
注册回调函数需要三个参数:控件参考,用户参数和自动生成的回调函数,有了控件参考,我们就可以选择事件的类型,用户参数主要是用于返回结果,因为回调函数是由操作系统调用的,没有办法通过数据流返回处理结果.
添加了这两个参数后,就可以自动生成回调函数了
回调函数如下图所示
简单编程,CONTROL的值传递给INDICATOR
这样值变化的回调函数完成了,下面我们通过鼠标UP事件来记录被点击的次数
可以看出,这次,我们注册的是鼠标抬起事件,因此,系统传递了鼠标的坐标等信息
最后看一下主程序框图
在主程序循环中,没有对控件和指示器做任何操作,所有操作响应都是通过回调函数完成的
labview回调函 相关文章:
- 频宽、取样速率及奈奎斯特定理(09-14)
- 为什么要进行信号调理?(09-30)
- IEEE802.16-2004 WiMAX物理层操作和测量(09-16)
- 为任意波形发生器增加价值(10-27)
- 基于PCI 总线的高速数据采集系统(09-30)
- 泰克全新VM6000视频测试仪助力数字电视等产品测试 (10-06)