【AMC】异步消息通信框架讲解(三)

         

此模板重复执行以下步骤:

  1. 用户与前面板交互,导致事件处理循环 (EHL) 中的事件结构产生一条消息。LabVIEW 将消息存储在队列中。
  2. 消息处理循环 (MHL) 从消息队列中读取消息并删除该消息。
  3. 消息是与 MHL 中条件结构的一个子图匹配的字符串。因此,读取消息会导致条件结构中相应的子图执行。该子图称为 消息图 ,因为它对应于一条消息。
  4. 可选地,消息图生成另一条消息,并将其存储在消息队列中。
     

注意:

  • EHL 是生产者循环,MHL 是消费者循环,这些循环并行运行,并通过消息队列连接,从而方便循环之间的通信。
  • 消息队列是用于存储消息以供使用的 LabVIEW 队列。由于 EHL 将消息发送到此队列而不是直接发送到 MHL,因此 EHL 可以在 MHL 不使用消息时生成消息。每个消息队列都属于单个 MHL。
  • MHL 每次迭代都会读取消息队列中最旧的消息,然后执行相应的消息图。虽然 MHL 主要消费消息,但它也可以生成消息。
  • 您的应用程序可以有多个 MHL。每个 MHL 对应应用程序执行的一项任务,例如获取或记录数据。
  • 请注意上图中的 UI 数据集群。此集群是 MHL 中每个消息图都可以访问和修改的数据。在此模板中,集群被定义为 typedef,UI Data.ctl。每个 typedef 都属于单个 MHL。

QMH 程序示例

请参阅连续测量和记录样本项目,了解将 QMH 模板适配到测量应用程序的示例。

  1. 启动 LabVIEW 并选择“创建项目”。从“创建项目”对话框中,启动“连续测量和记录”示例项目。
  2. 在项目资源管理器窗口中,打开并运行Main.vi。
  3. 单击前面板控件并观察显示指示器更新。
  4. 查看框图。注意事件处理循环、消息处理循环以及任务之间的交互。
  5. 使用突出显示执行来观察框图循环之间发送的数据流和消息流。
  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值