NI TestStand

Showing results for 
Search instead for 
Did you mean: 

Terminating all tests

I have started building a replacement UUT Dialogue for the TestStand parallel model. Basically I set the TestStand ModelOptions parameter "ParallelModel_ShowUUTDlg=False", and interact with my own Labview UUT Dialogue in the PreUUT and PostUUT callbacks for each execution. This was the alternative method given by NI to replace the standard UUT dialogue (which I find never seems to provide the functionality required).


In general this concept is working ok, but I have one annoying issue. I normally shut the test system down by setting Parameters.ContinueTesting=False in the PreUUT callback for each execution. This parameter is set from data provided by a queue connected to my Labview UUT Dialogue.  


The problem occurs if I have a parallel setup with say 4 sockets configured. If 3 sockets are running executions that are partway through a test, and the 4th socket is sitting in a loop waiting for a barcode in the PreUUT callback, and someone presses the TerminateAll button on the operator interface I have an issue. The three running executions will finish their test loops and fall back into the PreUUT callbacks as expected. However the 4th socket was already waiting in the PreUUT callback and will completely terminate itself and stop running. I've then left with 3 sockets waiting in the PreUUT loop, and the 4th socket completely shutdown.


The only way I can see around this is to somehow block the TerminateAll request for any sockets sitting in the PreUUT loop. Has anyone else tried to replace the UUT Dialogue, and if so how did you get around the TerminalAll issue?

0 Kudos
Message 1 of 3

Hi Bilby42,


I did a quick search to see if anyone had done something similar, without too much luck.  I'd recommend looking through the terminate all callback, because the problem seems like it may be arising from the details within there.




David Randolph

Applications Engineering

National Instruments

0 Kudos
Message 2 of 3

Thanks for the reply David,


I may have been making things too complicated. I've now built a running replacement UUTDialogue for the parallel model, and I have put my own version of the TerminateAll button on my UUTDialogue form. I will tend to ignore the terminate all buttons in the standard UI. This means its relatively simple to make a custom UUTDialogue using the PreUUT and PostUUT callbacks.


My UUTDialogue uses the synchronisation manager to send information from my Labview UUTDialogue back to TestStand. It uses vi wrappers around a labview queue to send data from TestStand to my Labview UUTDialogue.


The main complication was making my UUTDialogue as an MDI application, i.e. my UUTDialogue is a single mdi app with a child window created for each TestStand socket. My current project is a burnin rig which has 20 sockets running, hence my UUTDialogue creates 20 child windows in the main form. Its sort of like the standard parallel UUTDialogue but much more flexible for barcode entries (I have an automated barcode scanner etc).


As an aside; every TestStand project I've worked on has required a custom UUTDialogue, as the barcode entry form usually requires some level of modification. Overriding the PreUUT and PostUUT callbacks is the way I've normally done things. However it would be nice if the source code for the standard UUTDialogue was available in several different languages (I understand it was written in CVI and released as a dll).




Message 3 of 3