7.0.0.1280 (Dec 14, 2023)
The release notes for this package can be found in the main DQMH package or by visiting https://dqmh.org/release-notes
6.1.0.128 (Mar 22, 2022)
The release notes for this package can be found in the main DQMH package or by visiting https://dqmh.org/release-notes
6.0.0.122 (Jun 10, 2021)
### DQMH Event Scripter
1. #DQMH-694 Re-created the Main.vi for the Singleton and Cloneable module templates from scratch, making sure that their pane origin values make sense and are at (0,0)
2. #DQMH-696 Added a call to Update Module Execution Status.vi (with a 'Running?' value of FALSE) to Close Module.vi for our project template, CML project template, and module template. Also added a validate+fixer for the issue
3. #DQMH-697 Updated the scripting for the DQMH unit test teardown VI to use a Merge Errors for the incoming error so the Stop Module VI always executes. We also added a validate+fixer that checks for this issue
4. #DQMH-684 This is the version of the 'Find Event Frames' right-click plugin that was signed off by the DQMH Trusted Advisors. Note that this only works on LabVIEW 2015
5. #DQMH-688 Creating a new module from template now works if the template exists in the project
6. #DQMH-685 Unbundle the reply in the Request and Wait for Reply (except for error). If there is not enough space for terminals, then the VI outputs the reply cluster as before. No validate/fixer tool
7. #DQMH-680 Prior to DQMH 5.0 we could create new DQMH Events for a DQMH module that did not have a MHL. This feature broke in DQMH 5.0. DQMH 6.0 allows the creation of DQMH events for custom DQMH templates that don't have a Message Handling Loop
8. #DQMH-683 Fixed error 1357 when creating an event if there is an unsaved VI in the project. When attempting to create a new event if there are unsaved files, there is a dialog explaining that the DQMH cannot script new Events until all unsaved VIs in the module have been saved to disk
9. #DQMHWL-46 Script the "Status" string update code in the API Tester for new broadcast events
10. #DQMH-676 If there is no module selected in the Create New Event dialog, the OK button is disabled
11. #DQMH-674 Updated the link for the Help button in the Create DQMH Module Template dialog box to point to the 'AddingaNewDQMHModulefromaCustomT' help topic
12. #DQMH-704 Improved the Rename DQMH Module performance and added a progress bar
13. #DQMH-710 Added code as workaround to address a scripting LabVIEW bug that results in error 1397 (NI is tracking this bug as 1281963)
### DQMH Validation Tool
1. #DQMH-696 Added a call to Update Module Execution Status.vi (with a 'Running?' value of FALSE) to Close Module.vi for our project template, CML project template, and module template. We also added a validate+fixer for the issue
2. #DQMH-697 Updated the scripting for the DQMH unit test teardown VI to use a Merge Errors for the incoming error so the Stop Module VI always executes. We also added a validate/fixer that checks for this issue
3. #DQMH-692 Added a validate test that finds bundles in Event Structures with unbundled inputs. This is useful when we add manually new event arguments and we forget to wire them. This is an example of a validate test that would be very useful in a Continuous Integration environment
4. #DQMH-681 Obsolete MHL Frames validator test was incorrectly flagging frames that contained the offending frame names ("Show Panel", "Hide Panel", "Show Diagram"). We improved the logic to do a exact match on the obsolete frame name instead of a partial match
5. #DQMH-691 Added a new validate test for Broadcast Event Cluster Naming. This test checks that the broadcast cluster outputs from key VIs in a module have a label that matches the format " Broadcast Events". Key VIs are: Obtain Broadcast Events.vi, Obtain Broadcast Events for Registration.vi, Start Module.vi, Init Module.vi, and Obtain Request Events.vi. There are scripting tools that rely on these indicators having the correct name
6. #DQMH-695 When the validate/fixer cannot upgrade the Start Module.vi automatically, it creates a StartModule2.vi with instructions on how to migrate the code
7. #DQMH-693 There is now a validate/fixer to fix the Andreas 2.0 issue in the Stop Module.vi of a cloneable module for the issue of starting/stopping a cloneable running as singleton in rapid succession
8. #DQMH-638 Added a new validate/fixer for modifying Error Reported.vi to the new DQMH 6.0 approach of parsing for DQMH tags. The fixer will also remove the Module Name constant VI that was added to the 'Error' frame of the MHL in the Main VI in DQMH 5.0
9. #DQMH-686 Added a validate/fixer to change the Module ID input of Wait on Module Sync.vi to an I32
10. #DQMH-677 Added a new validate/fixer to fix Stop Module.vi error propagation so the VI executes even on incoming error. The fixer also tells the developer which VIs in the current project call Stop Module.vi, in case they want to see if they need/want to modify code to account for this change
18. #DQMH-703 There is now a validate/fixer that will create all necessary core files in the DQMH module if any of them are missing. This mainly helps when running our validator on very old modules (like DQMH 2.0-era) that may be missing core files that were added in a post-2.0 DQMH release
5.0.0.112 (Apr 17, 2020)
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:
1. #DQMH-616 Start Module.vi using Run VI method
2. #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
3. #DQMH-589 Identifying/updating Request and Wait for Reply VIs that don’t return an error on timeout
4. #DQMH-642 New notifier approach for shutting down the event references in Close Module.vi after the last instance stops
5. #DQMH-585 Adding a case structure around Stop Module.vi call in the singleton tester
6. #DQMH-597 Updating Wait on Stop Sync.vi to use the improved approach with the event structure
7. #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
8. #DQMH-600 Adding Release Queue VI in Error case issue
9. #DQMH-588 Detecting VIs with auto error handling enabled, and disable that setting for those VIs
4.2.1.88 (Apr 09, 2019)
1. Add a validate+fixer to make the Start Module.vi in a cloneable module be non-reentrant.
2. Update the validate+fixer for marking request VIs reentrant to ignore the Start Module VI.
4.2.0.87 (Feb 21, 2019)
DQMH 4.2 New Features
1. New Tools>Delacor>DQMH>Module menu option to Create a DQMH Module Template
2. Added checkbox to Event creation wizard to automatically create a button on the API Tester
3. When creating a Request event or a Request and Wait for Reply event, there is an additional Reply Payload Arguments window
4. New Broadcast VIs now display an event glyph on the lower right corner of their icon
Validation Tools
1. Added a test and fixer for updating Broadcast VI icons to have the event glyph
2. Added new validate test and fixer for tagging Broadcast and Request VIs that are not tagged
3. Added extra suggestion to the validate module message for Request and Wait without the optional wait parameter.
4.1.0.80 (Nov 05, 2018)
Fixed bug that caused the “Convert DQMH Event” menu option to not work when called via Zuehlke Project explorer for DQMH.
Expedited DQMH Module renaming by removing the code to save dependencies, as a module rename should not have any effect on the module's Dependencies.
4.1.0.79 (Oct 17, 2018)
DQMH Scripter
1. New “Round Trip” event behavior that incorporates Request and Wait for Reply + a Broadcast with the reply payload.
2. New “Convert DQMH Event” tool to convert a “Request” to a “Request and Wait for Reply”.
3. More intuitive organization of Tools>Delacor>DQMH menu.
4. Miscellaneous bug fixes and usability improvements.
5. Allowed for a non-empty destination folder for the new module, as long as it doesn’t contain any non-LabVIEW files. This is to support the case where the folder may already have some (non-LabVIEW) SCC files before the module is saved into it.
6. Fixed bug where the Validate Results UI close window did not work as expected.
7. Changed the new event VI scripting tools to ensure the controls on the panel of the event VIs are exactly the same as they were defined in the arguments window. This means captions, ranges and other control properties are part of the input on the event VI. This means that no controls in the Arguments Window can have duplicate labels and no controls in the Arguments Window can use the following labels: Module ID, error in (no error), error out, timed out?
New Validate/Fix DQMH Module Tools for:
1. Improving reentrancy settings for existing DQMH modules.
2. Replacing old DQMH Module error codes in the 500x range with new DQMH Module errors. NI has assigned error codes 403680 – 403719 to DQMH.
3. Validating if Request and Wait for Reply events have the new “wait” input parameter.
4. Updated “Find Tester” test to check if a found tester is also present in the project. If not, returns a failure.
4.0.0.68 (Jun 22, 2018)
Added scripting support for RT API Tester for cloneable modules.
- New DQMH Real-Time Tools>>Creat RT Tester makes a copy of existing tester with -RT.vi file name suffix and tags the copy with an RT tester-specific tag
- Puts RT copy next to existing tester in the project. If not found, puts it next to module library
- 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
- DQMH API Tester for RT had a Timeout case with a timeout constant
- DQMH API Tester for RT removes Or for the error cluster, and adds an error out local variable
- Value Change events are not supported in RT, nor Panel Close? events. These events are not present in DQMH API Tester for RT
- 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 all existing public requests in the cloneable module
- Adds a #CodeNeeded bookmark in each case frame so the user can wire in whatever inputs they need to the public request in order to properly test it
- The tool scripts latching button on the panel for each public request VI
- Tool skips scripting for Hide Panel, Show Panel, and Show Diagram since they don't have meaning in an RT Tester
- Added ability to have new events create appropriate code in both the traditional DQMH API Tester and the DQMH API Tester for RT
Added scripting support for generating unit tests for Request and Request and Wait for Reply VIs
- Launch via Tools > Delacor > DQMH > New DQMH Unit Test
- A 'Unit Tests' folder is created in the project and on disk with all the relevant VIs
- Setup and Teardown VIs created
- A test VI for the Request/Request and Wait for Reply is created with bookmarks indicating where testing logic should be added
- Fixed bug where DQMH scripting was attempting to set the sub diagram label of any subdiagram in any generated code where the label hasn't ever been shown
- Fixed a “bug" with scripting where a VI was being erroneously identified as the tester VI for a module
- Updated ‘Remove Event’ code to look for the removed event’s MHL frame name in quotes when looking for the frame to drop the code review todo comment inside
- Resized the result string indicator in the Validate Module results UI so it doesn’t overlap the Fix Issue button.
- Added code to Rename Module scripting that updates VI descriptions to only update the following situations: 1. [Module Name] at the beginning of the description 2. [Module Name] in between space characters 3. [Module Name].lvlib
Validate DQMH Module tool
- Added a new validate tester for finding string constants in the DQMH Main VI containing invalid message names (messages that do not have an associated MHL case to them)
- Added a new validate tester for finding obsolete Show Panel, Hide Panel, and Show Diagram message frames
- Added a new validate tester for finding Register for Events node with unwired error output in DQMH Main VI
- Added a new validate tester and fixer for improving error handling in Handle Exit.vi
- Added a validate module tester to detect Reply Payload typedefs that do not contain error clusters
- Added a new validate tester and fixer for handling multiple VIs in a module tagged as a testers, RT testers, or main VIs
- Wrote a DQMH Validate Module test to detect the old error handling in Close Module.vi, and also wrote a fixer to fix the error handling
- Added a new validate and fix tester for finding untagged Request and Wait for Reply VIs
- Fixed bug in 'Sending Nonexistent Messages' Validate Module tester that was getting in an infinite loop when the DQMH Enqueue Message (poly).vi was inside a structure and its 'message' input was being sourced by a structure tunnel. (Please Note that the DQMH Enqueue Message (poly).vi does have an array messages implementation).
- Updated progress dialog of Validate Module tool to display the name of the current test being run, not only to help users see progress, but also help Delacor know whenever the Validation tool hangs, which test was running when it hung.
Other
- Added the ability for the Create New DQMH Module tool to reference template modules by absolute path
- Fixed New Event scripting to be able to handle the situation where the user has a child class of the DQMH Queue in their Main VI so that event structure scripting works correctly
- 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. This also required changes to the scripting code to account for the fact that the event structure will sometimes have a queue class wire going through the frame, and sometimes it won't
- Updated popup dialog message when specifying an event name that conflicts with an existing VI in the library to make it more clear that there is a more general filename conflict, as opposed to an event name conflict
- Whenever the user enters a string for the event name or the broadcast name in a round trip, trim whitespace at the time the value is committed
- Changed recursive file list to top-level folder list when checking to see if a proposed event name is valid. This way if there is a lower level folder for a class, it can have VIs with the same name as the Request or Broadcast VIs
- Made Remove Event, Rename Event, and Rename Module dialogs modal
- Moved DQMH Help button over one pixel to make it flush with right border
- Added a 'Save All This Project.vi' call after removing the Do Something events
- Added support for Delacor VI Analyzer custom test that detects DQMH Request and Wait for Reply VIs inside 'lock UI' frames of an event structure. This staging includes (1) adding code to the New Event scripting that tags the event VI with the type of event it is, and (2) updating all the event VIs in our project template to be flagged properly- Added support for creating a new DQMH Module library within an auto-populating folder in the project
- Fixed module list ring in all DQMH scripting tools to not list duplicate module entries when the same module appears under multiple targets in the project
- Improved performance of New Module and Rename Event tools
- Creating a Request and Wait for Reply event places the event parameter control terminals on the top-level diagram in the fire event VI
- The Arguments Window no longer retains arguments from a previous event creation if the user inadvertently saves the Arguments Window during event creation
3.1.0.29 (Jan 24, 2017)
Fixed bug in scripting code that was incorrectly parsing project items and identifying a VI added by the developer with a file name that started with "Broadcasts" as the "Broadcasts" folder in the project.
3.1.0.28 (Jan 20, 2017)
Fixed bug in scripting code that was incorrectly parsing project items and identifying a VI added by the developer with a file name that started with "Broadcasts" as the "Broadcasts" folder in the project.
3.0.0.27 (Dec 05, 2016)
Major New Features:
Added support for creating new DQMH modules from templates other than the basic singleton and cloneable templates. Developers can provide their own DQMH templates to their [LabVIEW Data] folder. This will cause the "Add New DQMH Module" utility to show their templates.
Added support in scripting code to create new Request and Wait for Reply messages with the 'error' parameter in addition to the 'Boolean (replace me)' default parameter. We found that we needed this the majority of the time and it is better to automate its creation than expect developers to implement it based on DQMH best practices. This change also includes the scripting of a Merge Errors to help users remember to include any errors generated by their own code in the MHL error stream.
Added a 'Rename DQMH Event' utility for renaming existing DQMH events.
Automatically configure event structures in the Main VI and tester VI to handle newly scripted events (LabVIEW 2016 and later). The subdiagram labels of new request EHL and MHL frames are also populated with descriptive text.
Added Help buttons to all the dialogs launched from the Tools > Delacor > DQMH menu.
New Features from Delacor Toolkits group at ni.com:
"Create New DQMH Event" utility now shows a dialog when the developer tries to create a new event but the arguments window is empty. Ask if they want to proceed with an unused Boolean as the only argument in the cluster. Also provides a 'do not show this again' checkbox in the dialog.
If any DQMH scripting tool is launched from the menu of a VI, that VI's project will be considered the active project for the scripting tool. The previous behavior was that the last active project (i.e. the last project window that was clicked on) would be considered the active project for the scripting tool, regardles of which VI's menu bar the scripting tool was launched from.
A 'to do' comment is added to the MHL case corresponding to a removed DQMH event, suggesting that this diagram could potentially be removed if it is no longer used.
Issues addressed:
Added a Validate Module test and fixer for the 'Show Diagram' code that checks the password status of the main VI before showing its diagram.
Added a Validate Module test and fixer for improving the error handling in the tester VI to prevent an error condition from leaving the module main VI running in a "zombie" state.
Validate DQMH Module tool now pops up a dialog asking you to select a DQMH library from the active project (using the same mechanism used by the Create New Event dialog). It then uses the library reference in the proper application instances of the project to do the validating and the fixing. This should solve the issues we had related to the library being validated in the wrong app instance.
"Create New DQMH Event" utility now pops up a dialog if developer tries to specify the same name for the request and the broadcast for a Round Trip event. There is also additional validation code to make sure the specified event name (for all 4 event types) isn't the same as an event that already exists in the project.
The Validate Module 'fixer' for upgrading to DQMH 2.1 will now create the Get Module Main VI Information VI with the user's Tools > Options settings respected, like icon terminals, source only, auto error handling, etc.
2.1.0.3 (May 19, 2016)
Added a Validate Module test to check for a module based on the DQMH 1.0 project template, with the recommendation to retrofit if functionality provided in DQMH 2.x is desired.
Added a Validate Module test to check for the obsolete 'Stop Module' approach from DQMH 2.0 that uses a rendezvous instead of checking the singleton module main VI execution state. This test also includes a "fixer" that will upgrade the module code to use the DQMH 2.1 stop module approach. Backup your code before using the "fixer", as it makes extensive changes to the stopping mechanism of your DQMH 2.0-based module.
Fixed bug when removing "Do Something" events when creating DQMH modules in non-English versions of LabVIEW.
2.0.0.53 (May 19, 2016)
Added support for renaming a DQMH module
Added Tools > Delacor > DQMH > Rename DQMH Module utility.
Added ability for custom names for singleton and cloneable modules when creating a new DQMH project from the Create Project dialog.
Changed the order of the merge error input terminals in all Request/Broadcast Events VI wrappers that could lead to missing the original error.
Added code that disables the rename and 'do something' options in the 2nd page of the DQMH project template dialog if the required Event Scripter package is not installed.
Fixed tabbing behavior in 2nd page of DQMH project template dialog.
VIPM was not really mass compiling VIs after installing in LabVIEW 2015 (despite showing in the status report that it was doing so). Report has been raised with JKI and recorded as Case 16809. In the mean time added post install code to force mass compiling of DQMH VIs after installing on LabVIEW 2015.
changed the order of the merge error input terminals.
1.0.0.47 (May 19, 2016)
Workaround for new event scripting crash introduced in LabVIEW 2015.
1.0.0.45 (May 19, 2016)
Fixed bug that resulted in error 1126 when creating a new DQMH module in LabVIEW 2015.
When creating a new event, added option for developer to add VI description for the VIs that wrap firing the Request/Broadcast events.
Moved location of Create New Event window to be closer to top left corner to accommodate smaller resolutions.
If the developer tries to add a DQMH Module/create a new event/remove an event and no project is open, a dialog informs them that a project needs to be open and saved to disk in order to use any of the DQMH tools.
Updated scripting to change value of Module Name constant when creating a new module.
Updated scripting to suppress Save dialogs when creating a new module without 'Do Something' events.