NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

TestStand CVI OI link errors

I was given a .UIR file from a teamate (another company), but no implementation, so that our GUI could ultimately look and feel like theirs (since that's what the customer wants).  I'm using CVI 8.0 and I opened up the .UIR and ran the UI to Code Converter tool.  Since the tool forces you to enter the name of the .h and .c target files (associated with the panel), I ran the tool one panel at a time.  Ultimately, I had about eight .h and eight .c files.  When I do a 'create executable', I get 60 link errors.  The messages are all quite similar (but for different symbols) in that they say "Undefined symbol, '_SD_ExeEntryPoint1' referenced in SeqDisp.c".  I see where I use SD_ExeEntryPoint1 (no underscore in front), but I don't see where the _(underscore) version is coming from/being referenced.  Any clues here would be very appreciated.
 
In general, though, is this a correct approach?  Can I begin with a UIR that has much of the TestStand full-featured OI functionality available in its different panels and generate code, then begin filling in each template that's produced?
0 Kudos
Message 1 of 4
(3,113 Views)

I'm guessing those are the event handler callbacks. By the function nname, it looks like the application was based off the old style OI examples. TestStand 3.0 introduced new examples that are built using a number of TestStand specific user interface controls. The source code for these examples is MUCH simpler.

If you are starting from scratch with no source code, I'd recommend starting with the CVI examples in TestStand 3.5 and modifying them to meet your requirements.

0 Kudos
Message 2 of 4
(3,110 Views)

You said "I'm guessing those are the event handler callbacks. By the function name, it looks like the application was based off the old style OI examples"

Can you show me an example of old/new style OI?

Isn't there a way to convert the .UIR I was given from the older version to 3.5?  If I have to start from scratch, what is the best way to do this?  Would I start with the 3.5 TestExec.prj, open it up in LabWindows 8, open the TestExec.uir and start modifying?  Is it true that all the functionality for the controls/indicators I see are all contained in TestExec.c/h?  Is it difficult (and does it make sense) to split out the code such that the functionality for each panel (within the UIR) is contained in its own file.

0 Kudos
Message 3 of 4
(3,109 Views)
You can find a new style OI in:
 
C:\Program Files\National Instruments\TestStand 3.<x>\OperatorInterfaces\NI\Full-Featured\CVI\
 
I don't have an old TestStand installed to be sure, but the old style OI would probably be found in:
 
C:\Program Files\National Instruments\TestStand <1.x or 2.x>\OperatorInterfaces\NI\Full-Featured\CVI\
 
The old style example has a lot more code and that code is more complicated than the code in the new style example.
 
 
The UIR you have is a CVI file, thus converting it to TestStand 3.5 doesn't apply.
 
If you have to implement the whole application from scratch (instead of from the source code that goes with the UIR you have), you will probably be better off in the long run by starting the example from TestStand 3.5 and modifying it using the UIR you received as a user interface specification of sorts.
 
Controls on the old UIR that did "TestStand" things like display the steps in a sequence are now ActiveX controls in the new example which you configure and connect to other controls. In the old example, the function of these controls was entirely implemented in the example source code and the result was complex code with less functionality.
 
If there are controls in the UIR that were not part of the old example and do not directly implement "TestStand" functionality, you can probably just cut and paste them into the UIR from your 3.5 example and implement their callbacks according to their function.
 
 
BTW. I'm not sure I completely understand your situation were you have been given the UIRs but not the source for application and tasked with reimplementing it.  Assuming the source code is absolutely not available and that you have to make significant modifications from the functionality the TestStand examples provide, then the new example is a better starting point. However, it won't look "exactly" the same. In many cases it will look better. Run the old and new examples to see the difference.
0 Kudos
Message 4 of 4
(3,100 Views)