LabVIEW使用多个事件结构来处理同一个事件

简介: LabVIEW使用多个事件结构来处理同一个事件

LabVIEW使用多个事件结构来处理同一个事件


想根据应用程序的两个不同的状态,用一个事件来触发两个不同的操作。比如,当第一次按下某个按钮时,配置测试。当第二次按下时,测试开始运行。创建了两个不同的事件结构,把每一个结构都配置了一个处理“value changed”的事件,但是它们由数据线或者顺序结构隔开,然后运行VI。当程序运行的时候,整个应用程序会在第一个事件结构上等待,但是当第一个事件发生,代码执行后,第二个事件结构也会同样响应。如果处理的是“mouse down”的事件,第一个事件结构会响应,但是第二个事件结构永远不会响应(即使让这一事件重复多次发生,第二个事件结构永远不会响应)。为什么“value changed"的事件能够导致两个事件结构都响应,但是"mouse down"事件只能够让第一个事件结构响应并且第二个事件结构永远不会响应呢?应当如何创建事件才能使第二个事件结构响应第二个事件的发生呢?


解答: 事件结构和LabVIEW中别的结构和函数不同,它并不是按照LabVIEW中的数据流操作的概念的。“value changed”和“mouse down”事件之间的区别是前者是一个"通报事件"("notify event")而后者是一个"过滤事件"("filter event")。


对于通报事件,当为相同的通报事件配置两个事件结构时,当事件发生时,每一个结构会分别注册该事件,然后他们会被放在事件队列中。然后他们会响应并且处理事件。这个是期待的结果,因为两个事件结构都会响应。然而,第二个事件结构直到数据流到达它才会响应。

df40f4480dd7adce2f314f892ce9407d.png

编辑


添加图片注释,不超过 140 字(可选)



对于过滤事件,当为相同的过滤事件配置两个事件结构时,只有第一个事件结构会被注册来处理这个过滤事件,这个是预料中的结果,因为不能够把一个事件过滤两次。永远不要在不同的,独立的事件结构中注册同一个过滤事件。


如果想通过一个按钮来响应两个不同的事件结构,需要考虑使用通报事件,或者把两个按钮放在前面板的同一个地方,然后通过程序改变它们的可见性。这样的话用户不会在同一个地方看到两个按钮,因此能够触发相对应的事件。


如果想在两个不同的结构中处理相同的过滤事件(“mouse down”), 妥协的方法是用一个事件结构来处理两个情况。一个简单的例子是把一个单一事件结构放在一个for循环中.然后把一个case结构放在事件结构内.根据循环的次数来决定执行哪一个case。因此一个事件结构能够处理这个事件并且结合事件改变操作。


LabVIEW、LabVIEW开发、LabVIEW编程、LabVIEW程序


上文中提到的例子和资料,均在word中的附件里,可点击下载。进一步了解,可联系们。

相关文章
西门子S7-1200程序状态监视,监视表格的使用方法,如何使用交叉引用列表
本篇我们来学习西门子S7-1200程序状态监视、监视表格、交叉引用的使用方法。
西门子S7-1200程序状态监视,监视表格的使用方法,如何使用交叉引用列表
|
16天前
|
SQL 存储 算法
基于对象 - 事件模式的数据计算问题
基于对象-事件模式的数据计算是商业中最常见的数据分析任务之一。对象如用户、账号、商品等,通过唯一ID记录其相关事件,如操作日志、交易记录等。这种模式下的统计任务包括无序计算(如交易次数、通话时长)和有序计算(如漏斗分析、连续交易检测)。尽管SQL在处理无序计算时表现尚可,但在有序计算中却显得力不从心,主要原因是其对跨行记录运算的支持较弱,且大表JOIN和大结果集GROUP BY的性能较差。相比之下,SPL语言通过强化离散性和有序集合的支持,能够高效地处理这类计算任务,避免了大表JOIN和复杂的GROUP BY操作,从而显著提升了计算效率。
|
3月前
两个按钮共享一个函数事件
两个按钮共享一个函数事件
18 1
|
5月前
|
JavaScript 前端开发
大事件项目55----基地址优化封装和便于以后服用
大事件项目55----基地址优化封装和便于以后服用
|
6月前
LabVIEW使用通道线在并行代码段之间传递数据
LabVIEW使用通道线在并行代码段之间传递数据
98 0
|
物联网
STM32:TIM输入捕获硬件部分(内含:1.输入捕获简介+2.频率测量+3.通用/高级定时器的输入捕获电路分析(重点)+4.主从触发模式+5.输入捕获基本结构(重点)+6.PWM基本结构)
STM32:TIM输入捕获硬件部分(内含:1.输入捕获简介+2.频率测量+3.通用/高级定时器的输入捕获电路分析(重点)+4.主从触发模式+5.输入捕获基本结构(重点)+6.PWM基本结构)
521 0
STM32:TIM输入捕获硬件部分(内含:1.输入捕获简介+2.频率测量+3.通用/高级定时器的输入捕获电路分析(重点)+4.主从触发模式+5.输入捕获基本结构(重点)+6.PWM基本结构)
|
监控 Java
并发编程 - 利用Event Bus模式实现目录文件变化捕捉
并发编程 - 利用Event Bus模式实现目录文件变化捕捉
53 0
[虚幻引擎插件介绍] DTGlobalEvent 蓝图全局事件, Actor, UMG 相互回调,自由回调通知事件函数,支持自定义参数。
本插件可以在虚幻的蓝图 Actor, Obiect,UMG 里面指定绑定和执行消息,可带自定义参数。 参数支持 Bool,Byte,Int,Int64,Float,Name,String,Text,Vector,Rotator,Transform,Object,Actor。
88 0
Vue3新增的两个生命周期分析解释【onRenderTracked()状态跟踪和onRenderTriggered() 状态触发】
Vue3新增的两个生命周期分析解释【onRenderTracked()状态跟踪和onRenderTriggered() 状态触发】
|
开发者
驱动开发:基于事件同步的反向通信
在之前的文章中`LyShark`一直都在教大家如何让驱动程序与应用层进行`正向通信`,而在某些时候我们不仅仅只需要正向通信,也需要反向通信,例如杀毒软件如果驱动程序拦截到恶意操作则必须将这个请求动态的转发到应用层以此来通知用户,而这种通信方式的实现有多种,通常可以使用创建Socket套接字的方式实现,亦或者使用本章所介绍的通过`事件同步`的方法实现反向通信。
202 0