使用事件结构可以快速定位响应界面的操作事件,如按下,拖动,双击的事件。基本上我们所要实现的所有功能,都可以通过条件结构+事件结构去实现,比如后面进阶篇将会讲到的状态机就是通过条件结构和事件结构组成的。一个好的状态机可以帮助我们搭建一个好的程序框架,这将非常有利于我们以后写一些大型程序。在此前,我们先用之前的加减乘除运算熟悉一下事件结构。

1、同样的,按上一章节的操作,或者直接拷贝上一章的程序。新建工程->新建calc主VI->新建子VI,这里把主VI打回原型,把之前的条件结构减掉(其实就是用事件结构代替里面的条件结构,但只是介绍事件结构的使用,不是说事件结构可以取代条件结构)。

2、添加事件结构

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

只有一个超时事件

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

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

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

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

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

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

现在再试一下,退出功能是不是恢复了呢!

原创不易,一键三连啦,若有不对或者讲解不到位的地方,欢迎在下方评论,我会及时更改!

labview从入门到出家4--用事件结构实现运算功能的更多相关文章

  1. labview从入门到出家5(进阶篇)--程序调试以及labview函数库的运用

    跟了前面几章的操作流程,相信大家对labview有了一定的认识.其实只要了解了labview的编程思路,再熟悉地运用各个变量,函数以及属性,那么我们就可以打开labview的大门了.跟其他编程语言一样 ...

  2. labview从入门到出家6(进阶篇)--移位寄存器的使用

    前面介绍了如何熟悉和使用Labview自带的库函数以及调试方式,大家后期基本可以凭借这两个方式从入门到出家了,哈哈,后面就靠各位同仁99%的努力了.这篇为啥要讲移位寄存器呢,主要是之前做的项目和经验告 ...

  3. labview从入门到出家3--制作和调用子VI

    当程序越写越大的时候,我们会发现代码界面会比较乱(线太多),那要怎么做可以让代码更简洁一点,我只管直接调用某个功能函数,而不需要在一个VI上面去实现这个功能函数呢?--子VI.好比C语言里面的Main ...

  4. labview从入门到出家8(进阶篇)--简单好用的状态机

    labview的状态机类似于一个软件框架的基本单元,好的软件框架和软件思路采用一个好的状态机,就如虎添翼了.这章给大家讲一个本人常用的一个状态机,基本上以前的项目都是建立在这个状态机上完成的,当然网上 ...

  5. labview从入门到出家1--第一个加法程序

    概述: Labview在众多编程语言中排名靠后,显然在当今互联网,物联网时代并非主流语言.但是俗话说行行 出状元,即便不是立身于某个主流的领域,用好了依旧可以独领风骚,而且Labview对于硬件出身的 ...

  6. labview从入门到出家9(进阶篇)--串口通讯

    ​ Labview在工控领域,如产线,实验室等环境用得较多,其中与仪器通讯控制的方式有串口(RS232,RS485,TTL),GPIB,网口,CAN等,其中串口在仪器还有单片机控制中用来调试居多.(很 ...

  7. labview从入门到出家7(进阶篇)--队列的使用

    本节简单讲解队列在Labview中的使用,队列你可以认为就是一组先进先出的数据列表,在Labview中常用来缓存和传递数据.用了这么久的队列,个人认为有个方便的地方在于数据传递的把控,不管是局部变量还 ...

  8. labview从入门到出家2--将“加法程序”制作成“exe应用程序”

    1.上一章主要讲了如何跑我们的第一个加法程序(这里向第一个程序的鼻祖"hello world"致敬),这一章我们直接进入主题,将我们写的程序生成exe文件放桌面运行. 2.要生成e ...

  9. [Labview资料] labview事件结构学习

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

随机推荐

  1. vue3 数据可视化项目

    可视化面板介绍 ​ 应对现在数据可视化的趋势,越来越多企业需要在很多场景(营销数据,生产数据,用户数据)下使用,可视化图表来展示体现数据,让数据更加直观,数据特点更加突出. 01-使用技术 完成该项目 ...

  2. 了解磁盘IO的那些事

    了解磁盘IO的那些事 我们作为一名开发,经常耳熟能详的一句话,就是提高程序的性能.对于一个应用程序存在问题的直观体现:页面打开很慢,需要等待.造成这样的问题的主要原因有以下几种:1.网络问题.带宽和网 ...

  3. 同时将代码备份到Gitee和GitHub

    同时将代码备份到Gitee和GitHub 如何将GitHub项目一步导入Gitee 如何保持Gitee和GitHub同步更新 如何将GitHub项目一步导入Gitee 方法一: 登陆 Gitee 账号 ...

  4. 154寻找旋转排序数组中的最小值II

    title: 寻找旋转排序数组中的最小值II 题目描述 题目链接:寻找旋转排序数组中的最小值II 解题思路 和上题同理:数组特点有 nums[mid] < nums[right],最小值肯定在m ...

  5. Invocation failed Unexpected end of file from server java.lang.RuntimeException: Invocation failed Unexpected end of file from server

    Android studio 提交 push的时候报错. Invocation failed Unexpected end of file from serverjava.lang.RuntimeEx ...

  6. Json序列化与反序列化导致多线程运行速度和单线程运行速度一致问题

    紧跟上篇文章 十个进程开启十个bash后一致写入命令执行完毕之后产生了很多很多的文件,博主需要对这些文件同意处理,也就是说对几十万个文件进行处理,想了又想,单线程处理那么多数据肯定不行,于是乎想到了使 ...

  7. php魔术方法小结

    php魔术方法 __construct() __construct(mixed ...$values = ""): void PHP 允许开发者在一个类中定义一个方法作为构造函数. ...

  8. Nginx分片限流

    一.全局限流 在http节点中添加 # 创建限流规则 limit_req_zone $binary_remote_addr zone=addr:10m rate=1r/s;# 客户端进行限流 # li ...

  9. 每天一个 HTTP 状态码 200

    200 OK 话不多说,这个状态码应该是最最最常用的了,无人不知,无人不晓: 就是表示请求成功的意思,你若安好,便是晴天. 摘自对于 https://www.google.com/ GET 请求的响应 ...

  10. 声学感知刻度(mel scale、Bark scale、ERB)与声学特征提取(MFCC、BFCC、GFCC)

    梅尔刻度 梅尔刻度(Mel scale)是一种由听众判断不同频率 音高(pitch)彼此相等的感知刻度,表示人耳对等距音高(pitch)变化的感知.mel 刻度和正常频率(Hz)之间的参考点是将1 k ...