- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
labview的深入探索----labview与回调函数
录入:edatop.com 点击:
回调函数是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事件来记录被点击的次数 [p]

可以看出,这次,我们注册的是鼠标抬起事件,因此,系统传递了鼠标的坐标等信息

最后看一下主程序框图

在主程序循环中,没有对控件和指示器做任何操作,所有操作响应都是通过回调函数完成的

所谓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事件来记录被点击的次数 [p]

可以看出,这次,我们注册的是鼠标抬起事件,因此,系统传递了鼠标的坐标等信息

最后看一下主程序框图

在主程序循环中,没有对控件和指示器做任何操作,所有操作响应都是通过回调函数完成的

上一篇:labview的深入探索-----状态机的基本类型之标准状态机
下一篇:LABVIEW的深入探索之全局变量的优劣