What is New in DQMH?
v7.1.0
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 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 (<b>) 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 accomodate 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 Create New DQMH Event tool now allows you to create private 'Request and Wait for Reply' events. (Issue #936)
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)