Jump to content
Maksim Kuznetsov

Accessing items stored in TestStand engine cache

Recommended Posts

Dear TestStand Developers and Users,

I spent quite a while trying to figure out one thing and still haven't found a satisfactory solution. This is why I am here.

At work I have to maintain hundreds of TestStand sequences which use many custom steps. Every time I launch a sequence
it takes 2-3 minutes to preload all the modules (custom steps). If something goes wrong and I need to change one of the
custom steps I need to unload required VIs from TestStand engine before I can edit them:

1. Go to File -> Unload all modules
or
2. Go to Types Palettes -> find required custom steps -> (right click) -> Properties -> Substeps -> Specify Module -> Edit VI

The first option is nice and quick, however after the VI is edited it takes another 2-3 minutes to preload all modules back.
The second option takes 40-50 clicks to do what I want. Both options are not desirable and I am looking for a quicker
way to load/unload specific modules.


What I recently did was I made a VI Action Step (Module Monitor), which is executed in the very beginning of the sequence.
It analyses recursively every sequence, every step and stores references to VI modules in the TestStand User Directory.
Then I can open that file with a developed Module Manager and unload the particular VI. Please find the code attached.
This approach works, however every single sequence has to be modified and as soon as the sequence file is closed all modules'
references are dead. However references to the Custom Steps are still alive in TestStand's Engine cache, regardless of the sequence file
being in memory or not and VIs are obviously reserved (not editable). As a result, this approach only works for VI Action steps.

Another approach is to use StationCallback (Pre or PostStep) to create a database of steps that executed. It has the same issue as the approach
above (only works for VI Action steps). The listed approaches also don't work for Edit VIs of custom steps, because these are loaded not
during the sequence execution, but during the development.

I did a lot of research and it seems that TestStand doesn't have an API to get the data stored in its cache (since 2003):
https://forums.ni.com/t5/NI-TestStand/Getting-a-list-of-loaded-sequence-files/td-p/76801

Does anybody have any idea of how to access TestStand memory to see what is loaded and to get references to these modules?

P.S. I have also posted the same question on NI Community Forums:
https://forums.ni.com/t5/NI-TestStand/List-of-TestStand-modules-loaded-in-the-engine-cache/m-p/3817336

Thank you!

Kind Regards,

Max

teststand-module-manager.zip

Edited by Maksim Kuznetsov

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.