DQMH Consortium Toolkits Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

Handle Cloneable Module Settings

Solved!
Go to solution

Hello,

 

Context

 

I have learned of DQMH recently and decided to give it a try in a new project. I have a variable number of DUTs (of different types within the same family of product), therefore a variable number of instruments with possibly different configurations between them.

 

I am having some difficulties figuring out what's the best way to handle the configuration between the clones, the pairing between different cloneable modules, and the handling of different hardware combinations.

 

Example

 

To give more context to the hardware variations, I wanted to give a few examples. Let's say I have DUTs, power supplies, and DMMs.

 

The user could have completely parallel system:
PS1 - DUT1 (type A) - DMM1
PS2 - DUT2 (type B) - DMM2

 

There is also a variation where the user might need to run tests using a mux, so two UUTs would share a DMM.

 

PS1 - DUT1 (type A) - mux ch1 - DMM1
PS2 - DUT2 (type B) - mux ch2 - DMM1

 

Also if the DUTs are of the same type they could possibly share the same power supply:

 

PS1 - DUT1 (type A) - mux ch1 - DMM1
PS1 - DUT2 (type A) - mux ch2 - DMM1

 

Note that the actual system has more components and that there can be more of those combinations of devices/instruments and mux/switches. 

 

Questions

 

1. What is a good way to display those configuration to a user? As a shown below, I modified the Settings Editor from the CML template and have arrays of the cluster so the user can add elements or empty the array. But I was wondering if there is a better way of displaying it.

 

alphanull_1-1671146728340.png

 

alphanull_0-1671146702329.png

 

2. Once I have the settings saved into a file, how should the clones access that information? How can the clones know which settings to pull from?

 

3. What would be a good way to keep the pairing between the instruments and the DUTs, and varying equipment in between them (mux, etc.)? 
As you can see in the settings screenshot, I ask the user to label the DMM and use that label in the UUT settings. When I start the modules, they return their module ID, which I store in a state cluster array within my main program. So I can keep track of what's the UUT module ID, and the corresponding DMM Module ID. Is there a better way of doing it? 

 

I know it's a lot of questions, so please feel free to answer partially. Any help is appreciated, thank you in advance!

 

0 Kudos
Message 1 of 3
(1,150 Views)

Questions

 

1. What is a good way to display those configuration to a user? As a shown below, I modified the Settings Editor from the CML template and have arrays of the cluster so the user can add elements or empty the array. But I was wondering if there is a better way of displaying it.

 

alphanull_1-1671146728340.png

 

 


This looks simple enough, but it doesn't do any checking/validating.  Perhaps this needs to be displayed as some sort of table that automatically checks/limits the user from multiply selecting things they can't.

 


2. Once I have the settings saved into a file, how should the clones access that information? How can the clones know which settings to pull from?

 

What we do at WiS, is upon every DQMH module launch, we immediately send down the settings/config the freshly launched DQMH module needs.  So I presume you'll have some higher module that's launching things - send down the config to each respective clone right here after launching.

 

3. What would be a good way to keep the pairing between the instruments and the DUTs, and varying equipment in between them (mux, etc.)? 
As you can see in the settings screenshot, I ask the user to label the DMM and use that label in the UUT settings. When I start the modules, they return their module ID, which I store in a state cluster array within my main program. So I can keep track of what's the UUT module ID, and the corresponding DMM Module ID. Is there a better way of doing it? 

 


Perhaps look at using Sets - this will only allow unique values so it will help prevent the user selecting multiple options that are not allowed.

Christopher Farmer

Certified LabVIEW Architect and LabVIEW Champion
DQMH Trusted Advisor
https://wiredinsoftware.com.au

Message 2 of 3
(1,127 Views)
Solution
Accepted by topic author alphanull

At HSE, we usually stick to the rule of a single configuration file per module. For cloneables, that would mean that the single file has one section per expected clone.

 

For your specific situation, I could imagine a clone manager (see this discussion) might be helpful in managing the configurations, starting and stopping clones and handing over all the information those clones need.

 

As for the UI, the array controls don't do much in terms of user experience. Maybe go with a Multicolumn Listbox as Chris suggested, and then find a nice way to let the user add/edit entries (either a popup dialog or populating some controls next to the MCLB when a user selects a row)...




DSH Pragmatic Software Development Workshops (Fab, Steve, Brian and me)
Release Automation Tools for LabVIEW (CI/CD integration with LabVIEW)
HSE Discord Server (Discuss our free and commercial tools and services)
DQMH® (The Future of Team-Based LabVIEW Development)


Message 3 of 3
(1,102 Views)