LabVIEW的DQMH 框架

​DQMH(Queued Message Handler 增强框架):全球最受欢迎的LabVIEW 第三方框架,免费开源,专为大型 LabVIEW 应用开发设计,适配 CLAD/CLD 级开发者,基于 NI QMH 模式优化,低门槛且功能完善。

基础术语

(一)通用术语

  1. 进程(Process):持续运行的代码,通常是含一个及以上 while 循环的 VI

  2. 重入性(Reentrancy):同一 VI 的多个实例可同时运行的能力

  3. 应用程序接口(API):逻辑组织的相关函数组

  4. 业务逻辑(Business Logic):非框架自带的应用专属代码,需按规范编写在指定位置

  5. 同步进程(Synchronous Process):有序操作,依赖其他进程完成

  6. 异步进程(Asynchronous Process):独立操作,与其他进程并行运行

  7. 队列(Queue):LabVIEW API,用于进程内 / 进程间数据传递

  8. 事件(Event):LabVIEW API,用于进程内 / 进程间数据传递

  9. 设计模式(Design Pattern):执行同步 / 异步代码的理论机制(如状态机、队列状态机、生产者 / 消费者、QMH)

  10. 架构(Architecture):一种 / 多种设计模式的实际实现,便于异步代码执行(如 JKI 状态机)

  11. 框架(Framework):企业级架构,含文档和工具以提升开发体验(如 DQMH、Actor Framework)

(二)DQMH 专属术语

  1. DQMH 模块(DQMH Module):框架基础构建块,含清晰公共 API 的异步进程(.lvlib 格式),支持单例(非重入)/ 可克隆(重入)

  2. 请求(Request):外部向模块发起的操作指令,基于用户事件实现,可按需返回结果(公共 API 中的 VI)

  3. 广播(Broadcast):模块向外部发送的通知,基于用户事件实现,不依赖外部注册

  4. 主 VI(Main VI):应用的核心 QMH VI

  5. API 测试器(API Tester):测试模块公共 API 的 VI,支持验证模块运行状态,是核心实用工具

  6. 脚本工具(Scripting Tools):框架核心工具,支持模块 / 请求 / 广播的创建 / 重命名 / 删除 / 验证,强制最佳开发实践

NI QMH与 DQMH

NI QMH 痛点 DQMH 优化
进程间通信复杂 保留队列(进程内通信),新增用户事件(进程间通信)
多模块系统扩展性差 模块化设计,脚本工具简化架构级修改
进程 VI 复用性有限 模块独立封装,公共 API 标准化,降低耦合
难支持重入性 原生支持单例 / 可克隆模式,无需手动修改
架构级修改繁琐易出错 脚本工具自动化处理(如新增循环帧)

DQMH 核心特性

  1. 通信机制:进程内用队列,进程间用用户事件

  2. 工具支持:脚本工具自动化框架级操作,模块升级时自动应用 bug 修复

  3. 内置能力:异步编程核心功能(启动 / 停止控制、错误管理、面板管理、调试支持)

  4. 生态优势:活跃开发者社区,DQMH 联盟响应功能需求

  5. 低门槛:极少依赖 LabVIEW 类,QMH 用户易上手

开发者指南

(一)模块开发者

  1. 保持 API 测试器更新,使用脚本工具进行框架级修改,禁止手动修改框架 VI

  2. 全面文档化(模块描述、事件描述),可通过 Antidoc 自动生成项目文档

  3. 可创建模块模板提升开发效率

(二)模块使用者

  1. VIPM 安装的模块可直接在面板调用,非安装模块需从模块.lvlib 的 Public API 文件夹获取请求,从事件结构的事件列表获取广播

  2. 参考 API 测试器 VI 学习 API 用法并验证模块运行状态

相关推荐
我比怪兽还怪2 天前
simulink导出dll labview调用
labview
LabVIEW开发2 天前
LabVIEW 调用 Win10 触控键盘(TabTip.exe)说明
labview·labview知识·labview功能·labview程序·触屏键盘
ewb_topic5 天前
重新定义PC仪器:我们发明了一种方法,给“看不见”的软件延迟装上了刻度
labview·虚拟仪器
专注VB编程开发20年13 天前
上位机开发-工厂流水线机器视频VisionPro、LabVIEW 实现多物品识别的
labview·机器视觉·visionpro
9稳17 天前
基于PLC的液体自动混合加热控制系统设计
开发语言·网络·数据库·labview·plc
LabVIEW开发18 天前
LabVIEW 开发内燃机缸压采集与分析系统
labview·labview知识·labview功能·labview程序
LabVIEW开发18 天前
LabVIEW脑信息获取与成像系统
labview·labview知识·labview功能·labview程序
Gentle58618 天前
关于labview一些记录
labview
Gentle58618 天前
labview实现滚动字符串
labview
LabVIEW开发20 天前
LabVIEW系统资源监控:CPU / 内存 / 硬盘
labview·labview知识·labview功能·labview程序