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.94 (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.91 (Jun 10, 2021)
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. We 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-688 Creating a new module from template now works if the template exists in the project
5. #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
6. #DQMH-666 Updated the context help of the Start Module.vi and Synchronize Module Events.vi for both singleton and cloneable to better illustrate their use together
7. #DQMH-693 The Stop Module.vi for the My Cloneable Module.lvlib in our project template now has Fab's fix for Andreas 2.0, where we poll the module state at the end of stopping the module, if we're running as a singleton
8. #DQMH-638 Added support for parsing DQMH tags from the error source string in the 'Error Reported' broadcast VI. Added a validate/fixer tool
9. #DQMH-664 Made the MHL frame names with "---" prefixes have consistent spacing. Also fixed errant window position of 'Do Something Else and Wait for Reply' VI from singleton module
10. #DQMH-677 Updated Stop Module VI for singleton module to always stop the module regardless of incoming error. Updated testers for both singleton and cloneable to not do a Clear Errors when the event loop stops executing
11. #DQMH-686 Changed data type of Module ID input to Wait on Module Sync.vi to be an I32 instead of a U32. Included validate/fix tool
12. #DQMH-708 Don't show panel of singleton if not running. We changed the singleton template in DQMH 6.0 to broadcast an Update Module Execution Status of FALSE before closing. The application main VI in our project template needed to be updated to not try to show the panel of the singleton module if the module execution status is FALSE (since that means the module has stopped)
5.0.0.82 (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 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
4.2.1.64 (Apr 09, 2019)
1. Make My Cloneable Module.lvlib:Start Module.vi be non-reentrant.
2. Add a comment to the diagram of Start Module.vi explaining why it needs to be non-reentrant.
4.2.0.63 (Feb 21, 2019)
Upgraded DQMH modules to match DQMH 4.2:
* Added event icon overlay to all broadcast VIs in DQMH project templates
* Tag a request VI in the CML project template that wasn't properly tagged
Minor:
* Fixed a couple of misspellings ("rendez vous" and "clonable") in our Project Template code.
* Made sure the build spec version information for the project templates start at version 1.0.0.1 and are set to auto increment
4.1.0.59 (Oct 17, 2018)
1. DQMH core VIs are now reentrant to improve the performance of DQMH applications.
2. Updated DQMH Project Template to include DQMH 4.1 changes.
3. Updated DQMH Project Template to have Do Something events use the same constructs as scripted events, to promote consistency in our code. This change included updating “Do Something and Wait for Reply” to have the optional “wait for reply” input.
4. Changes to “Remove Do Something” scripting code to account for the new Do Something approach in the project template.
5. Made VIs in the cloneable library to be reentrant, except for:
* Destroy Sync Refnums.vi
* Get Sync Refnums.vi
6. Updated documentation pages to include new Help topics.
7. Added New DQMH CML Sample Project Template.
4.0.0.47 (Apr 19, 2018)
DQMH Module Templates Changes
- Modified the template VIs to not have the Update Display status and instead call the Status updated broadcast. We use the Status local variable too
- 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
- Added handling of error output from Register For Events function in Main VI of all three libraries in DQMH project template
- Update Close Module.vi in both libraries to fire the Module Did Stop broadcast even if there is an incoming error
- 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
- Removed Confirm Quit message
- Updated Singleton tester to remove race condition of front panel being reinitialized and the Module Running local variable being updated. Also updated Cloneable tester to use the same arrangement for consistency
- Updated both testers to use the 'init' parameter of the Module Did Init broadcast to add either a 'succeeded' or 'failed' message to the status display
New Validate/Fix DQMH Module Tools for
- Finding obsolete Show Panel, Hide Panel, and Show Diagram message frames
- Finding and fixing untagged Request and Wait for Reply VIs (needed for Delacor VI Analyzer custom tests)
- Detecting and fixing the old error handling in Close Module.vi
Help
- Updated Change History section in help documentation
- Added section to the documentation that talks about creation of DQMH API Tester for LabVIEW Real Time
- Added section for DQMH for RT
- Added section for creating DQMH Unit Tests
- Added information on how to use absolute paths instead of relative paths when Adding a New DQMH Module from a Custom Template
- Added embedded videos with real life examples of applications implemented using DQMH in the Use Cases section
- Updated TestStand examples video in section TestStand Examples
- Added new examples video in section LabVIEW Examples
- Moved DQMH Help button over one pixel to make it flush with right border
3.1.0.34 (Jan 24, 2017)
1. Added an Open.FP call in the Initialize Panel state to show the panel of the main application VI, along with a comment explaining that this is necessary in the case external code is launching this VI programmatically. This would happen for example, when launching the top level application from a splash screen.
2. Updated Documentation.
3.1.0.33 (Jan 20, 2017)
1. Added an Open.FP call in the Initialize Panel state to show the panel of the main application VI, along with a comment explaining that this is necessary in the case external code is launching this VI programmatically. This would happen for example, when launching the top level application from a splash screen.
3.0.0.32 (Dec 05, 2016)
Major:
1. Added 'error' cluster to reply payload in 'Do Something Else and Wait for Reply' request in both modules in project template.
2. Updated Do Something and Wait for Reply message to return an error as part of the reply argument if the 'Value' is negative. This demonstrates the use of the 'error' value in the reply argument.
3. Add the ability for a cloneable module to run as a singleton.
Minor:
1. Changed the error handling in both testers to always run the Stop Module.vi after the event loop, even if an error occurs.
2. Added argument clusters to Show Panel and Hide Panel requests to make them consistent with the rest of the event arguments.
3. Added code to 'Show Diagram' messages in singleton and cloneable modules to not show the diagram if the main VI is password-protected and the password is not in the cache.
4. Clear errors before 'Unset Busy.vi' calls in the Application Main VI.
5. Add local variables to Singleton Tester VI and Application Main VI to update 'module running' LED for singleton module with the output of the Obtain Broadcast Events for Registration VI. Added similar local variables for the new 'module already running' output of the Start Module VI.
6. Added 'Subscribe to DQMH Newsletter' menu option under Help > Delacor.
7. Added 'Module Was Already Running?' output from singleton's Start Module VI.
8. Changed help format to use chm file when offline and html version of chm when internet access is detected. New documentation name is DQMHDocumentation.html.
9. Added help buttons to all productivity tools wizards.
10. Reply received LED in both testers was returning true when there was an error.
11. Set the front panel to go to origin when the DQMH module initializes.
12. Fixed a bug that was no longer detecting that an lvlib was a DQMH module. Added to the Validate DQMH Module documentation section a description of what makes the scripting tools recognize an lvlib as a DQMH module.
2.1.0.2 (May 19, 2016)
Major:
1. For singleton modules, when setting 'wait for module to stop' to TRUE on Stop Module.vi, wait until the execution status of the module main VI is 'idle' before returning. There is an optional 'timeout' input to Stop Module.vi to specify how long the user wants to wait.
Minor:
1. Added 'error out' local variable in "Error" message to update error indicator on panel when an Error message fires, to aid in debugging.
2. Added a 'code recommended' bookmark in the Start Module.vi to aid users in adding parameters to be passed into the
module main VI when the module starts.
3. Moved the Singleton controls to the left of Application.lvlib:Main.vi and the Cloneable controls to the right.
4. Updated documentation:
Published documentation at: delacor.com/dqmh-documentation. Updated images to reflect DQMH 2.1 version. Added description of what "DQMH Module Main" refers to in the Nomenclature section. Clarified the titles for the shipping examples and provided a link to skip TestStand sections if not using it. Added links at the end of each section to go back to the Table of Contents
2.0.0.63 (May 19, 2016)
Major:
Added "Rename DQMH Module" utility to Tools>>Delacor>>DQMH
Added ability for custom names for singleton and cloneable modules when creating a new DQMH project from the Create Project dialog.
Addressed possible race condition during Main.vi initialization. The module was not ready to receive requests until the Initialize Data and Initialize Panel had been enqueued and the Queue was ready to receive other requests. Internally, we would encourage developers to not send any requests until the "Module Did init" broadcast would have been received. However once others started using the template, we saw that this was not enforceable and a race condition could happen if the developers sent a request before the module was ready. Also NI QMH Project Template did combine the three initialize messages into one to address a possible race condition there as well in LabVIEW 2015. The fix to DQMH modules consisted in:
1) Moved the Synchronize Caller Events.vi out of the Init.vi and into the Initialize case in the MHL (and into the Error outer case in Main.vi) for both Singleton and Cloneable modules.
2) Combined Initialize, Initialize Data and Initialize Panel into a single Initialize case.
3) Added support code to implement wait for module to stop functionality in Stop Module.vi. This required the creation of Handle Exit.vi that is called in the Exit case in the MHL. Moved Did Stop.vi into Close.vi to be called after the module had stopped.
For the cloneable module, moved all the code that keeps the first clone alive to be done inside the Close.vi.
Minor:
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.
Added "Module Name" to the Error Reported Argument--cluster.ctl for both Singleton and Cloneable modules.
Fixed Broadcast Events--cluster.ctl that had the Error Reported event referencing a non type def argument.
Removed Library property call from Application Name--constant.vi (this property is not available in exe).
Added changing the Window Title for the Application Main to use the Application Name--constant.vi to be consistent with the DQMH modules.
Updated the documentation for the Module Name--constant and the Application Name--constant VIs to no longer include that the VIs return the library name.
Put the show block diagram property inside a conditional diagram disable to indicate that only works in development mode.
Changed the order of the merge error input terminals in all Request/Broadcast Events VI wrappers that could lead to missing the original error.
Made Application.lvlib:Main.vi public.
Renamed Application.lvlib support virtual folder to Private and made it private.
Disabled automatic error handling from Show Diagram.
Cleaned up diagrams, few cosmetic changes to block diagrams.
Documentation updates:
Changed version to 2.0.0.0
Added version history to the top of the documentation describing changes.
Added link from change history to the new section.
Added documentation information regarding new tool to rename existing DQMH Modules. Added item to Table of Contents as well.
Replaced the video link in the documentation with http://bit.ly/DelacorQMH to point to the YouTube playlist.
Corrected typos (we had several Singeltons instead of Singletons to name one).
Made sure new images were listed as part of the project documentation.
1.0.3.57 (May 19, 2016)
Added Help>>Delacor>>DQMH help menu option. Added version number to documentation.
Added Sync on Stop code to ensure all the launched modules have an opportunity to stop when the caller is built into an executable. Fixed bug that resulted in front panel of first clone staying open when the clones were stopped individually and the first clone was not the last one to be closed. Added extra check for final FP.close, if there is an error the FP opens for the developer to see that there was an error. If no error then the Front Panel closes on exit.
Modified code in MHL Hide Panel case to use the FP.Open invoke node with State=hidden instead of FP.Close. This is to avoid closing VI references prematurely.
Fixed bug in Application Main.vi that resulted in the clones not responding to requests when the user had stop a clone individually. The user had to reselect All in the ring, now this is done automatically and the clones respond to requests afther the user stops an individual clone.
Added showing exe version when running an exe for Windows.
Added Show Diagram Request to be used for troubleshooting. This request will let developers open block diagrams to add probes, breakpoints, highlight execution, etc.
Updated documentation to reflect updated tools.
Create New Event includes option to enter VI description for the VIs created that fire the new events.
Remove Event includes note for developer indicating that their code will not be deleted.
Updated module name constant VIs to use a string constant to specify the module name.
Updated Create Project 2nd page to remember the state of the 'Do Something' checkbox.
Modified Did Stop status update in Test My Clone API.vi to match the Test My Singleton API.vi