Sign In

Delacor QMH Project Template by Delacor - Toolkit for LabVIEW Download

* 4 ↓3065
ReleasedApr 17, 2020
Publisher Delacor
LicenseDQMH License
LabVIEW VersionLabVIEW>=14.0
Operating System Windows, Mac, and Linux
Project links Homepage  


This package installs the Delacor QMH Project Template in the Getting Started>>Create Project window.

The Delacor Queued Message Handler (DQMH) template is based on the National Instruments Queued Message Handler Project Template (NI QMH). The DQMH improves 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. The DQMH is best used in applications where there needs to be multiple modules running in parallel that communicate with each other. The DQMH can also be used for applications that have a single module, where the developer would benefit from having a Tester has the capability of eavesdropping on the different DQMH events and messages.

Each module is implemented following a variation of the National Instruments Queued Message Handler and it has a Test DQMH Module to help troubleshoot, debug and eavesdrop on the communications between the DQMH Module and its calling code.

Implementing communication between DQMH modules using events was based on the concepts presented by Justin Goeres during CLA Summit 2011 and NIWeek 2011. The main modifications to Justin’s approach were (1) changing the nomenclature from Private/Public events to Request/Broadcast events, (2) using the NI QMH as the basis for the modules instead of the JKI State Machine, and (3) adding an extra rendezvous to synchronize between the time the has created its Broadcast user events and when the other module that starts this module registers for them. This additional synchronization is needed because the Delacor QMH Module has to own the creation of its events. Among other benefits, this approach permits calling Request VIs from TestStand without the user event references going stale.

Release Notes (Apr 17, 2020)

1. #DQMH-599 Singleton and Cloneable Module templates updated to use Start Async Call instead of Run VI method for launching Main VI

2. #DQMH-613 Add support for scripting an RT tester for singleton modules

3. #DQMH-646 Added a VI Reference Management lvlib. Updated Init to have an optional input to set the Close Master Reference value. This VI includes a long comment explaining the parameter. Updated Close to use the new ‘Close Master Reference’ parameter in determining whether to leak the reference

4. #DQMH-650 Updated cloneable module with the Semaphore Solution for ensuring the Start and Stop operations on a cloneable module are atomic

5. #DQMH-589 Added request and wait for reply timeout –error constant VI. Updated all request and wait for reply VIs to return the error on timeout

6. #DQMH-642 New notifier approach for shutting down the event references in Close after the last instance stops

7. #DQMH-585 Wrap ‘Stop’ call at the end of the API testers in a case structure so it won’t be called if the module was already running when the tester started

8. #DQMH-585 Added an ‘Already running?’ output to the Obtain Broadcast Events for in the cloneable module template

9. #DQMH-597 made changes to Wait on Stop for cloneable modules to make sure the Stop does indeed wait for the cloneable module to stop regardless if the caller is waiting for all the modules to stop or just this instance

10. #DQMH-638 Have the module name be sent via the “additional information” parameter when broadcasting Error Reported

11. #DQMH-600 Add ‘Release Queue’ VI call in top-level Error case of module Main VIs

12. #DQMH-651 deleted the unnecessary comment from the Request and Wait for Reply notifier template that gets scripted in the MHL for a reply message, as it is no longer relevant now that we have the ‘wait for reply’ parameter

Install with VIPM Download Package

Note, you must have the VIPM Desktop app to install this package into LabVIEW.


  Post an Idea   Post a Resource

Recent Posts