编程的主要目的是为了实现用户的某种功能,用户通过用鼠标、键盘、程序内部等触发某种程序动作,从而达到某种结果,这些操作都被称作为事件,LabVIEW中相应这些事件最常用的结构就是“事件结构”。事件结构内容丰富,基本上大的程序结构都需要用到事件结构,下面将详细介绍事件结构。
    事件结构在程序不能够单独响应各种事件,必须与循环结构一同使用,如下图
      <ignore_js_op> 
    事件添加方式很简单,鼠标右键事件框弹出菜单如上图,有添加、删除、复制、编辑事件等选项,按照操作即可。如下图,为事件结构添加Stop事件,布尔控件触发事件的方式有多种,鼠标按下、经过、离开、进入等,这里我们选择“值改变”。确定后,stop事件就被添加进去了,如下图,当我们运行程序后,点击前面板的stop按钮,触发事件使while循环停止而后程序也停止。 
    <ignore_js_op> 
    同一事件分支只能添加一种事件吗?当然不是!有的时候有很多不同操作却会执行相同代码,怎么编程才不会让代码冗余呢?看个例子,如下图2个按钮stop1,stop2点击后都可以让程序停止,我们怎么为其添加事件呢?
       <ignore_js_op> 
    我们先添加一个事件stop1的,方法上面已经描述了。由于stop2的执行代码和stop1一样,我们在事件stop1上右键->弹出菜单->编辑本事件分支(Edit Event Handled by This Case)会弹出已添加事件stop1的编辑框,这是左侧有2个按钮如下截图
       <ignore_js_op> 
    我们点击Add Event左侧事件列表会出现如下变化

<ignore_js_op> 
    选中这个后,右侧列表选中stop2的Value Change事件后,点击确定在看该事件分支如下,2个事件就添加在同一个分支当中了,运行程序后,点击stop1或stop2均可让程序停止。
    <ignore_js_op>

超时

超时是事件结构特有的,看名字就知道是怎么回事,即超过一定时间没有触发事件则执行超时事件。如果超时时间设置<=-1,则永远也不执行超时事件,循环处于空闲等待状态。如下图,如果设置超时时间为100,则超过100ms无任何事件触发,则执行超时事件。
    <ignore_js_op> 
    所以如果程序事件功能不多,又需要定时执行一段代码,可以考虑用此方式来完成;如果程序操作频繁,则不建议用此事件来定时执行代码。 
    添加事件方法学会了,有的人在编程时发现点击按钮下去后,发现前面无法响应其他事件了,似乎前面被锁住了一样,这是为什么呢?我们知道添加事件是会有个事件编辑框,上面已经截图了,那你有没有注意在框体下边有个
选项呢
    <ignore_js_op> 
这个选项的意思是:如果本事件框没有执行完毕前锁定前面板。看到这你就应该明白上述问题所在了吧,所以有的时候我们果断去掉这个选项。OK,问题解决了。

[Labview资料] labview事件结构学习的更多相关文章

  1. labview事件结构学习

    编程的主要目的是为了实现用户的某种功能,用户通过用鼠标.键盘.程序内部等触发某种程序动作,从而达到某种结果,这些操作都被称作为事件,LabVIEW中相应这些事件最常用的结构就是“事件结构”.事件结构内 ...

  2. Labview一个循环中放两个事件结构会导致前面板锁定的问题

    建议在同一个循环中,只放置一个事件结构.此时,当一个事件发生时,事件结构将对事件进行处理,然后继续循环,事件结构再等待下一个事件发生. 如在同一个循环中放置两个事件结构,只有在两个事件结构都处理了事件 ...

  3. labview事件结构

    等待事件发生,并执行相应条件分支,处理该事件.事件结构 包括一个或多个子程序框图或事件分支,结构处理时间时,仅有一个子程序框图或分支在执行.等待事件通知时,该结构可超时. 连线边框左上角的“超时”接线 ...

  4. LabVIEW设计模式系列——case结构模拟事件结构

    标准:1.所有按钮的机械动作必须都用释放时触发或者单击时触发,这是为了保证仅仅触发一次动作. 标准:1.使用简单的case结构模拟事件结构.

  5. labview从入门到出家4--用事件结构实现运算功能

    使用事件结构可以快速定位响应界面的操作事件,如按下,拖动,双击的事件.基本上我们所要实现的所有功能,都可以通过条件结构+事件结构去实现,比如后面进阶篇将会讲到的状态机就是通过条件结构和事件结构组成的. ...

  6. LabVIEW设计模式系列——事件结构中值改变事件

    标准:1.将具有值改变事件的控件,放置在其事件结构的值改变页面里.

  7. 机器学习&数据挖掘笔记_24(PGM练习八:结构学习)

    前言: 本次实验包含了2部分:贝叶斯模型参数的学习以及贝叶斯模型结构的学习,在前面的博文PGM练习七:CRF中参数的学习 中我们已经知道怎样学习马尔科夫模型(CRF)的参数,那个实验采用的是优化方法, ...

  8. Libevent(2.1.8)中的事件结构和管理

    Libevent(2.1.8)中的事件结构体 这里的libevent版本为 2.1.8 . libevent中事件的结构体struct event,定义在event_struct.h 中, 这里我们简 ...

  9. Linux 目录结构学习与简析 Part2

    linux目录结构学习与简析 by:授客 QQ:1033553122 ---------------接Part 1-------------- #1.查看CPU信息 #cat /proc/cpuinf ...

随机推荐

  1. python中的单下划线和双下划线意义和作用

    Python中并没有真正意义上的“私有”,类的属性的的可见性取决于属性的名字(这里的属性包括了函数).例如,以单下划线开头的属性(例如_spam),应被当成API中非公有的部分(但是注意,它们仍然可以 ...

  2. matlab中 hold on 与hold off的用法

    matlab中 hold on 与hold off的用法 hold on 是当前轴及图形保持而不被刷新,准备接受此后将绘制 hold off 使当前轴及图形不在具备被刷新的性质 hold on 和ho ...

  3. [刷机教程] 三星Note8 N5100不卡屏的唯一解决办法--落雨刷机教程

    首先我自己写了一个word,在附件里.大概23页,图文并茂.附带三星NOTE8 N5100 MD2下载包 刷机要谨慎啊,小伙伴们. 刷机教程已经上传到我本人的网站:点击进入去看吧.和word一样. h ...

  4. asp.net Context.User.Identity.Name说明

    今天做了一个身份验证页面,基本实现功能,却不能显示当前用户姓名,自己MSDN半天一无所获,问题就在Context.User.Identity.Name:Context是HttpContext类,Use ...

  5. Linux命令行及Vim简单学习记录

    Linux命令行 1.打开命令行 Ctrl+Alt+t 2.目录 显示当前目录的文件列表 ls 跳转至当前目录中的x文件夹 cd x 返回根目录 cd 3.文件 新建文件1.cpp touch ./1 ...

  6. 关于O(n)算法

    首先要明确一点,当数据规模达到百万时需用O(n)算法 如何实现O(n)算法,其实是对原有算法的一种改进 后者说是 原有算法+一点小性质=O(n)算法 下面我将举几个例子来说明这一点: 1.后缀数组中h ...

  7. Android4.0 -- UI控件之 Menu 菜单的的使用(四)

    2.  PopupMenu 菜单的使用 1) PopupMenu 介绍   创建弹出菜单,它一般会在view的上边或者下边弹出菜单[具体看是否有空间],注意弹出菜单是api在11或者更高版本中使用   ...

  8. (转载)Linux一句话精彩

    (转载)http://bjsfly.blog.163.com/blog/static/161276642007845228371/ 0001[url=111]111[/url] [ 本帖最后由 bjc ...

  9. 获得WCF Client端的本地端口 z

    当WCF调用远程服务时,显示该调用的网速或流量.其中比较关键的一步就是需要获得WCF  Client端的本地端口,原来以为是个简单的事情,结果查了1个多小时谷歌,硬是没找到好的法子,只有自己动手了. ...

  10. SQL 2005中char、nchar、varchar、ntext and nvarchar(max)的区别

    原文地址 MS SQL大值数据类型varchar(max).nvarchar(max).varbinary(max) 在MS SQL2005及以上的版本中,加入大值数据类型(varchar(max). ...