Joe -
TestStand 3.0 just released and we announced it at NIWeek conference here in Austin just this week.
One way of handling the issue of init once a set of instruments is to create a new sequence file that has a sequence to init and a sequence to close the instruments. Assuming that you always terminate a sequence and do not abort them, you could add a ProcessSetup and ProcessCleanup callback sequences to the client sequence file that using these instruments. These callbacks are automatically called by the process model in both the Single Pass and Test UUTs execution entry points. The callback sequences could call the init and close sequences for the hardware. In the hardware sequence file you could reference count the number of ex
ecution that init and close by setting the file globals in the sequence file to be shared across executions and then add a numeric value that keeps track of references for the instruments. The init sequence adds to the count, and the close sequence subtracts from the count. The init sequence inits the HW if the count is 0->1 and the close sequence closes the HW if the count is 1->0.
This is one of many ways in TestStand that this could be done, not to mention that this could also be done in a similar way in a LabVIEW VI or DLL directly.
If you abort an execution then the reference counting idea above would fail to decrement properly. That might be ok for you. The above idea could be made more robust by using the Semaphore synchronization step type to do your reference counting.
Scott Richardson (NI)
Scott Richardson