LabVIEW 队列消息处理器设计

LabVIEW 队列消息处理器设计

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

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

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

队列状态机学习概述

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

队列状态机函数

获取队列引用函数

元素入队列函数

元素出队列函数

队列最前端插入元素函数

释放队列引用函数

队列消息处理器基本结构

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

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

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

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

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

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

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

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

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

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

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

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

相关推荐
魔都大虾22 分钟前
旧时光里面有那些情话句子 什么比较热门
笔记
Java成神之路-26 分钟前
【算法刷题笔记】全题型导航目录
笔记·算法
zhangrelay35 分钟前
云课实践速通系列-基础篇汇总-必修-通识基础和专业基础-2026--工科--自动化、电气、机器人、测控等
linux·笔记·单片机·学习·ubuntu·机器人·自动化
计算机安禾38 分钟前
【计算机网络】第5篇:网桥学习与生成树算法——环路拓扑中的路径收敛问题
学习·计算机网络·算法
05候补工程师42 分钟前
【编译原理】自顶向下语法分析深度解析:从 LL(1) 文法判定、改写到预测分析表
经验分享·笔记·考研·自然语言处理
知识分享小能手1 小时前
R语言入门学习教程,从入门到精通,R语言局部整体型数据可视化(10)
学习·信息可视化·r语言
承渊政道2 小时前
【动态规划算法】(完全背包问题从状态定义到空间优化)
数据结构·c++·学习·算法·leetcode·动态规划·哈希算法
玩转单片机与嵌入式2 小时前
学习嵌入式AI(TInyML),只需掌握这点python基础即可!
人工智能·python·学习
ErizJ2 小时前
Linux|学习笔记
linux·笔记·学习
大数据三康2 小时前
Java字符统计:从输入到输出的完整解析
java·学习·循环结构