Sign In

Delacor QMH by Delacor - Toolkit for LabVIEW Download

The Delacor Queued Message Handler (DQMH) toolkit

* 14 ↓1156
 screenshot
Version5.0.0.72
ReleasedApr 17, 2020
Publisher Delacor
LicenseDQMH License
LabVIEW VersionLabVIEW>=14.0
Operating System Windows, Mac, and Linux
Project links Homepage   Documentation  

Description

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

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 that 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 API.vi 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 Main.vi 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

5.0.0.72 (Apr 17, 2020)

DQMH 5.0 RELEASE
Release notes can be found at delacor.com/dqmh-5-0-release-notes/
The online version includes links to forum posts and blog posts relevant to the release notes.
For DQMH Help go to Help>>Delacor>>DQMH Help....

Release notes for DQMH 5.0

### Major new features
1. Singleton and Cloneable Module templates updated to use Start Async Call instead of Run VI method for launching Main VI

2. Added support for scripting an RT tester for Singleton modules (DQMH 4.2 only supported LabVIEW Real Time for Cloneable modules)

3. DQMH Validate Tool improvements

1. Prompt the user to run the validate module tool after upgrading DQMH via VIPM

2. Added the ability to validate all modules in the project. We also added a VI (Validate DQMH Module (Headless).vi) that you can pass in a project path and it will programmatically validate all modules in the project and return a result. This VI could be used as part of a CI/CD process to validate DQMH modules

3. Added a button to the Validation Results UI that allows you to analyze another module after you are done viewing the results for the current module. We also added a button to the ‘all tests passed’ dialog to allow you to validate another module as well

4. Improved API Tester developer experience: The API Tester does not stop the module on exit if it was already running when the API Tester started running. This is useful when using the API Tester as a sniffer

5. Request and Wait for Reply now return an error if the reply times-out

6. If your custom DQMH template requires a different enqueue (for example for a DQMH Queue child or if the DQMH libraries were built into a PPL), we added the ability to specify a custom enqueue message VI to be scripted into the MHL when creating request events Singleton and Cloneable Module templates updated to use Start Async Call instead of Run VI method for launching Main VI

### DQMH Palette

1. #DQMH-646 Updated cloneable module admin class to have a new ‘Close Master Reference’ parameter

### Project Template

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 Module.vi to have an optional input to set the Close Master Reference value. This VI includes a long comment explaining the parameter. Updated Close Module.vi 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 Module.vi after the last instance stops

7. #DQMH-585 Wrap ‘Stop Module.vi’ 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 Registration.vi in the cloneable module template

9. #DQMH-597 made changes to Wait on Stop Sync.vi for cloneable modules to make sure the Stop Module.vi 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

### DQMH Scripter

1. #DQMH-589 Updated New Event scripting to support creating a new Request and Wait for Reply with the timeout error in it

2. #DQMH-596 Updated the Request and Wait for Event ‘Fire Event’ template VI to have the ‘Release Notifier’ function wired through the error chain to (1)avoid the off chance of a user turning on automatic error handling on the VI and (2) include an error from the Release Notifier function in the error chain

3. #DQMH-608 Updated DQMH Rename Module utility to also rename the RT Tester if it exists

4. #DQMH-548 Added the ability to specify a custom enqueue message VI to be scripted into the MHL when creating request events

5. #DQMH-603 Updated Add New Module tool to store the last selected module in the LabVIEW INI file and use that selection the next time the tool launches. If the stored module name isn’t found, default back to ‘Singleton’

6. #DQMH-645 Made new event VIs always be created as reentrant clones, regardless of whether the module is singleton or cloneable

7. #DQMH-655 Call Arrange VI Window code (for panel and diagram) on newly scripted event VIs

8. #DQMH-611 Updated scripting code that creates the tester button to set the proper justification on the label text of the created button’s terminal, to support users who have their control terminal labels configured to be on the side of the terminal instead of on the top

9. #DQMH-607 Updated new event scripting code to account for other event references (and clusters of references) wired to the Register for Events node in the DQMH Main VI that may be wired ahead of the module’s own request events cluster

10. #DQMH-588 Made sure VIs created by the DQMH scripting tools are always set to have automatic error handling disabled

11. #DQMH-602 Fixed string matching on Event Structure frame names to properly handle module names that may contain special characters that Match Regular Expression interprets differently. The new matching is just exact string matches

### DQMH Validation Tool

1. #DQMH-605 Added the ability to validate all modules in the project. We also added a VI (Validate DQMH Module (Headless).vi) that you can pass in a project path and it will programmatically validate all modules in the project and return a result. This VI could be used as part of a CI/CD process to validate DQMH modules

2. #DQMH-604 Added a button to the Validation Results UI that allows you to analyze another module after you are done viewing the results for the current module. We also added a button to the ‘all tests passed’ dialog to allow you to validate another module as well

3. #DQMH-615 If there is no menu launch project when you launch the Validate DQMH Module tool, we’ll prompt the user to browse to a project and use the one they browsed to

4. #DQMH-654 Always make sure the results list box in the Validation Results UI is scrolled to the top when first shown
New Validate/Fix DQMH Module Tools for:

5. #DQMH-616 Start Module.vi using Run VI method

6. #DQMH-646 New Close Master Reference functionality. Added new error code for trying to run cloneable as singleton when the master reference hasn’t been closed. Updated validate and fixer for Async Call By Ref to update Start Module.vi to generate the new error code

7. #DQMH-589 Identifying/updating Request and Wait for Reply VIs that don’t return an error on timeout

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

9. #DQMH-585 Adding a case structure around Stop Module.vi call in the singleton tester

10. #DQMH-597 Updating Wait on Stop Sync.vi to use the improved approach with the event structure

11. #DQMH-638 Wiring up Module Name–constant.vi to the ‘Additional Information’ input of the Error Reported.vi in the “Error” message of the MHL

12. #DQMH-600 Adding Release Queue VI in Error case issue

13. #DQMH-588 Detecting VIs with auto error handling enabled, and disable that setting for those VIs

### DQMH Thermal Chamber Examples

1. Ran validation tools to ensure DMQH Modules in the examples match DQMH 5.0

2. #DQMH-597 Updated Wait on Stop Sync.vi in the cloneable module of the shipping examples to use the improved approach that makes it only wait until the current instance stops

3. #DQMH-547 Updated X-axis label in main tester VI chart from ‘Time’ to ‘Received Broadcast Count’ to more accurately reflect the chart contents

### DQMH CML Project Template

1. Ran validation tools to ensure DMQH Modules in this project match DQMH 5.0

2. #DQMH-590 Rearranged files for DQMH Project Template and CML Project Template so that CML Project Template has its own top-level folder. The Create Project dialog (and, it’s Recent Items’ functionality in the GSW) assumes that multiple project templates do not reside under a single top-level folder

### Help

1. Updated video link to Validating an Existing DQMH Module that shows the new features for DQMH 5.0 and how to validate an existing DQMH 4.2 project to match DQMH 5.0

2. Added section on What is New on DQMH

3. Added section on How to Learn DQMH

4. Clarified that the Application is implemented using a State Machine in the Getting Started section

5. Added DQMH as an alternative to XControls in the Use Cases section

6. Added clarification at the beginning of the Nomenclature section that it is a list of links to other sections in the document

7. Updated figures and description for DQMH Cloneable modules in the DQMH Singleton Module vs Cloneable Overview section in this document. Specifically added in blue the new sections of the Cloneable module and an explanation of what they are there for

8. Added note with some improvements developers can make to projects created from the CML DQMH Sample Project

9. Added to DQMH in LabVIEW Real Time that starting with DQMH 5.0 we do support both DQMH Singleton and Cloneable modules in Real Time

10. Added reference to How to Learn DQMH in the Related Information section

11. Changed this Change History section to start with the latest version at the top of this section

12. Added section for Third Party Products

Install

Note, you must have the VIPM Desktop app installed for this button to work.

Versions
Featured in

  Post an Idea   Post a Resource

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, 1 week, 4 days ago, 0 , 1
DQMH Discussion Forum
Find answers to your DQMH questions or post new ones

by Fabiola De la Cueva, 2 weeks, 5 days 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, 2 weeks, 5 days 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, 3 weeks, 1 day 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, 1 month ago, 4 , 6
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, 1 month ago, 0 , 3