labview从入门到出家4--用事件结构实现运算功能
使用事件结构可以快速定位响应界面的操作事件,如按下,拖动,双击的事件。基本上我们所要实现的所有功能,都可以通过条件结构+事件结构去实现,比如后面进阶篇将会讲到的状态机就是通过条件结构和事件结构组成的。一个好的状态机可以帮助我们搭建一个好的程序框架,这将非常有利于我们以后写一些大型程序。在此前,我们先用之前的加减乘除运算熟悉一下事件结构。
1、同样的,按上一章节的操作,或者直接拷贝上一章的程序。新建工程->新建calc主VI->新建子VI,这里把主VI打回原型,把之前的条件结构减掉(其实就是用事件结构代替里面的条件结构,但只是介绍事件结构的使用,不是说事件结构可以取代条件结构)。

2、添加事件结构

我们可以看到事件结构的第一个默认事件是超时事件(目前只有一个事件),左上角那个沙漏状的是超时时间设定,相当于单片机里面的定时中断,我们后面可以右键新建一个数值常量用于设定超时时间。如果没设定超时时间,则在没有其他事件产生或触发前,整个while循环就卡在超时事件这边等待超时事件的发生,因为没有设定超时时间,所以程序一直等待,不响应事件之外的其他操作。

只有一个超时事件

3、添加“布尔”按键的事件,鼠标移到事件结构上方的事件显示图标,右键选择“添加事件分支”。

选择布尔,选择值改变,点击确定就添加了我们的布尔按键的事件了。

鼠标点击事件结构上方的黑下三角,显示有超时和布尔值改变两个事件分支,我们选中布尔值改变的事件分支,在该分支添加相关的程序逻辑。

4、将上一次章条件结构中的程序直接拷贝或者重新编写至事件分支中

5、运行程序试一下功能(后面会出一章讲程序调试操作,我们到时候可以用调试工具查看事件功能的响应情况)。我们发现基本功能和上一章的一致,但是会发现一个问题,点击退出按键的时候界面不响应退出的功能。这时因为while循环中我们添加的是事件结构,也就是程序只有识别到事件发生时,才会执行一次while循环,没事件发生的话,则不会运行其他操作,也就不响应按键的执行了。大家是否还记得那个超时事件呢?

当其他事件不发生时,我们又希望程序继续执行事件结构之外或事件之外的逻辑的话,我们可以在事件机构左侧输入超时时间,一旦超过这个时间程序没有执行其他操作的话,则执行一次超时事件,这样在事件响应超时的情况下就可以执行一次while循环了。

现在再试一下,退出功能是不是恢复了呢!
原创不易,一键三连啦,若有不对或者讲解不到位的地方,欢迎在下方评论,我会及时更改!
labview从入门到出家4--用事件结构实现运算功能的更多相关文章
- labview从入门到出家5(进阶篇)--程序调试以及labview函数库的运用
跟了前面几章的操作流程,相信大家对labview有了一定的认识.其实只要了解了labview的编程思路,再熟悉地运用各个变量,函数以及属性,那么我们就可以打开labview的大门了.跟其他编程语言一样 ...
- labview从入门到出家6(进阶篇)--移位寄存器的使用
前面介绍了如何熟悉和使用Labview自带的库函数以及调试方式,大家后期基本可以凭借这两个方式从入门到出家了,哈哈,后面就靠各位同仁99%的努力了.这篇为啥要讲移位寄存器呢,主要是之前做的项目和经验告 ...
- labview从入门到出家3--制作和调用子VI
当程序越写越大的时候,我们会发现代码界面会比较乱(线太多),那要怎么做可以让代码更简洁一点,我只管直接调用某个功能函数,而不需要在一个VI上面去实现这个功能函数呢?--子VI.好比C语言里面的Main ...
- labview从入门到出家8(进阶篇)--简单好用的状态机
labview的状态机类似于一个软件框架的基本单元,好的软件框架和软件思路采用一个好的状态机,就如虎添翼了.这章给大家讲一个本人常用的一个状态机,基本上以前的项目都是建立在这个状态机上完成的,当然网上 ...
- labview从入门到出家1--第一个加法程序
概述: Labview在众多编程语言中排名靠后,显然在当今互联网,物联网时代并非主流语言.但是俗话说行行 出状元,即便不是立身于某个主流的领域,用好了依旧可以独领风骚,而且Labview对于硬件出身的 ...
- labview从入门到出家9(进阶篇)--串口通讯
Labview在工控领域,如产线,实验室等环境用得较多,其中与仪器通讯控制的方式有串口(RS232,RS485,TTL),GPIB,网口,CAN等,其中串口在仪器还有单片机控制中用来调试居多.(很 ...
- labview从入门到出家7(进阶篇)--队列的使用
本节简单讲解队列在Labview中的使用,队列你可以认为就是一组先进先出的数据列表,在Labview中常用来缓存和传递数据.用了这么久的队列,个人认为有个方便的地方在于数据传递的把控,不管是局部变量还 ...
- labview从入门到出家2--将“加法程序”制作成“exe应用程序”
1.上一章主要讲了如何跑我们的第一个加法程序(这里向第一个程序的鼻祖"hello world"致敬),这一章我们直接进入主题,将我们写的程序生成exe文件放桌面运行. 2.要生成e ...
- [Labview资料] labview事件结构学习
编程的主要目的是为了实现用户的某种功能,用户通过用鼠标.键盘.程序内部等触发某种程序动作,从而达到某种结果,这些操作都被称作为事件,LabVIEW中相应这些事件最常用的结构就是“事件结构”.事件结 ...
随机推荐
- python @符号用法的简单理解
一.用作函数修饰符 作用是为现有函数增加额外的功能,常用于插入日志.性能测试.事务处理等等 创建函数修饰符的规则:(1)修饰符是一个函数(2)修饰符取被修饰函数为参数(3)修饰符返回值取代被修饰函数 ...
- vue - vue基础/vue核心内容
终于算是顺利进入vue了,确实也只有学了过后才知道,之前三过vue而不学,确实是对的,现在进来了一点都不后悔,ajax.node.js.promise.webpack.git等等确实是除了三大基础外还 ...
- C++基础-5-运算符重载(加号,左移,递增,赋值,关系,函数调用)
5. 运算符重载 5.1 加号运算符重载 1 #include<iostream> 2 using namespace std; 3 4 // 加号运算符重载 5 6 class Per ...
- Windows与Linux如何实现相互远程桌面连接?
今天跟大家一起讨论下,利用Windows自带的远程桌面连接工具,实现远程Linux桌面及在Linux系统中远程Windows桌面 一.Windows远程Linux桌面 1)本次实验以CentOS 7. ...
- OpenStack平台镜像优化
在使用打快照方式制作镜像后,镜像的大小会变得非常大,比如一个基础的CentOS镜像大小为400M左右,但是使用打快照方式制作的镜像大小会有1个G左右,具体的大小还要根据安装的东西来实际情况实际分析. ...
- logging、openpyxl、第三方模块下载
### 日志模块的组成部分 ```pythonimport logging# 1.logger对象:产生日志logger = logging.getLogger('转账记录')# 2.filter对象 ...
- 821. Shortest Distance to a Character - LeetCode
Question 821. Shortest Distance to a Character Solution 思路:遍历字符串S,遇到与字符C相等就分别向左/右计算其他字符与该字符的距离,如果其他字 ...
- 112_Power Pivot 销售订单按 sku 订单类型特殊分类及占比相关
博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一.背景 经过了一个双十一后,天天面对的都是订单.于是有了关于销售订单按sku类型分类的需求. 说明:(暂且不讨论这样分类 ...
- 利用 Onekey Theater 改善屏幕显示效果
介绍 Onekey Theater(一键影音),它是联想笔记本带的一键影音功能,使用它能够更改笔记本的显示效果和音效,以此模仿电影院的效果,为用户带来更好是视听效果及享受. 作用 之前的联想笔记本自带 ...
- js算法-埃筛法