回调函数是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事件来记录被点击的次数[page]
可以看出,这次,我们注册的是鼠标抬起事件,因此,系统传递了鼠标的坐标等信息
最后看一下主程序框图
在主程序循环中,没有对控件和指示器做任何操作,所有操作响应都是通过回调函数完成的
关键字:labview 回调函数
引用地址:labview的深入探索----labview与回调函数
所谓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事件来记录被点击的次数[page]
可以看出,这次,我们注册的是鼠标抬起事件,因此,系统传递了鼠标的坐标等信息
最后看一下主程序框图
在主程序循环中,没有对控件和指示器做任何操作,所有操作响应都是通过回调函数完成的
上一篇:labview的深入探索----OPC系列之基本概念
下一篇:labview的深入探索----数据库连接的几个基本概念
推荐阅读最新更新时间:2024-03-30 23:03
采用漏磁场检测法和LabVIEW实现铁轨损伤检测系统的设计
1 引言 在铁路的现代化建设中,铁路的安全是首先需要解决的问题。随着铁路建设的发展,以往靠巡道工进行铁轨检测的方式在许多新建的铁路线上,因站点间的距离太长而无法实施。另外,火车的大幅度提速也给巡道工造成更大的危险。现状迫切需要实施铁轨状态的自动化检测,以代替以往的人工检测。由于人工对铁轨进行探伤的危险性大、效率低,并且有可能出现误检。因此,本 National Instruments公司的虚拟仪器开发平台LabVIEW,设计了一个基于LabVIEW的铁轨损伤检测系统,以实现人工探伤向自动化探伤的转变。 2 检测系统原理 本系统主要采用漏磁场检测法,其基本原理是利用励磁磁场和缺陷相互作用产生的漏磁现象来检测铁轨表面的裂纹或损伤。
[测试测量]
LabVIEW学习笔记——第二个程序:多个整数的平方和
多个整数的平方和的程序涉及到程序的执行结构以及变量类型和数据转换。 首先是程序的执行结构:FOR循环--实现连续数据相加的必要条件。然后再通过移位寄存器实现对数据的累加。 变量的数据类型转换:为了能够显示1^2+2^2+...+N^2=...需要对结果以字符串的形式显示出来,于是需要将整数转换为十进制字符串---在 字符串控件 中的 数值/字符串 中选择 数值至十进制字符串转换 最后的显示:当然要选择 字符串显示 (在前面板中操作)
[测试测量]
LabVIEW编译时出现文件找不到的问题原因及其解决办法
在程序编译过程中出现文件无法找到,并且在编译过程中出现文件在另外一个位置找到,需要程序员保存该文件。 1。首先想到是否是文件被替换,所以重新安装Database工具包(因为之前操作对数据库工具包进行一定的修改。怀疑是这个问题)。重装后,发现问题依然。 2。Mass Compile,对程序目录进行一下mass compile,问题依然没有解决。 3。查找需要保存文件位置,在database目录中,打开发现文件没有问题。 4。发现该文件为polymorphic形式,打开一看,发现其中一个关键文件已被保存为另外的文件存在,原来的文件被替换。发现问题了。 替换为原来的文件。问题解决。
[测试测量]
第一个LabVIEW应用程序WEST
我有了一个设想,利用LabVIEW软件设计一款单词记忆软件。因为刚刚接触LabVIEW,刚刚了解一些控件的功能,所以想通过自行设计一款软件来进一布加深对LabVIEW的认识,当然还有更重要的一个原因,所谓有需求才有产品。 大学里学习了很多软件的编程,其实编程的思想都一样。等有了设计框架后,一个一个功能总能设计出来。这也凸显了软件设计前,流程框架的重要性。 第一天,由于不熟悉控件,等会了一些数据的读取和存储后,发现并不能读取跟存储字符串。经过很长时间的研究,由于在没有参考书在身边,只能查看软件的help以及一个一个控件检查过去。好几个小时的折腾,使我有了一个想法,LabVIEW是处理数据的软件,莫非对字符串读取行不通。
[测试测量]
LabVIEW的定时与同步功能实现
概览 定时对于所有测试、控制和设计应用而言是至关重要的,在系统中必须作为重点进行考虑。当需要完成协同动作时,定时和同步技术将事件以时间进行关联。要让软件完成这些协同动作,程序必须以时间为基准来实现同步。 NI Labview中包含了定时结构,您可以在系统中用它来同步您的程序。 LabVIEW定时原理--纳秒级引擎和NI-TimeSync LabVIEW使用称为纳秒级引擎的软件组件在程序中记录时间。引擎在后台运行,与操作系统交互管理时间。在LabVIEW中有多个函数和结构,使用此引擎记录时间,如等待函数和定时循环结构。纳秒级引擎可以使用本地实时时钟(RTC),也可以通过NI定时同步架构(NI-TimeSync) 用外部参考时钟进
[测试测量]
基于Labview的雷达动目标仿真
雷达探测的目标通常是运动的物体,例如空中的飞机、导弹,海上的舰艇,地面的车辆等。但在目标周围经常存在着各种背景,例如各种地物、云雨、海浪以及敌人施放的金属丝干扰等。这些背景可能是完全不动的,如山和建筑物,也可能是缓慢移动的,如海浪和金属丝干扰,一般来说,其运动速度较目标小。 当杂波和运动目标回波在显示器上同时显示时,会使目标的观测显得困难。如果目标处在杂波背景内,弱的目标湮没在强杂波中,特别当强杂波使接收系统产生过载时,发现目标十分困难。目标不在杂波背景时,要在成片杂波中快速分辨出运动目标回波是比较困难的。如果雷达终端采用自动检测和数据处理系统,则由于大量杂波的存在,将引起终端过载或不必要地增加系统的容量和复杂性。因此,无论从
[工业控制]
基于LabVIEW平台的寒地日光温室群远程监控系统设计
"通过使用NI产品,我们极大地缩短了系统开发周期和实验的验证时间。"
– Fulu Wang, Northeast Agriculture University
The Challenge:
以NI LabVIEW为软件核心,集成PCI6221,NI WSN,第三方OMRON PLC 控制器等硬件,共同构建寒地日光温室群远程无线监控系统。
The Solution:
通过使用具有良好人机界面和易于编程的LabVIEW,结合基于ZigBee协议的NI-WSN,实现对温室环境参数的无线测量,传送,显示和存储。使用DSC工具包,通过OPC server易于对温室控制器O
[嵌入式]
基于LabVIEW虚拟信号频谱分析仪的设计
0 引言 随着计算机技术的迅速发展,利用软件进行信号处理技术的应用日益广泛,已开发的用于虚拟仪器的数字信号处理和图像处理软件的功能也日益强大。数字信号处理是指采用数字系统方法对离散的数字序列描述信号进行处理的一种方法,与传统的 模拟 信号处理方法相比,它具有高度的稳定性、灵活性、精确性,能实现高精度和大动态范围的信号分析,因此具有显著的优越性。而数字信号处理方法的运用又是虚拟仪器平台测控系统的重要组成部分。由于NI公司的LabVIEW包含有信号分析和处理函数库部分。因此,利用LabVIEW提供的信号分析函数库,配合已开发的数字示波器即可实现虚拟信号频谱分析仪的信号处理功能,其信号的分析侧重于对信号频谱的分析以及滤波处理。
[测试测量]