We have been busy implementing several of the requests you have sent to us either by direct contact or via the DQMH forum at NI. We also continue to eat our own dog food as we use DQMH in our own internal projects. We have been using DQMH 4.0 internally for a while and even shared the Beta version with some of you already. The feedback from our Beta testers has made DQMH 4.0 even better and ensures that we continue to honor the quest for the best Developer Experience (DX). Keep the feedback coming, and you can always add your DQMH feature request via the DQMH feature requests document on the DQMH forum.

Why have we have not published it via the LabVIEW Tools Network yet? There are two things we are still working on:

  1. Updating the documentation to match all the new features.
  2. Complete revamping the shipping examples to match DQMH 4.0.

As soon as we are done with those two items, we will make DQMH 4.0 public via the LabVIEW Tools Network.

Below is a preview on the Release Notes, if you see something you like, please feel free to download DQMH 4.0 and give it a try. (You will need to register in order to access the download below)

Download “DQMH 4.0 Beta 4” DQMH-4.0-Beta4.vipc – Downloaded 26 times – 15 MB

While you wait for the download and installation to finish, you can watch this video that explains how to validate and automatically fix your DQMH modules made with DQMH 3.0 or earlier.

And here is a preview on the DQMH tools for LabVIEW RT.

DQMH 4.0 Beta Release Notes

This is a DQMH Beta release, the release notes and documentation are not live yet, they will eventually be at: http://delacor.com/dqmh-4-0-release-notes/

DQMH Help is not live yet. To get to the DQMH 4.0 documentation, turn off your network connection and then go to Help>>Delacor>>DQMH Help… or open help directly via <LabVIEW>\help\Delacor\_Delacor QMH\DQMHDocumentation.chm

Major new features

  1. Added tool to create a DQMH API Tester for Cloneable DQMH Modules running on a LabVIEW RT Target –>  Based on requests like this one here.
  2. Updated New Module tool to allow for absolute paths in the meta data XML for a DQMH module template. If the <AbsolutePaths>TRUE</AbsolutePaths> tag is present, then the LocationPath entry will be ignored, and the code assumes the paths for the library and the tester tags are absolute. –> as requested here

Project Template

  1. Modified the template VIs to not have the Update Display status and instead call the Status updated broadcast. –> This is to follow one of our own Best Practices of calling atomic operations directly instead of enqueuing several operations, because we cannot guarantee that nothing else is enqueued in between.
  2. Removed the Show Panel, Hide Panel, and Show Diagram messages from the MHL. Added two new subVIs, Open VI Panel.vi and Hide VI Panel.vi. They are private to the module. And the Show/Hide Panel events call those subVIs (and also broadcast messages about the panel being shown/hidden. And Moved the Show Diagram code from the MHL into the Show Diagram event case. With this approach, we solve the issue of the MHL being locked out from show/hide panel, and we provide utility subVIs for showing/hiding the panel that any other message can call to make its operation atomic. –> Following our own Best Practices of calling atomic operations.
  3. Added handling of error output from Register For Events function in Main VI of all three libraries in DQMH project template.
  4. Updated Close Module.vi in both libraries to fire the Module Did Stop broadcast even if there is an incoming error.
  5. Updated singleton and cloneable Main VIs in the project template to pass the queue class wire around the event structure in the EHL instead of passing it through.
  6. Updated code in Panel Close event to call the new Hide VI Panel VI and no longer call the Confirm Quit message. Removed Confirm Quit message from MHL.
  7. Updated Handle Exit VI to call the new Hide VI Panel VI, and to not wire the eror terminals of the VI.

DQMH Scripter

Specific for LabVIEW RT Support:

  1. Added scripting support for RT API Tester for cloneable modules
  2. New DQMH Real-Time Tools>>Create RT Tester makes a copy of existing tester with -RT.vi file name suffix and tags the copy with an RT tester-specific tag.
  3. Scripting code puts RT copy next to existing tester in the project. If not found, puts it next to module library.
  4. DQMH API Tester for RT removes post-loop code that stops the module. Updates free label to mention use case for leaving RT tester dormant.
  5. DQMH API Tester for RT removes Or for the error cluster, and adds an error out local variable.
  6. Value Change events are not supported in RT, nor Panel Close? events. These events are not present in DQMH API Tester for RT.
  7. DQMH API Tester for RT has logic in Timeout event with default buttons (Start, Stop, Refresh, Exit), polls for buttons and has a case structure with a frame for each one of all the existing public requests in the cloneable module.
  8. Scripting code adds a CodeNeeded bookmark in each case frame so the user can wire in whatever inputs he needs to the public request in order to properly test it.
  9. The tool scripts latching button on the panel for each public request VI.
  10. The tool skips scripting for Hide Panel, Show Panel, and Show Diagram since they don’t have meaning in an RT Tester.
  11. Added ability to have new events create appropriate code in both the traditional DQMH API Tester and the DQMH API Tester for RT.

Other DQMH Scripter updates:

  1. Fixed scripting bug (error 1314) that was trying to update labels of constants inside typedefs when creating a module from template.
  2. Changed scripting for Request and Wait for Reply events to place control terminals for the event parameters outside the case structure instead of inside of it.
  3. Updated New Module tool to allow for absolute paths in the meta data XML for a DQMH module template. If the <AbsolutePaths>TRUE</AbsolutePaths> tag is present, then the LocationPath entry will be ignored, and the code assumes the paths for the library and the tester tags are absolute. –> as requested here
  4. Improved Rename Event scripting to only do a save on the VIs in the project that are callers of the renamed event. This greatly improves performance.
  5. Changed New Module scripting to only do a Save All on the new module library instead of on the entire project in order to save time.
  6. Added support for scripting a new module into an auto-populating folder in the project. –> as reported here
  7. Clarify error message when trying to create an event with the same name as a VI on disk to specifically mention files instead of library members.
  8. Removed duplicate entries in Modules list ring (in all scripting tool UIs) if the same module (by disk path) appears under multiple targets. –> as reported here

New Validate/Fix DQMH Module Tools for:

  1. Finding obsolete Show Panel, Hide Panel, and Show Diagram message frames.
  2. Finding and fixing untagged Request and Wait for Reply VIs (needed for Delacor VI Analyzer custom tests).
  3. Detecting and fixing the old error handling in Close Module.vi.
  4. Added a new validate/fix tool for the Handle Exit case that inserts a clear Errors on the output of the FP.Open method, since this can error out when called in a Real Time system.
  5. Added Validate Module test to detect an unwired error output on the Register for Events node in the module Main VI.

DQMH Thermal Chamber Examples

  1. Not updated yet for DQMH 4.0

Other

  1. Added section to the documentation that talks about creation of DQMH API Tester for LabVIEW Real Time.
  2. Moved DQMH Help button over one pixel to make it flush with right border.

 

Happy wiring,

Fab

(You will need to register in order to access the download below)

Download “DQMH 4.0 Beta 4” DQMH-4.0-Beta4.vipc – Downloaded 26 times – 15 MB