05-18-2016 06:08 AM
Hi,
I am currently trying to get the name of my Main Sequence tests being run and send the name over to my LabVIEW GUI interface for a custom progress bar. However, I am relatively new to TestStand and I am having some difficulty figuring out how exactly to do this as well as determining the time for each step to run in my Main Sequence.
05-18-2016 06:36 AM
Hi,
the name of your Main sequence is always Main ![]()
If you need information for any steps in your current sequence you can access them via ThisContext.Runstate.Sequence subproperties.
Have a break on first step of your sequence and check in variables view, what is availabel
05-18-2016 06:47 AM
Hi Oli.
Thank you for your response and from what I understand from what your saying I can get the name of my current testing running via ThisContext.Runstate.Sequence.Main?
So for an example if I have 3 tests running within my Main Sequence and I want the name of the current test running I can use this current expression:
Locals.TestName = NameOf(ThisContext.RunState.Sequence.Main)
Where my "TestName" is a string in my Locals to hold the current test name, which will get overwritten whenever a new test is executed. For an example if I had Test1, Test2, and Test3 in my Main Sequence it would return in my locals string as Test1 when executing, then overwrite Test1 with Test2, when Test 2 is executing?
05-18-2016
07:07 AM
- last edited on
10-17-2025
11:53 AM
by
Content Cleaner
If you want to send the name of your Main Sequence tests over to the LabVIEW UI then the prescribed way of doing this would be using User Interface Messages.
There's a good introduction to UI Messages here: Using TestStand User Interface Messages (UI Messages)
Typically, you will need to:
1. Define a custom UIMessage, eg. UIMsg_UserMessageBase+1, to use in both the TestStand and LabVIEW
2. Call a PostUIMessage(UIMsg_UserMessageBase+1, TestName) to send the UI the TestName
3. Add a Callback VI to receive the UI Message and pass in any references to controls (eg. custom progress bar) you wish to update
4. Add a case in the Callback VI for UIMsg_UserMessageBase+1 and modify the control with the received TestName
All this should be described in the link above.
I hope this gets you started.
Regards,
Charlie
Charlie Rodway | Principal Software Engineer | Certified TestStand Architect (CTA)
Computer Controlled Solutions Ltd | NI Silver Alliance Partner | GDevCon#1 Sponsor
05-18-2016 07:16 AM
Hi Charlie,
I have reviewed your link that you have suggested and we do indeed have the same solution to process and execute the message protocols. I am working with some VI's that someone has given me as an example. What I am trying to do is to create and expression that simply determines, which test in my Main Sequence that is currently running and store that into a string variable, which I would then send over via my protocol. I am having difficulty trying to make the expression as this is new to me.
My expression is the following:
Locals.TestName = NameOf(ThisContext.RunState.Sequence.Main)
The idea is to have a Local named TestName and the function would get the name of the current test running in my Main Sequence.
For an example I have TestA, TestB, TestC in my Main Sequence and I would like to know the name of which test is running at the time.
05-18-2016 07:27 AM
Does this work for you?
Locals.TestName = RunState.Sequence.Name
Regards,
Charlie
Charlie Rodway | Principal Software Engineer | Certified TestStand Architect (CTA)
Computer Controlled Solutions Ltd | NI Silver Alliance Partner | GDevCon#1 Sponsor
05-18-2016 07:35 AM
Hi Charlie,
If run that current script wouldn't I get the name of the current step running rather than the Main Step? For an example if I was running TestA and it was calling a sub-test of TestAa, would the name coming back to my variable be TestAa, which is a sub-sequence I called or the Main Sequence. I have attached an image of a basic test I am trying to conduct in order to get the name of my test. I am trying to use that script to obtain the Test_POS1 and not the sub-step that it calls, which would be Stepper_POS1.