首页 理论教育使用事件结构响应前面板事件示例

使用事件结构响应前面板事件示例

【摘要】:图2-56 事件结构示意图事件用来通知用户有异步活动发生。事件结构将等待直至某一事件发生,并执行相应条件分支从而处理该事件。为了响应多个事件的请求,要求在事件结构外面套加一个While循环,以便能够及时准确地响应每个事件。如果没有这个While循环,无论有多少事件发生只能对第一个发生的事件进行处理,处理完后程序将退出事件结构。 使用事件结构目的:创建一个VI,使用事件结构响应前面板事件。

978-7-111-49442-3-Chapter02-75.jpg

图2-56 事件结构示意图

事件用来通知用户有异步活动发生。图形化语言的事件响应包括用户界面事件、外部I/O事件和程序其他部分的事件。对事件的处理程序也称为事件驱动程序。事件驱动程序可以分为若干个分支,每个分支处理不同的事件响应。所以对事件的响应结果也可以控制程序的流程。

事件结构位于“函数选板”→“编程”→“结构”子选板中,与条件结构和循环结构类似,事件结构也包含了一个主框架,这个框架内将用来放置事件处理的事件驱动程序代码。如果事件处理任务众多,会有众多事件分支存在,在结构上类似于Case的多帧结构(选择器标签)。如图2-56所示。

当在程序框图上拖放一个事件结构时,只能看到图2-56所示的一帧已经预先注册的超时事件及超时事件分支。超时事件是一种特殊的事件,当然也可以看成是默认的事件分支。如果存在其他事件源,超时事件完全可以被忽略或取消。

事件驱动的编程机制是由事件决定程序执行流程。事件结构就是当某一指定的事件发生时,就会执行相应框图中的程序。当结构执行时,仅有一个子程序框图或分支在执行。事件结构将等待直至某一事件发生,并执行相应条件分支从而处理该事件。为了响应多个事件的请求,要求在事件结构外面套加一个While循环,以便能够及时准确地响应每个事件。事件结构通常包括以下部分:

1)事件选择器——包含有若干个注册的事件源及同等数目的事件分支层,在每个事件分支层中包含对该事件响应的处理程序。

2)While循环——用来检测连续不断产生的事件

事件结构中的While循环,是用来确保检测到连续不断发生的事件。如果没有这个While循环,无论有多少事件发生只能对第一个发生的事件进行处理,处理完后程序将退出事件结构。

【例2-5】 使用事件结构

目的:创建一个VI,使用事件结构响应前面板事件。

具体步骤如下:

(1)选择“文件”→“新建VI”,打开一个新的前面板

1)添加“确定按钮”控件(控件选板→Express→按钮与开关),将其标签改为“确定按钮”。

2)添加“取消按钮”控件(控件选板→Express→按钮与开关),将其标签改为“取消按钮”。

3)添加“停止按钮”控件(控件选板→Express→按钮与开关)。

4)添加“指示灯”控件(控件选板→Express→指示灯→圆形指示灯)。

5)添加“字符串显示”控件(控件选板→新式→字符串与路径)。

6)添加“数值显示”控件(控件选板→新式→数值)。

7)添加“旋钮”控件(控件选板→Express→数值输入控件)。

前面板如图2-57所示。

978-7-111-49442-3-Chapter02-76.jpg

图2-57 前面板

(2)按〈Ctrl+E〉键切换到该vi的程序框图

1)在程序框图中放置一个While循环结构(函数选板→编程→结构)。

2)在While循环中放置一个“事件结构”(函数选板→编程→结构)。

单击事件结构边框,从弹出的快捷菜单中选择添加事件分支,分别添加“取消按钮”、“确定按钮”、“旋钮”、“停止”作为事件源的事件分支,事件均为“值改变”。

按照图2-58连接各个端子。

978-7-111-49442-3-Chapter02-77.jpg

图2-58 程序框图

a)超时事件分支

978-7-111-49442-3-Chapter02-78.jpg

图2-58 程序框图(续)

b)取消按钮事件分支 c)确定按钮事件分支

978-7-111-49442-3-Chapter02-79.jpg

图2-58 程序框图(续)

d)旋钮事件分支 e)停止事件分支

(3)返回前面板,运行该VI

单击不同的按钮,观察前面板变化,理解事件结构。

(4)把该VI保存为EventHandle.vi