labview事件结构学习
编程的主要目的是为了实现用户的某种功能,用户通过用鼠标、键盘、程序内部等触发某种程序动作,从而达到某种结果,这些操作都被称作为事件,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资料] labview事件结构学习
编程的主要目的是为了实现用户的某种功能,用户通过用鼠标.键盘.程序内部等触发某种程序动作,从而达到某种结果,这些操作都被称作为事件,LabVIEW中相应这些事件最常用的结构就是“事件结构”.事件结 ...
- labview事件结构
等待事件发生,并执行相应条件分支,处理该事件.事件结构 包括一个或多个子程序框图或事件分支,结构处理时间时,仅有一个子程序框图或分支在执行.等待事件通知时,该结构可超时. 连线边框左上角的“超时”接线 ...
- Labview一个循环中放两个事件结构会导致前面板锁定的问题
建议在同一个循环中,只放置一个事件结构.此时,当一个事件发生时,事件结构将对事件进行处理,然后继续循环,事件结构再等待下一个事件发生. 如在同一个循环中放置两个事件结构,只有在两个事件结构都处理了事件 ...
- LabVIEW设计模式系列——case结构模拟事件结构
标准:1.所有按钮的机械动作必须都用释放时触发或者单击时触发,这是为了保证仅仅触发一次动作. 标准:1.使用简单的case结构模拟事件结构.
- labview从入门到出家4--用事件结构实现运算功能
使用事件结构可以快速定位响应界面的操作事件,如按下,拖动,双击的事件.基本上我们所要实现的所有功能,都可以通过条件结构+事件结构去实现,比如后面进阶篇将会讲到的状态机就是通过条件结构和事件结构组成的. ...
- labview程序结构
三种范式:面向过程.面向事件,面向对象:六种模式:标准状态机.消息队列.生产者/消费者(事件).生产者/消费者(数据).用户界面事件处理.主/从 事件结构相当于是一个while语句里边嵌套了一个条件结 ...
- 机器学习&数据挖掘笔记_24(PGM练习八:结构学习)
前言: 本次实验包含了2部分:贝叶斯模型参数的学习以及贝叶斯模型结构的学习,在前面的博文PGM练习七:CRF中参数的学习 中我们已经知道怎样学习马尔科夫模型(CRF)的参数,那个实验采用的是优化方法, ...
- Libevent(2.1.8)中的事件结构和管理
Libevent(2.1.8)中的事件结构体 这里的libevent版本为 2.1.8 . libevent中事件的结构体struct event,定义在event_struct.h 中, 这里我们简 ...
- Linux 目录结构学习与简析 Part2
linux目录结构学习与简析 by:授客 QQ:1033553122 ---------------接Part 1-------------- #1.查看CPU信息 #cat /proc/cpuinf ...
随机推荐
- jeecg 定时任务配置用法
方式一: 1.定时任务配置文件 src/main/resources/spring-mvc-timeTask.xml 2.新定义一个定时任务举例 a.配置定时任务,配置文件spring-mvc-tim ...
- Matlab实现图像切割
以下使用极小值点阈值选取方法,编写MATLAB程序实现图像切割的功能. 极小值点阈值选取法即从原图像的直方图的包络线中选取出极小值点, 并以极小值点为阈值将图像转为二值图像 clear all; cl ...
- 【Android】10.1 扩展组件库和其他视图--本章示例主界面
分类:C#.Android.VS2015: 创建日期:2016-02-18 1.主界面运行截图 2.MainActivity.cs文件中对应的代码 chItems.Add(new Chapter() ...
- SQL 从查询结果里查询
有orders表: 我想要从从表中查出每天电动车和手机各自的销售总额.这个需求还是蛮简单的,仅仅须要依据createtime和product group by即可了.以下是我写的SQL语句: SELE ...
- 每日英语:Apple's Latest iPhone Puts Focus Back on Fingerprint Security
Apple's latest product launch could breathe new life into a technology that failed to take hold the ...
- 基于Cocos2d-x学习OpenGL ES 2.0之多纹理
没想到原文出了那么多错别字,实在对不起观众了.介绍opengl es 2.0的不多.相信介绍基于Cocos2d-x学习OpenGL ES 2.0之多纹理的,我是独此一家吧.~~ 子龙山人出了一个系列: ...
- mongodump 失败且导致mongo服务挂掉【本质原因,wt文件损坏】
====================================================== 标题遇到的问题是我要解决的问题的中间环节. 原本问题是:需要在之前standlone的Mo ...
- LeetCode 新题: Find Minimum in Rotated Sorted Array 解题报告-二分法模板解法
Find Minimum in Rotated Sorted Array Question Solution Suppose a sorted array is rotated at some piv ...
- flask中的g、add_url_rule、send_from_directory、static_url_path、static_folder的用法
Flask中的g对象是个很好的东西,主要用于在一个请求的过程中共享数据.可以随意给g对象添加属性来保存数据,非常的方便,下面的代码是一个使用g对象的例子.下面的这个例子会使用random随机产生一个0 ...
- iOS网络NSURLConnection使用详解
一.整体介绍 NSURLConnection是苹果提供的原生网络访问类,但是苹果很快会将其废弃,且由NSURLSession(iOS7以后)来替代.目前使用最广泛的第三方网络框架AFNetworkin ...