This post was originally published at Walking the Wires
In our ni.com Delacor Toolkits group, Heel asked about transforming the Continuous Measurement and Logging Sample Project that ships with LabVIEW from using NI QMH to DQMH.
Fab mentioned that she is working on a version of this for her NI Week presentation “DQMH: The Decisions Behind the Design”. In the mean time, she pointed Heel to the presentation she gave at the CLA Summit 2013 in Paris.
The link to that presentation can only be accessed by CLAs, so we are publishing it here for those who are using DQMH and are interested in seeing one of the initial discussions that resulted on the DQMH.
As mentioned in the post, there are key things to note from the presentation:
You will notice that the steps on slide 30 have been simplified a lot with DQMH:
- Replaced Queue Message Library with class => Done! The queue is already wrapped in a class.
- Replaced User Event Stop with our version => Done! All DQMH modules come with a built-in Stop Module request event.
- Removed Enqueue Exit message to other modules => Done! DQMH stop module takes care of enqueing the Exit message.
- Replaced Messages to Acquisition Loop with Events => You can do this by creating the Acquisition DQMH Request events needed.
- Replaced Messages to Logging Loop with Events => You can do this by creating the Logging DQMH Request events needed.
- Replaced Error messages to Main with Events => Done! All DQMH modules come with their Error Occurred Broadcast Event.
- Replaced Data Queue and Data notifier with a Public Data Available User Event and had Main and Logging register to listen to it. => You can do this by creating an Acquisition DQMH Broadcast Event that broadcasts the data received.
- Created Launchers for each module, removed them from Main.vi and created Application Launcher. => Done! Each DQMH module comes with their Start Module DQMH VI.
- Final touches and editing Build specification and first exe => Done! If you start from the DQMH project template, it already comes with a build specification.
Slide 33 will look very familiar, it is the CML Main.vi transformed to use DQMH looking API calls.
In slide 35, our advice has changed to use helper loops for repetitive tasks or tasks that need to wait. You don’t want to ever hold your Message Handling Loop hostage.
Slide 36 is just describing the “Requesst and wait for Reply” DQMH event that you can create with the DQMH productivity tools (Tools>>Delacor>>DQMH>>Create DQMH User Event…)