电子工程师技术服务社区
- 社区首页
- 下载
- 2 队列消息处理器.pdf
资料描述
队列消息处理器
“队列消息处理器(qmh)”模板便于并行执行多段代码,以及在段与段之间发送数据。
每段代码表示一个任务,如采集数据。其设计模式和状态机相似。这种设计模式可以
将每个任务分成多个状态。
qmh 模板是生产者/消费者设计模式的一种实现,其中用户界面(生产者)负责生成
消息,任务(消费者)负责处理消息。但在qmh 模板中,也可从消费者循环生成消
息。
该模板包含一个生产者循环和一个消费者循环。用户可根据需求添加消费者循环。
范例
关于修改本模板以用于测量应用程序的范例,见创建项目对话框中的“连续测量和记
录”范例项目。
开发者走查
关于本模板开发者走查的详细信息见ni.com。
系统要求
labview 基础版、完整版或专业版开发系统
使用条件
omh 模板用于多个任务并行执行的应用程序,且速率通常各不相同。例如,连续采集、
记录并显示两个信号(一个rs-232 信号和一个模拟信号)的应用程序。这些信号发
生的速率各不相同,因此应用程序必须包含两个并行运行的循环。此外,每个循环分
为以下状态:
初始化数据采集硬件
采集数据
将采集数据记录至磁盘
在波形图表中显示采集到的数据
将硬件设置为安全状态
停止数据采集并关闭硬件
该应用程序需要一个交互式用户界面,即应用程序执行其他命令时,用户可以单击按
钮。因此,应用程序需要第三个并行循环,用于持续监控前面板事件,例如下列命令:
开始rs-232 采集
停止rs-232 采集
启用rs-232 记录
禁用rs-232 记录
开始模拟数据采集
停止模拟数据采集
启用模拟数据记录
禁用模拟数据记录
qmh 模板提供一个编写此类应用程序的起点。
概述
该模板重复执行下列步骤:
1. 用户与前面板交互,导致事件处理循环(ehl)中的事件结构生成一个消息。
labview 将消息存储在队列中。
2. 消息处理循环(mhl)从消息队列中读取消息,将消息清除。
3. 消息本身是一个字符串,匹配mhl 条件结构的一个分支。因此,读取消息将
执行条件结构中对应的分支。该分支对应于一个消息,因而被称为消息框图。
4. (可选)消息框图生成另一个消息,存储在消息队列中。
注:
ehl 为生产者循环。mhl 为消费者循环。这两个循环并行运行,且由消息队
列连接,便于循环之间进行通