Sign Up

DQMH Framework: Core by DQMH Consortium - Toolkit for LabVIEW Download

DQMH: Developer Experience that makes you smile

D Discussion Watch * 56 ↓39,287
 screenshot
Version7.1.0.1503
ReleasedMay 19, 2025
Publisher DQMH Consortium
License DQMH License
LabVIEW VersionLabVIEW>=16.0
Operating System Windows, Mac, and Linux
Dependencies delacor_lib_delacor_qmh_event_scripter   delacor_lib_qmh   delacor_lib_qmh_temperature_chamber_examples   delacor_lib_qmh_project_template   delacor_lib_dqmh_documentation  
Used By hse_lib_hse_application_template_wizard   illuminatedg_lib_summer_of_labview___wordle   neosoft_technologies_inc_lib_dqmh_new_menu   pantherlab_lib_panther_dashboard   vi_peek   neosoft_technologies_inc_lib_testandifier   dqmh_consortium_lib_lumos_api   zuehlke_engineering_dqmh_provider_for_the_project_explorer   unites_ddb   hse_lib_hse_db  
Project links Homepage   Documentation   Discussion

Description

The Delacor Queued Message Handler - short: DQMH(R) - toolkit is a freely available reference design (also called a template or framework) for LabVIEW. It expands on the NI QMH by providing safe, event-based message handling and scripting tools to make development easy, encourage same style between different developers in the same project and improve efficiency. Today, the DQMH is arguably the most popular LabVIEW framework out there.

The LabVIEW ecosystem often sees teams of software developers with members of varying proficiency. Teams that are growing rapidly. Teams that need to onboard new members regularly. Teams that need to employ subcontractors, and teams that don't want to be dependent on a single source. DQMH was created with these small teams in mind!

There's a vast amount of content available: An exceptionally detailed manual, a plethora of videos and presentations, even podcasts! All of this makes it really easy to get new users of all proficiency levels up to speed very quickly. On top of that, there are lots of consultants - both the DQMH Trusted Advisors and other 3rd parties - who are happy to offer courses, trainings and workshops for DQMH.

This package installs all the packages needed for the DQMH toolkit:
DQMH Palette
DQMH Project Template
DQMH Event Scripter
DQMH Thermal Chamber Examples
DQMH Documentation

Release Notes

7.1.0.1503 (May 19, 2025)

New Features
- All DQMH scripting tools now support post-scripting plugin VIs, where you can define custom behavior to perform after a scripting tool has run. For example, after using the Create New DQMH Event tool, a plugin scripting VI could make additional automated edits to the event VI that is created, or perhaps to the new event code in the Main VI. For more information on how to create post-scripting plugin VIs, see this page.
- The DQMH Validation Results window now displays a 'Fix Status' column to indicate whether or not the Fixer has been run for a particular validation failure.
- The DQMH Validation Results window now displays a 'Fix All Issues' button that will automatically go through all validation results that have a Fixer available and apply that Fixer. The 'Fix Status' column in the window will continuously update as each fix is applied. There is also a button to abort the Fix All Issues process. Additionally, the Validation Results listbox now supports multi-select, so you can 'Fix Selected Issue(s)' to only run the fixers for specified items in the list.
- For any validation test displayed in the DQMH Validation Results window that does not have a Fixer, double-clicking on the result in the list will open the VI(s) that caused the test failure, and will also highlight any specific object(s) in the VIs that caused the validation failure.
- There is a new Duplicate DQMH Event tool in the Tools > DQMH Consortium > DQMH menu that allows you to create a copy of an existing DQMH event. For more information on this new tool, see this page.
- There is a new Duplicate DQMH Module tool in the Tools > DQMH Consortium > DQMH menu that allows you to create a copy of an existing DQMH module. For more information on this new tool, see this page.
- The Create New DQMH Event tool now allows you to create private 'Request and Wait for Reply' events. (Issue #936)
- The Validate DQMH Module tool now includes a "Helper Loop - Find DQMH_HELPER_LOOP_NAME Constant" test to detect when the name of the helper loop is not wired to the 'Error Debug' input of the DQMH Error Handler - Helper Loop subVI.
- The Validate DQMH Module tool now includes a "Helper Loop - Missing DQMH Error Handler VI" test to detect helper loops that do not call the DQMH Error Handler - Helper Loop subVI.
- The Validate DQMH Module tool now includes a "Main VI - Conditional Show Panel on Error" test + fixer to detect situations in the closing code of a Main VI where the FP.Open method is called when the module has an error on close. This code should be wrapped in a conditional disable structure so it does not execute in a built EXE.
- The Convert DQMH Event tool now includes the ability to convert an existing 'Request' or 'Request and Wait for Reply' event to a Round Trip event.
- When creating a new request event with the Create New DQMH Event tool, the button created in the API Tester will now match the style set in Tools > Options > Front Panel > Control Style for New VIs.
- When creating a new request event with the Create New DQMH Event tool, bold tags () in the event description will apply to the font of the subdiagram label containing the event description in the MHL.
- The Rename DQMH Event tool now allows you to optionally edit the description of the renamed event VI.
- The Start Module VI for shipping module templates now includes a 'Module Name' output. There is also a test + fixer in the Validate DQMH Module tool to add this output to the Start Module VIs in existing modules.
- The DQMH Scripting API (available in the Programming > Addons > DQMH Consortium > DQMH > DQMH Scripting subpalette) includes a new Validate Single DQMH Module Library VI. Pass in a library reference to this VI, and the VI will be validated headlessly.
- The Create DQMH Module Template tool now allows you to specify a "Name" for your module template that differs from the module library name on disk. This custom Name will appear in the 'Template' ring in the Add New DQMH Module tool instead of the module library name.

Changes
- The 'Destroy Module Semaphore Reference.vi' was removed from the DQMH Singleton and Cloneable templates. This semaphore reference is intentionally left open during the lifetime of a module’s execution. For more information on this change, see the new 'Reference Management' DQMH help topic. (Issue #862)
- The VI Reference Management and Clone Registration libraries in the Cloneable Module template now have descriptions. (Issue #915)
- An existing limitation of Private Events and Local Instance Events is that you cannot use the Remove DQMH Event tool to remove the very last Private Event or Local Instance Event from a module. In the previous DQMH release, these singular events were not shown in the list of possible events to remove. This led to confusion as to why the events were not listed. The new behavior is that the event list in the Remove DQMH Event tool no longer excludes singular private events and local instance events. Now, if you select one of these events and click OK, a dialog is displayed explaining why the event cannot be removed. (Issue #921)
- The bookmarks included in the DQMH project templates now include a "DQMH_" prefix. (Issue #929)
- The Create New DQMH Event tool user interface has been reorganized to accommodate smaller monitor resolutions. (Issue #954)
- The Find DQMH Broadcast Event Frames right-click plugin now excludes VIs in the vi.lib, user.lib, and instr.lib folders by default from the search. To restore the original behavior and include those folders in the search, add the following INI token to your LabVIEW INI file: DQMH.FindBroadcastExcludeFolders="".
- The Timeout case of newly created Helper Loops contains a CodeRecommended bookmark that refers to Wovalab Utilities Toolkit for constant loop iteration period requirements. (Issue #920)
- The Starter UI of DQMH Module Validation scripting tool now has a Help button (Issue #957)
- The DQMH scripting tools now offer a 'Save All' prompt if unsaved changes are detected when launching a particular tool. This new behavior allows you to proceed with using the scripting tool, as opposed to the old behavior requiring you to re-launch the tool after saving your changes manually. (Issue #960)
- The Convert DQMH Event tool now displays the module Main VI block diagram with the EHL, MHL, and/or Helper frame(s) of the converted event visible. (Issue #978)
- The New DQMH Unit Test tool now displays the front panel and block diagram of the new unit test VI. (Issue #976)
- The Create RT Tester tool now creates the RT tester VI with a larger block diagram window and the Timeout frame of the event structure visible by default. (Issue #975)
- The Rename DQMH Event tool now updates code within the API Tester and RT Tester corresponding to the renamed event. (Issue #977)

Fixes
- The Create New DQMH Event and Add Helper Loop to DQMH Module tools now work properly on Main VI diagrams that utilize child classes of the Message Queue, Module Admin, and Cloneable Module Admin classes. (Issue #918)
- The Create New DQMH Event tool now requires all event and payload arguments to have a non-empty label. (Issue #933)
- The 'Unwired Bundles in Main EHL' test in the Validate DQMH Module tool now works properly after it was erroneously broken in DQMH 7.0. (Issue #946)
- The Convert DQMH Event tool now properly converts Request events that are registered for a Helper Loop. (Issue #942)
- The Create New DQMH Event tool now properly wires Request and Wait for Reply VIs in the API Tester that have an error cluster as a reply payload argument. (Issue #934)
- The Rename DQMH Module tool no longer corrupts module VIs when also utilizing the Project Save Version feature in LabVIEW 2024 Q3 and later. (Issue #945)
- Local Instance Events no longer experience a memory leak. A new test + fixer was added to the Validate DQMH Module tool to detect and fix this issue in existing Local Instance Event code. (Issue #931)
- The Arguments Window and Reply Payload Window displayed when using the Create New DQMH Event tool no long allow the inclusion of XControls, since XControls cannot be reliably scripted into DQMH event argument clusters. (Issue #940)
- The Thermal Chamber Controller_DQMH.lvlib:Main.vi now pre-loads Action Engine settings from the Front Panel controls in the "Initialize MHL Case." This allows standalone operation and ensures consistent data visualization in the graph. (Issues #697, #696)
- The "#DQMH_CodeNeeded" bookmarks that are created in the Main VI when creating a new event are no longer omitted from new events created within helper loops. (Issue #959)
- Fix VI compilation issue when DQMH vi.lib is built into a PPL due to 'Enqueue Message' polymorphic VI instances being private (Issue #611)
- You can now bundle multiple event registration references to pass into a Helper Loop and the DQMH scripting tools will function correctly, as long as the module’s request events are the first event cluster that is bundled. (Issue #911)
- You no longer receive Error 1 when attempting to script a non-initial private event after creating a public event. (Issue #935)
- You no longer receive Error 1 when attempting to script a new event for a module that utilizes certain hardware reference data types. (Issue #947)
- When an event is renamed with the Rename DQMH Event tool, the Unbundle By Name functions in the Destroy Event VIs are no longer broken. (Issue #967)
- When an event is renamed with the Rename DQMH Event tool, the subdiagram label in the EHL frame for the renamed event is now updated to reflect the new event name. (Issue #967)
- You no longer receive Error 43 from the Get Event VIs in DQMH Module when the module contains missing VIs. (Issue #981)
- You no longer receive Error 1055 or Error 1 when running the Validate DQMH Module tool on some older DQMH modules. _(Issue #966)
- You no longer receive a 'file not found' error in your web browser for the local DQMH help file after installing DQMH on some systems. (Issue #984)
- The DQMH scripting tools no longer return errors and unexpected behavior in some situations when a DQMH module does not have an API Tester VI. (Issue #985)

matthiasbaudot , olivier , joerghampel , luisorozco and fabiola-de-la-cueva were contributors to this release


Recent Posts

Resource in Spanish - Diseño de una arquitectura - CLA - QMH
Diseño de una arquitectura en español. Arquitectura QMH

by VIPM Community, 4 years, 8 months ago, 0 , 1
DQMH Discussion Forum
Find answers to your DQMH questions or post new ones

by Fabiola De la Cueva, 4 years, 8 months ago, 0 , 0
resource
DQMH Feature Requests
If you have a feature request or a new idea for DQMH please add it to the DQMH Feature Request (aka…

by Fabiola De la Cueva, 4 years, 8 months ago, 0 , 1
resource
Resource in french -- DQMH, un peu plus qu'un framework ?
Lors d'une rencontre de développeurs LabVIEW, Olivier Jourdan a présenté sa vision du framework DQM…

by Wovalab, 4 years, 8 months ago, 0 , 3
DQMH Tutorial Series Introduction
A DQMH approach to a simulated vending machine. This commit uses 5 DQMH modules (Model, Keypad, Sto…

by VIPM Community, 4 years, 9 months ago, 4 , 7
Broadcast Event Messages in DQMH
This video is part of a series, watch it from the start here: https://www.youtube.com/watch?v=TAhix…

by VIPM Community, 4 years, 9 months ago, 0 , 3