LabVIEW 队列消息处理器设计

LabVIEW 队列消息处理器设计

队列消息处理器升级模式详解

当我们需要动态地根据用户的输入改变状态序列时,状态机模式的劣势就显现出来,因为其状态序列是固定规定好的,一旦程序运行越来就无法修改。为此,需要引入消息队列模式,通过建立队列缓冲区来解决这个问题。这种模式也称为"队列型状态机模式",但是由于其应用和原理都并不局限于状态机模式,所以为了避免混淆,一般称为"消息队列处理模式"

程序员可以将消息队列看成一段存储空间,用来暂存各种消息。之所以称为队列,是由其消息处理机制决定的,按照FIFO(先进先出)的思想,需要使用队列的方式处理各种消息。在程序初始化时,首先创建消息队列缓冲器,程序可以根据发生的事件将相应的消息投入到消息队列中,消息处理机构会实时探测消息队列中的消息并按照消息处理机制进行处理:当消息被接收后程序会执行相应的代码并将该消息从消息队列中删除;当接收到消息"Exit"时,应用程序会停止运行,并释放队列空间。

队列状态机学习概述

建立消息队列的方式有多种,常用的是使用队列函数和数组。队列函数位于"同步→队列操作"函数子选板中,常用的4个是获取队列引用,元素入队列,元素出队列和释放队列引用。而使用数组操作函数对消息进行操作,结构简单,只需要配合移位寄存器使用即可,不需要额外的函数而且不需要使用特别的函数手动销毁队列空间,在应用程序退出时会自动销毁队列。

队列状态机函数

获取队列引用函数

元素入队列函数

元素出队列函数

队列最前端插入元素函数

释放队列引用函数

队列消息处理器基本结构

因为这个消息分支它条件结构为字符型,所以说它必须要有默认分支。

初始化我们首先要创建一个获取一个队列的引用。我们首先去排一个人去排一个元素去排队。然后这时候我们获取引用传递到两个while循环里面

(元素入队列函数)这边既然这边入了一个元素,(元素出队列函数)那这边肯定会出来一个元素。那当它入一个元素,它出一个元素之后,我们通过消息处的一个解绑,来到消息分支可以获取到。

进入"Init"。初始化来之后,先把显示的消息给初始化掉,给清空掉。

接下来我们就进入一个事件等待的过程。因为它初始化完了之后,它下一步操作没有进行跳转,所以说他下一步就一直停留在等待的这个环节里面。

再接下来看事件处理循环。他有三个动作。

如果按下了动作1 按钮,事件这个循环里面首先它会收集到一个动作1的值改变的事件。

首先往动作1这个队列里面发送了一个元素,发送的元素是就是Action1 和1个变体。

来到消息处理循环,既然那边发了一个元素,这边肯定又会收到一个元素。通过解绑来到消息分支

运行"Action 1"。跳到更新显示的这个分支里,它进行了一个跳转。然后往这个消息数据里,也就是往这个变体里发送了一个动作。在经过变体里发送了一个动作。

更新显示环节里来之后,首先把这个变体转换为我们就是字符串数据,然后显示出来结束。

执行停止的一个条件。当停止时间按下之后,它跳到退出里面来,这时候显示退出数据销毁引用,这时候给一个停止的条件,然后它退出。

相关推荐
RaLi和夕1 小时前
硬件电路设计学习笔记1.三极管开关电路设计
笔记·嵌入式硬件·学习
Tonya431 小时前
测开学习DAY38
学习
小龙2 小时前
【理论知识】主流测井技术优缺点对比笔记
笔记·石油勘探·测井技术·测井
骑鱼过海的猫1232 小时前
【git】git学习记录
git·学习·elasticsearch
QT 小鲜肉2 小时前
【孙子兵法之下篇】010. 孙子兵法·地形篇深度解析与现代应用
人工智能·笔记·读书·孙子兵法
QT 小鲜肉2 小时前
【孙子兵法之下篇】010. 孙子兵法·地形篇
人工智能·笔记·读书·孙子兵法
weixin_409383122 小时前
简单四方向a*寻路学习记录3 将角色世界坐标传给地图数组 计算上下左右四个格子到目的地的f 选择最小的f方向
学习·a星
学编程的闹钟3 小时前
浅谈VMProtectV2.13.8的IAT修复
学习
盐焗西兰花3 小时前
鸿蒙学习实战之路-多端交互最佳实践
学习·交互·harmonyos
AI绘画哇哒哒3 小时前
AI 智能体长期记忆系统架构设计与落地实践
人工智能·学习·算法·ai·程序员·产品经理·转行