08-29-2016 06:33 AM
Good morning,
I'm using TestStand 4.1 and am having a bit of trouble.
I have a sequence that runs a CVI code module that brings up a user prompt on SequenceFileLoad and SequenceFileUnload. I also have a step in my MainSequence that does the same.
When I run the MainSequence using Single Pass, my SequenceFileUnload callback does not run when I close the sequence file. It DOES when I close TestStand.
In addition, when I run the MainSequence using "Run MainSequence", my SequenceFileUnload callback runs on sequence file close.
I have been pouring through the help docs to understand what is happening in the SinglePass entry point that could be affecting the way that SequenceFileUnload runs, but have been unsuccessful.
Fernando
08-29-2016 12:23 PM
A couple things to test. If you call a message box only and not the CVI code do you see the same behavior?
If you choose File>>Unload All Modules before closing the sequence file do you then get the same behavior?
My hunch is that the CVI code is still in memory and not releasing the sequence file for some reason. Although, it seems like it should be.
08-29-2016 01:13 PM
Hey Jigg,
So after running the sequence file using single pass, the SequenceFileUnload does not run when I close the sequence.
It does run when I run File>Unload All Modules.
Here's another piece of info... I'm using the batch process model.
When I change my sequence process model to sequential model, the SequenceFileUnload runs when I close my sequence file.
Is there something that is done in the batch process model that is not allowing for the sequence file to be unloaded upon closure?
Fernando
08-29-2016 02:52 PM
Do you have other executions still running? Or is everything complete?
08-29-2016 02:59 PM
Everything is complete.
08-29-2016 03:05 PM
Process models do not impact engine callbacks. Unless you are using engine callbacks in the process model that start with ProcessModel---. That being said though there isn't a ProcessModelUnload or ProcessModelLoad so they shouldn't impact what you are doing.
Create a new sequence file.
Add the SequenceFileUnload Callback
Put a message box (or even easier a breakpoint) in the Unload callback.
Point the file to the Batch model you are using on the other one.
Save the sequence file and execute it.
Now close it.
Is the Unload callback being executed?
Just trying to eliminate the process model as the culprit here.
At this point you really just need to try and isolate what is causing the issue.
Regards,
08-29-2016 03:07 PM
My next step would be to remove the CVI steps from the SeqFileUnload callback in your original code.
Also, are you spawning any threads in your sequence file?
08-30-2016 07:42 AM
I'll give that a go and get back to you.
Thanks for all of the help so far!
Fenando
09-06-2016 06:52 AM
Jigg,
I ran some more tests and found that the problem occurs when I run the CVI user prompt anywhere in the main sequence.
In the CVI DLL, there is a close function that is exposed to the TestStand developers, so I am using this on a sequence caqllback after the UUTs have finished running. after doing this, my SeqFileUnload runs every time. Thanks for your help with this!
Fernando