06-18-2018 09:43 AM
Hi I don't really understand why this happens.
I can only use one method/property Node for ApplicationMgr at the same time in one VI?
Here I have the 3 main changes I made and maybe I'm not closing a reference properly or something.
Has anyone an Idea?
06-18-2018 03:10 PM
Why are you closing your application manager twice? You can only have 1 application manager per UI.
06-19-2018 02:21 AM
Ok I get it. Thanks.
How can I implement the functionality of the Start and the OpenSequenceFile in one Node?
The thing I do with this part of the code is to load the File and then Open it automatically. Is there like an alternative?
06-19-2018 04:09 AM
I don't understand it ver well, here are 4 of them in a row. Why can you have here all the nodes you want but not in the main VI?
06-19-2018 08:11 AM
Hi, i found another way to do what I wanted to do without using 2 Application Manager Control Nodes.
As usual it works fine the first time I execute it. But I get the same error dialog after I execute it for the second time.
I tried to make it the cleanest possible and here are the changes are made.
And the EndExecution Callback is this:
What am I doing wrong?
06-19-2018 08:55 AM
To start a new execution you can put a NewExecution invoke node on the block diagram. This is an engine method.
It takes the sequence file ActiveX reference as parameter. and you have to specify the sequence to execute.
If you want to get the sequence file from the Callback VI you should add a load reference to it, because otherwise the engine unloads it from cache. But you can start it there directly.
06-19-2018 09:14 AM
*If you want to get the sequence file from the Callback VI you should add a load reference to it, because otherwise the engine unloads it from cache. But you can start it there directly.*
How can I do that, with a Global/Local Variable?
Do you have an Idea regarding the problem " Excepcion ocurred in TSUI.IApplicationMgr" ?
06-19-2018 09:17 AM
Why aren't you retrieving the sequence file name not directly from the clientfile object? You do not need to close the execution reference in your callback vi, since it is closed by the engine after the vi is finished.
As ~jiggawax~ mentioned before you cannot use two application manager controls in the same project. But you can store a reference to it in the UI Data cluster which is kept in a shift register and retrieve the application manager from it when you need it.
There is no need to quit the application when you end an execution? Could you please post what happens if the quit application user event is thrown? If you want to start another execution the application manager has to be in running state.
06-19-2018 09:27 AM - edited 06-19-2018 09:29 AM
Thanks a lot! You gave me my fiirst Kudo!
To use the new execution invoke node you have to retrieve an engine reference. Im not using variables at all and I don't do this for a reason. But you can get the engine from a application manager reference with a TSUI.IApplicationMgr,GetEngine invoke node. The best is to keep it until your application shuts down and then close it. You can keep it also in the UIData Cluster. Since this is a TypeDef Control it will be easy to modify.
You even can pass the reference to the callback vi if you define a cluster for the user parameter.
The exception can have multiple reasons. Do you still have two application manager controls on your front panels? Do you have an error number or desription?
06-19-2018 09:44 AM
If you open a sequence file using GetSequenceFileEx then you need to close it using ReleaseSequenceFileEx. There is more in the help on this: https://zone.ni.com/reference/en-XX/help/370052R-01/tsapiref/reftopics/engine_getsequencefileex_m/
Also, I've been watching your posts. It looks like you simply want to open a sequence file, execute it and close the UI when the file is completed. You can just use the simple out of the box TestStand UI (no changes) and pass command line arguments. This may be your simplest solution. https://zone.ni.com/reference/en-XX/help/370052K-01/tsfundamentals/infotopics/startup_opt/
I've attached a simple example of how to do this.