《labwindowscvi3用户事件和回调函数课件》由会员分享,可在线阅读,更多相关《labwindowscvi3用户事件和回调函数课件(9页珍藏版)》请在金锄头文库上搜索。
1、自动化测试与控制研究所LabWindows/CVILabWindows/CVI教程教程(3)(3)用户事件和回调函数用户事件和回调函数Email: Email: MSN: qiaoliya MSN: qiaoliya Tel: 86413532/33 ext. 526Tel: 86413532/33 ext. 526 Office: Office: 科学园科学园科学园科学园2A2A栋栋栋栋5265268/2/2024labwindowscvi3用户事件和回调函数2/91.用户事件的概念 LabWindows/CVI中的用户事件就是Windows 操作系统的消息,LabWindows/CVI
2、通过回调函数的方式处理用户事件,这种基于事件的编程方式简化了对应用程序流程的控制。2.控件的模式 模式决定了用户可以以何种方式操作控件,控件可以产生哪些用户界面事件。Normal模式:可以除COMMIT之外的所有事件Indicator模式:用户不能操作控件,不能产生COMMIT和VAL_CHANGE事件Hot模式:默认模式Validate模式:产生COMMIT前,检查控件值的有效性8/2/2024labwindowscvi3用户事件和回调函数3/9EVENT_CLOSEEVENT_LEFT_DOUBLE_CLICKEVENT_COMMITEVENT_LOST_FOCUSEVENT_DISCAR
3、DEVENT_PANEL_MOVEEVENT_END_TASKEVENT_PANEL_SIZEEVENT_GOT_FOCUSEVENT_RIGHT_CLICKEVENT_IDLEEVENT_RIGHT_DOUBLE_CLICKEVENT_KEYPRESSEVENT_TIMER_TICKEVENT_LEFT_CLICKEVENT_VAL_CHANGED3.用户用户事件的类型的类型8/2/2024labwindowscvi3用户事件和回调函数4/94.回调函数回调函数的模式:n基于对象的回调:把程序分成若干小的、易于管理的部分,每一部分完成特定的工作n主回调:使用InstallMainCallba
4、ck安装单一的回调函数处理所有事件。事件触发回调函数的顺序n控件操作事件:控件回调面板回调主回调n面板事件:面板回调主回调n菜单确认事件:菜单项回调主回调n定时器控件事件:定时器控件回调n主回调事件:主回调8/2/2024labwindowscvi3用户事件和回调函数5/95.使用回调函数响应用户事件回调函数的声明 CVICALLBACK8/2/2024labwindowscvi3用户事件和回调函数6/96.事件处理调用事件处理函数RunUserInterface或GetUserEvent才会处理系统事件GetUserEventnint GetUserEvent (int Wait_Mode,
5、 int Panel_or_Menu_Bar_Handle, int Control_or_Menu_Item_ID);nevent = GetUserEvent (1, &panelHandle, &controlID);ProcessSystemEventsnint ProcessSystemEvents (void);PorcessDrawEventsnint ProcessDrawEvents (void);7. 程序的调试方法断点设置变量查看8/2/2024labwindowscvi3用户事件和回调函数7/9上机总结1.编程步骤分析任务创建UIR文件,设计图形用户界面用自动代码生成器
6、产生代码框架添加程序功能编译和调试2.编程技巧使用函数面板的自动插入功能,自动在函数面板中插入Panel Handle,Control ID等参数,以免出错;使用函数面板自动插入功能,自动在源程序中插入函数代码;函数的查找要根据所需功能查找Library目录下各函数库使用断点跟踪,变量查看功能,定位错误8/2/2024labwindowscvi3用户事件和回调函数8/93.几个需要注意的问题Constant Name: 控件或面板的常量名,作为控件或面板的标识,不能重复,一般全用大写字母命名。自动赋值Callback Function: 控件或面板的回调函数名,只有需要响应用户事件的面板或控件
7、才需要。命名规则符合一般函数的命名规则。Label: 控件或面板的标注,用于界面显示。Panel Handle:面板的句柄,在函数中用来指代面板的标识。LoadPanel函数的返回值,命名规则同一般变量的命名规则。自动赋值Panel Resource ID: 面板的常量名Control ID:在头文件中分配给的控件的常量,一般为面板的常量名下划线控件的常量名。8/2/2024labwindowscvi3用户事件和回调函数9/94.Numeric和Ring控件的区别Numeric是数值控件,用于输入和显示数据。Ring是列表控件,用户可以从下拉列表的多个条目中选择一条,每一个条目都是以标题数值对的形式保存的,控件显示各条目的标题。当一个条目被选中时,它对应的数值就成为当前控件值 5.Graph和Strip Chart的区别Graph是曲线图控件,用来显示图形数据,可以显示一条或多条图线。一条图线包含曲线、数据点、几何图形、图片或字符串。 Strip Chart是带状图控件,用来实时显示图形数据,可以包含一个或多个同时刷新的曲线,每一条曲线可以代表一个连续测量的数据通道。 8/2/2024labwindowscvi3用户事件和回调函数