Hi Community,
I recently stumbled upon Opentab and it looks very interesting to me. I come from a TestStand in combination with Python and LabVIEW world. And looking at the Python plugin, this looks astonishing in what you guys have been doing. The Python Plugin looks pretty equivalanet in what it can do compared to native C# steps. Please correct me If I am wrong here.
What I don’t yet fully get, is how the LabVIEW Plugin works. I mean I can run the LabVIEW examples and that works, but e.g. how do I set a verdict after a LabVIEW step has run? I.e. how do I enable the power of the OpenTab architecture to work with LabVIEW?
Thanks for the information and cheers,
Niko
Hi @thatstheend and welcome to the forum.
In OpenTAP we have a reflection layer on top of .NET reflection that allows any plugin to define plugin types, that are not regular C# types. That is what enables us to do integration with other languages.
For Python the integration is quite rich due to the PythonNet library that gives a close to 1:1 bridge between .NET and Python.
For LabView, the integration is not that rich, so there is really no way of specifying a verdict directly from a LabView-based OpenTAP plugin. This really comes down to what you can specify in the exported .NET API from LabView - and it’s not a lot.
If you want to add more flexibility, you could use mixins. For example you could install the Basic Mixins plugin. This gives you the limit check Mixin and that can be used to set a verdict based on values returned from LabView.
You can also use the Expressions plugin to further process and publish results from LabView.
Maybe you could try that out and say if that has interest to you, if so, I have a few more ideas you could try.
Hey @rolf_madsen,
thanks for your answer, this is what I figured from the docs and from evaluating the examples.
Basically, a Python class can properly inherit from TestStep, but LabVIEW can’t.
I was wondering about a different approach: what about a generic .net TestStep that hands over all necessary properties via some mechanism (NATS, gRPC, etc…) to a LabVIEW counterpart that executes it’s tasks, provides back all information and the .net TestStep hands back all info OpenTab.
Once I have a little deeper experience and a working example, perhaps we can have a talk about it.
Thanks for your insight already!
Cheers, Niko
It would be interesting to experiment with creating a remote plugin API that could be implemented in LabView, but also other apps, languages, etc, where its better to not host it in-process.
That would turn OpenTAP into a distributed system, which is harder to manage and debug, but also opens up a lot of interesting use cases.