您的位置 首页 编程

LabVIEW——事情结构

事件结构EventStructure也是一种选择结构,程序根据发生的事件决定执行哪一个页面的程序。此时,LabVIEW的界面编写与VisualBasic

事情结构

Event Structure 也是一种挑选结构,程序依据产生的事情决议履行哪一个页面的程序。此刻,LabVIEW 的界面编写与 Visual Basic 的界面程序有些相似。

一. 依照产出源来区别事情的品种

依照事情的产生源来区别,LabVIEW有以下几种事情:


图1:装备事情

1.应用程序事情(),这类事情首要反映整个应用程序状况的改动,例如:程序是否封闭,是否超时等。
2. VI事情(),这类事情反映当时VI状况的改动。例如:当时VI是否被封闭,是否挑选了菜单中的某一项等等。
3.动态事情(Dynamic),用于处理用户自己界说的或在程序中暂时生成的事情。
4.区域事情(Pane)和分割线事情(Splitter)是LabVIEW 8中新增加的特性。LabVIEW 8中,用户能够把一个VI的前面板分割成几份,这两类事情用来处理用户对某个区域或区域分割线的状况的改动。


图2:面板上划分区域

5.控件事情(Control)是最常用的一种事情,用于处理某个控件状况的改动。例如,控件值的改动,或许鼠标键盘的操作。
翻开上述的“edit events”框,只需选定了某一个事情产生源,其相应的一切事情均摆放在右侧events框中。
有时候,多个事情产生源会对同一个用户操作别离产生相应事情。比方在某一控件上按下鼠标,区域事情和控件事情都会宣布鼠标按下(Mouse Down)事情。LabVIEW 按以下规矩次序产生不同的事情:
 键盘相关的事情(Key Down, Key Up, etc.)只在当时选中(Key Focused)的控件上产生;
 鼠标相关的事情(Mouse Down, etc.)依照从外向里的次序宣布。例如,区域的鼠标按下事情先于控件的鼠标按下事情宣布;结构的鼠标按下事情先于先于结构内控件的鼠标按下事情宣布。
值改动事情依照从内向外的次序宣布。结构(Cluser)内控件的值改动事情先于结构的值改动事情宣布。

二. 依照宣布时刻区别事情的品种

依照事情的宣布时刻来区别,LabVIEW的事情可分为告知型事情(Notify Event)和过滤型事情(Filter Event)。

告知型事情是在LabVIEW处理完用户操作之后宣布的,比方用户运用键盘操作改动了一个字符串,LabVIEW 在改动了该控件的值之后,宣布一个值改动(Value Changed)告知型事情,告知事情结构,控件的值被改动了。假如事情结构内有处理该事情的结构,则程序转去履行该结构。
过滤型事情是在 LabVIEW 处理用户操作之前宣布的,并等候相对应的事情结构履行完结之后,LabVIEW 再处理该用户操作。这类事情的称号之后都有一个问号。例如键盘按下?事情(Key Down? Event),当用户处理该事情时,控件的值还没有被改动,因而,用户能够在该事情对应的事情结构内决议是否让 LabVIEW先处理该事情,或改动键盘按下的值之后再让LabVIEW持续处理该事情。
能够明显地看出,过滤型事情比相应的告知型事情要先宣布。
当同一VI的程序框图上有多于一个的事情结构时,告知型事情是一起被发往一切的事情结构的,而过滤型事情则是按次序、顺次发往每一个事情结构的。可是,在同一VI上放置多个事情结构是没有必要,而且极易引起过错的。所以应该防止在同一VI上运用多个事情结构。

下面举例说明怎么运用告知型事情。咱们常常需求运用到这样的字符串控件:控件用于输入电话号码,因而只接纳数字和横线,对其他按键不起反响。LabVIEW没有直接供给此种控件,可是它们能够运用告知型事情被方便地完成出来。


图3:运用 Key Down? 事情完成电话号码控件

这个比如能够在这里下载:Phone Number Control.vi

三. 动态事情

在初始状况下,翻开事情装备(Edit Events)对话框,动态事情下的一栏是空的。由于动态事情只要注册过之后才干运用。与事情相关的操作在函数选栏的 Programming -> Dialog & User Interface -> Events 下面。
用于注册事情的节点是事情注册节点(Register For Events)。需求注册某一事情时,先为它的产生者生成一个引证节点,然后将引证节点与事情注册节点的下方区域相连,再选取所需的事情。如下例:


图4:注册动态事情

关于当时VI上的控件或区域等类型的事情,一般来说能够在事情结构中静态地被挑选,所以不需求再动态注册一遍。但有时,当时VI的程序框图现已过于杂乱,咱们期望在子 VI 里去处理某些控件的事情。这时就能够把控件的引证传入子 VI,在子 VI 中动态注册所需事情。在子 VI 的事情结构中处理相应的事情。

四. 用户自界说的事情

用户自界说的事情是动态事情的一种。用户自界说的事情不根据任何一个LabVIEW目标,它是运用创立用户事情节点(Create User Event)生成出来的。而且,用户能够挑选不同的事情数据类型。

五. ActiveX控件的事情

ActiveX 控件的事情不能直接被LabVIEW的事情结构所截获。ActiveX 事情需求用注册事情回调 VI 节点(Register Event Callback)来为某一事情指定一个VI。当事情产生时,履行被注册的 VI。咱们也能够运用注册事情回调 VI 节点为某一 LabVIEW 本身的事情注册一个回调 VI,可是出于运转功率,和程序可读性等方面的考虑,最好不要这样运用。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/biancheng/213861.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部