LabVIEW又称为G语言,简单易学、形象直观,采用图形化的编程方式,是专为测试、测量和控制应用而设计的系统工程软件。
前面几篇文章依次讲解了LabVIEW中顺序顺序结构、条件结构及循环结构的编程方法,下面再讲一种与软件界面响应有关的事件结构的编程方法。
一、事件结构框架特点
在程序设计中,我们经常需要对用户界面的各种操作(如单击鼠标、按下键盘、改变控件的值等)作出响应,在早期的LabVIEW版本中,是采用轮询方式来检测的,其缺点是不够灵活,占用CPU资源较多,而且操作频率较快时可能会检测不到变化,从而漏掉某个事件的发生。
在LabVIEW6系列版本后,引入了事件结构,这种程序处理结构克服了轮询方式结构的缺点,极大改善了界面处理的运行效率,同时也降低了CPU的占用,提高了软件用户的使用体验。严格意义上来说,事件结构不是纯粹的程序运行控制结构,它是一种监测GUI界面上各种事件发生并采取相应处理措施的一种机制。
事件结构的框架样式如下图所示:
上图中,事件结构框架中包括了:事件类型、超时端口、事件附加数据及事件框等要素信息。
下面通过简单的例子,演示LabVIEW中事件结构的编程方法。
二、如何在事件结构框架中添加事件
前面板如下所示,有一个字符串显示控件(命名为事件信息),有一个按钮控件(命名为退出)。在程序框图拖拽一个事件结构框架,系统会默认添加一个“超时”事件,如何添加 “键按下”事件、如何添加“鼠标按下”事件、如何添加“值改变”事件。
(1)、在程序框图拖拽一个事件结构框架,系统会默认添加一个“[0]超时”事件
(2)、如何在事件结构框架中添加 “键按下”事件
鼠标指向事件结构边框的边界点上,然后点击右键,弹出下拉菜单,选中“添加事件分支”
可以观察到添加了一个“[1]键按下”事件
(3)、如何在事件结构框架中添加 “鼠标按下”事件
鼠标指向事件结构边框的边界点上,然后点击右键,弹出下拉菜单,选中“添加事件分支”
可以观察到添加了一个“[2]窗格:鼠标按下”事件
(3)、如何在事件结构框架中添加 “值改变”事件
鼠标指向事件结构边框的边界点上,然后点击右键,弹出下拉菜单,选中“添加事件分支”
可以观察到添加了一个“[3]退出:值改变”事件
三、示例说明
本例运行界面如下图所示:
实现的功能是,在软件运行过程中监测键盘、鼠标等事件,在“事件信息”字符串显示控件中显示当前的各种运行信息。本例包括了如下事件处理:
1. “键按下”事件:当按下键盘时在界面上显示当前按下的字符。
2. “鼠标按下”事件:当鼠标按下时在界面上显示当前按下的是左、中、右哪个键及当前的鼠标位置信息。
3. “值改变”事件:当点击退出按钮时程序退出运行。
4. “超时”事件:每隔1s显示一次当前的日期时间信息。
四、程序框图实现过程
本例中涉及到了多种类型事件,主框架采用事件结构配合while循环的方式实现。在事件结构分支中添加各种事件,每响应一次事件执行一次while循环,直到执行退出按钮的值改变事件时退出整个程序,且在while循环中添加了一个移位寄存器,用以保存前面的提示信息。
1、设计最外层顺序结构第一帧
在程序开始运行时可以作一些初始化工作,本例首先在最外层顺序结构的第一帧中初始化“事件信息”的值,过程如下:
(1)、创建一个局部变量
(2)、局部变量指向前面板的事件信息字符串显示控件
(3)、创建一个字符串常量,字符串常量赋初值为“程序开始运行...”
致谢: