NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

Is there any documentation on TSAutoMgr.exe?

I noticed a while back that the TSAutoMgr.exe server is executed whenever you create a TestStand engine. I peeked at the tlb for the server and it looks like you wrote a remotable version of the GIT. Cool. Unfortunately there's no way to discover the registered interfaces, so it seemed like a NI secret back door.

Then my boss starts asking me if there's any way to access the sequence editor's engine instance programattically. It's not a singleton, it's not registered in the ROT, so the only hope is accessing IEngine through IInterfaceServer::AcquireDisInterface(). So my questions are, what does the sequence editor register in TSAutoMgr, and are the IDs published anywhere?

Thanks,

Aaron Stibich
Senior Engineer
Innovative Technologies Inc.
0 Kudos
Message 1 of 7
(3,880 Views)
I don't know if this helps you, but the engine is a per-process singleton. Thus, if you create the engine anywhere in the editor process, you are just getting another reference to the engine the editor is already using. You could then pass that reference to another process, if necessary.
0 Kudos
Message 2 of 7
(3,872 Views)
I should have mentioned that I want to access the engine from another process, and I'm pretty sure the engine isn't a computer wide singleton.
0 Kudos
Message 3 of 7
(3,870 Views)
Hi Aaron,

Can you give me a better idea of what you are trying to do? When you say that you are trying to access it from another process, what do you mean? What is the process? If I can get an idea of what your overall goal is, then I believe we can better answer your specific question.

Thanks,
Caroline
National Instruments
Thanks,
Caroline Tipton
Data Management Product Manager
National Instruments
0 Kudos
Message 4 of 7
(3,837 Views)
First, I'm curious about TSAutoMgr.exe.

Second, I would like to get a pointer to the Sequence Editor's instance of the TestStand Engine (IEngine). Then I'll use it to open files, insert steps, run sequences, close, etc.

I can't say I have a specific application in mind. Just probing the design space.

Aaron
0 Kudos
Message 5 of 7
(3,826 Views)
Aaron,

One way to get the engine reference from the Sequence Editor is to execute a sequence in the editor. You can then access a reference to the engine (RunState.Engine), and pass it to any code module you wish. You can use this engine reference to do anything that the sequence editor does (open sequences, add steps, etc...).

Allen P
NI
0 Kudos
Message 6 of 7
(3,801 Views)
Aaron -
the TestStand automation manager allows you to pass a interface between two processes without having to pass it via a function call to another "client" process. In a TestStand application you could call RegisterInterface to register the engine, and the client application could call AcquireInterface to get the engine. The key is that one of the applications should call UnregisterInterface when the client has gotten the interface or the client no longer should be able to get it. I am not sure what the effects during shutdown are of having an external process hold onto a reference to the engine.

There is a set of dispatch functions also.

The create functions are there so that an application can request that the shared object be created in the automation managers process instead of in the requesting application's process.

Note that this is an internal TestStand component, so there is no documentation and support is limited.
Scott Richardson
https://testeract.com
0 Kudos
Message 7 of 7
(3,783 Views)