We are releasing a new operator GUI video series on the OpenTAP Youtube channel!
In this new series, we are going to be building an Operator GUI which is a simple graphical interface for quickly running test plans and viewing verdicts.
This is a multipart series in which we will go through building the Operator GUI from start to finish.
What is an Operator GUI?
Operator GUIs are typically simple graphical interfaces that focus on running predefined test plans and viewing results. They are intended to be quick to use and minimize/prevent any editing of test plans.
Operator GUIs are useful when running test plans on high-volume production and manufacturing lines.
The simple interface provides the Operator with a quick way to run a predefined test plan on a device, classify it based on verdicts and move on to the next device!
How to Access it?
The source code of the Operator GUI will be made publicly available so that you can use it as is or as a starting point for building your own custom user interface.
Stay tuned for a link to the repository!
Cool! I know a lot of people have asked how to do this. It will be nice to have some more concrete examples. @craig.petku I know you were in the process of building your own UI, so this may be interesting for you to follow.
Already way past this. See my other posts on extending the Example GUI to include user input (dialog boxes). I have also added a method to read a button on the gui by the test sequence to allow an orderly shutdown and avoid an aborted status. Source for this has not been posted
My basic issue was wanting to monitor 6 devices for an extended period of time. I had some very basic parameters to monitor for pass/fail criteria and others that were simply engineering data. The monitored parameters use a results listener in the simple GUI to watch for test step names when the test step completes then look at parameters to make decisions on what to post. The color of each box changes based upon if there was ever an inconclusive or error condition. The end test button works like a dialog box but simply returns the state of the button. This allows conditional flow control steps to take action based upon the button in the GUI. Very useful in for breaking out of a repeat (until/while) loop. The only downside is I havenāt figured out the same behavior in the Editor, so the step interogating the button has to be disabled. This leads one to learn about how to handle an input variable that is connected to a step that is disabled (checking for a null link in the test step). Still some minor clean-up to do, but this can be reasonbably quickly adapted to other test scenarios provided one learns how XAML works. The biggest setback is output variables are not available in parameters so test steps have to add extra controls.
My method of disabling syslogs by not initializing them may be questionable, but worksā¦
All of this started with the SimpleOperatorGui project which Keysight pointed me to and is probably the basis of their video series. A significant piece of missing functionality in this example was lack of userInput. However I fixed that and posted the code for it so Iād expect they will include that in any future projects after it is cleaned up to standards.
Basically I learn to appreciate how little I know about windows programming as I explore how to implement features. I really donāt understand reflection (or care to) but it was necessary for implementing dialog boxes (including input boxes) in my version of the SimpleGUIā¦
@craig.petku Looks very neat!
Thanks for the useful feedback in relation to your experience of using the existing work and OpenTAP SDK.
With the Operator GUI series, our aim is for it to be a quick and clean starting point for building custom GUIs such as your own. Each user has their own set of customizations to do, so we want to provide a really simple GUI with basic functionalities that almost everyone will need and then let them customize it according to their need.
This simply shows an example of a multi-head UI and integrates several lessons learned from q&A on the forum including:
A results listener initialization that allows the CSV and SqlLite listeners to work concurently
User IO for dialogs
Accessing Parameters (and the ouput variable limitation)
These should be included in your discussion or implementation since if I ran into issues with these general concepts others could as well.
Hi @kaushik.santhanam
Can you share the code for this example it would be a great help and allow me to hit the ground running.
Iāve tried the github link but its not a public repository @craig.petku can you re-share please ?
in the session log, I see the following type of Warning
2022-06-15 13:03:21.901035 ; Serializer ; Warning ; XML line 4 column 6: Unable to locate type āTapPlugin.BasicSteps.FixedCountLoopā. Are you missing a plugin?
Can I just add the related .dll for the above plugin to my project OR do I need to add the whole project to the solution ?
does the TestPlanRun need to be run as ExecuteAsync or just as a plain exe ?
i .e.