NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

Sequence context becomes invalid after callback invokes status sub-panel.

I'm trying to create a TestStand OI that is based upon the Simple OI example but has a tab control that allows me to display the sequence from a number of parallel test threads and a LabVIEW based status subpanel.  The idea of the subpanel is to provide a user friendly summary of each UUTs' test status, the time to completion of the test and also provide the means for the operator to abort the test on a single test socket if required.  I'm using TestStand property functions in LabVIEW to access the FileGlobals for a specific UUT. 

 

My problem is that in order for the status subpanel to operate I've implemented a PostUIMessageEx callback that opens the status VI in a subpanel on the main tab control and then passes the calling sequence context via the activeXDataParam.  My understanding is that this is passed as a variant type and so I pass it through my callback as a variant and then call my status panel vi using an asynchronous call (see Subpanel Callback.gif) after passing the vi reference to a subpanel within the main OI vi.  When my status panel opens it attempts to read a FileGlobal from the calling sequence (the time to completion) but the LabVIEW TSGetPropertyValue function generates an error -17306, which suggests to me that the context reference is no longer valid.  

 

The other variables (numeric and string) are passed correctly and if I call the status vi independantly of the callback it works correctly.  So it appears that the problem is confined to the sequence context.  If I probe the context wire there is a value on the wire but I don't know of a method to verify its validity. Has anyone got any ideas how to remedy this one?

 

Many thanks in anticipation

 

SimonC aka Sipic

 

LabVIEW 2013 SP1 f2

TestStand 2013 

Win8

 

 

 

 

 

 

 

Download All
0 Kudos
Message 1 of 2
(3,598 Views)

Hi Simon,

 

I did a little bit of research into this problem and I found some documentation around the error code you described. It notes that "error -17306 occurs if the characters in your expression are interpreted by TestStand as the name of a property or variable. If you are trying to refer to a property or variable name, verify that you are using the correct lookup string. For example, if you are trying to reference a local variable called MyLocal, the correct lookup string would be the following: Locals.MyLocal."

 

Additionally, it mentions that there is a particular case where the expression you typed may seem to be correct but will throw one of these errors at run-time. This can happen when dealing with expression strings. Some string properties of some step types are to be used as expression strings. This means that their value should be a string containing an expression to be evaluated. The result for this evaluation should be a string value. For example, the message that a message popup step displays is hold in a property called "MessageExpr". This property holds an expression string. If you wanted the message to say Hello, you would need to enclose it in two pair of double quotes: Step.MessageExpr = "\"Hello\"".

 

Finally, I found a previous case where the issue was solved by replacing the ActiveX Control with a new ActiveX control and reconfiguring the settings to be consistent with the existing source code.

 

Can you look into these possible causes to see if they might be related to the problem you're experiencing?

 

Regards,

Jake A

Applications Engineer
National Instruments UK and Ireland
0 Kudos
Message 2 of 2
(3,526 Views)