我和LabVIEWword版——一个NI工程师十年的编程经验1-5012.事件结构.doc

我和LabVIEWword版——一个NI工程师十年的编程经验1-5012.事件结构.doc

ID:36014314

大小:125.00 KB

页数:3页

时间:2019-05-02

我和LabVIEWword版——一个NI工程师十年的编程经验1-5012.事件结构.doc_第1页
我和LabVIEWword版——一个NI工程师十年的编程经验1-5012.事件结构.doc_第2页
我和LabVIEWword版——一个NI工程师十年的编程经验1-5012.事件结构.doc_第3页
资源描述:

《我和LabVIEWword版——一个NI工程师十年的编程经验1-5012.事件结构.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、事件结构阮奇桢EventStructure也是一种选择结构,程序根据发生的事件决定执行哪一个页面的程序。此时,LabVIEW的界面编写与VisualBasic的界面程序有些类似。一.按照产出源来区分事件的种类按照事件的产生源来区分,LabVIEW有以下几种事件:图1:配置事件1.应用程序事件(),这类事件主要反映整个应用程序状态的变化,例如:程序是否关闭,是否超时等。2.VI事件(),这类事件反映当前VI状态的改变。例如:当前VI是否被关闭,是否选择了菜单中的某一项等等。3.动态事件(Dyn

2、amic),用于处理用户自己定义的或在程序中临时生成的事件。4.区域事件(Pane)和分割线事件(Splitter)是LabVIEW8中新添加的特性。LabVIEW8中,用户可以把一个VI的前面板分割成几份,这两类事件用来处理用户对某个区域或区域分割线的状态的改变。图2:面板上划分区域5.控件事件(Control)是最常用的一种事件,用于处理某个控件状态的改变。例如,控件值的改变,或者鼠标键盘的操作。打开上述的“editevents”框,只要选定了某一个事件产生源,其相应的所有事件均排列在右侧events框中。有时候,多个事件产生源

3、会对同一个用户操作分别产生相应事件。比如在某一控件上按下鼠标,区域事件和控件事件都会发出鼠标按下(MouseDown)事件。LabVIEW按以下规则顺序产生不同的事件:l键盘相关的事件(KeyDown,KeyUp,etc.)只在当前选中(KeyFocused)的控件上产生;l鼠标相关的事件(MouseDown,etc.)按照从外向里的顺序发出。例如,区域的鼠标按下事件先于控件的鼠标按下事件发出;结构的鼠标按下事件先于先于结构内控件的鼠标按下事件发出。l值改变事件按照从内向外的顺序发出。结构(Cluser)内控件的值改变事件先于结构的

4、值改变事件发出。二.按照发出时间区分事件的种类按照事件的发出时间来区分,LabVIEW的事件可分为通知型事件(NotifyEvent)和过滤型事件(FilterEvent)。通知型事件是在LabVIEW处理完用户操作之后发出的,比如用户利用键盘操作改变了一个字符串,LabVIEW在改变了该控件的值之后,发出一个值改变(ValueChanged)通知型事件,告诉事件结构,控件的值被改变了。如果事件结构内有处理该事件的框架,则程序转去执行该框架。过滤型事件是在LabVIEW处理用户操作之前发出的,并等待相对应的事件框架执行完成之后,La

5、bVIEW再处理该用户操作。这类事件的名称之后都有一个问号。例如键盘按下?事件(KeyDown?Event),当用户处理该事件时,控件的值还没有被改变,因此,用户可以在该事件对应的事件框架内决定是否让LabVIEW先处理该事件,或改变键盘按下的值之后再让LabVIEW继续处理该事件。可以明显地看出,过滤型事件比相应的通知型事件要先发出。当同一VI的程序框图上有多于一个的事件结构时,通知型事件是同时被发往所有的事件结构的,而过滤型事件则是按顺序、依次发往每一个事件结构的。但是,在同一VI上放置多个事件结构是没有必要,而且极易引起错误的

6、。所以应该避免在同一VI上使用多个事件结构。下面举例说明如何使用通知型事件。我们经常需要使用到这样的字符串控件:控件用于输入电话号码,因此只接收数字和横线,对其他按键不起反应。LabVIEW没有直接提供此种控件,但是它们可以利用通知型事件被方便地实现出来。图3:利用KeyDown?事件实现电话号码控件这个例子可以在这里下载:PhoneNumberControl.vi三.动态事件在初始状态下,打开事件配置(EditEvents)对话框,动态事件下的一栏是空的。因为动态事件只有注册过之后才能使用。与事件相关的操作在函数选栏的Progra

7、mming->Dialog&UserInterface->Events下面。用于注册事件的节点是事件注册节点(RegisterForEvents)。需要注册某一事件时,先为它的产生者生成一个引用节点,然后将引用节点与事件注册节点的下方区域相连,再选取所需的事件。如下例:图4:注册动态事件对于当前VI上的控件或区域等类型的事件,一般来说可以在事件结构中静态地被选择,所以不需要再动态注册一遍。但有时,当前VI的程序框图已经过于复杂,我们希望在子VI里去处理某些控件的事件。这时就可以把控件的引用传入子VI,在子VI中动态注册所需事件。在子

8、VI的事件结构中处理相应的事件。四.用户自定义的事件用户自定义的事件是动态事件的一种。用户自定义的事件不基于任何一个LabVIEW对象,它是使用创建用户事件节点(CreateUserEvent)生成出来的。并且,用户可以选择不同的事件

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。