09-05-2016 06:27 PM - edited 09-05-2016 06:31 PM
I am building a test sequencer that uses packed project libraries. I want to be able to get the path to a VI that is part of the packed library but not explicitly part of the lvlib the PPL was built from. If I try to get VI dependencies of the library or of any VI in the library using the Get All Decedents method of the VI, I only get dependencies that are explicitly part of the lvlib, even though I can clearly see that there are VIs that are part of the packed library, I can open them, and I can view the code.
Background:
My test libraries have a variant input onto which I put a global variable used byt the test sequencer. So that the tests can have access to these global variables, I want to unpack the variant values and write them to the test step's local (namespaced) copy of the global. This funciton works, but in order to use it, I need the path to the lvlibp's copy of the global. I hvae tried wiring the VI name, since I know it is in memory, but this returns an error. I have tried also wiring hte VI's name prefixed by the lblibp's name, following hte format used in the title bar of the global opened from within the packed library.
I do not want to include hte global in hte library explicitly, since it will be used by other libraries. I could deploy the global in ots own packed library, but I wanted to see if I could make this solution work,a s it seem elegant and transparent for the other people in my group to try to use (just use this global!), and it requires fewer files to be deployed.
Solved! Go to Solution.
09-05-2016 06:51 PM - edited 09-05-2016 06:52 PM
Upon further experimentation, I found that you can open a reference to any VI in a packed library name using the string <library name.lvlibp>:<vi name.vi>
06-21-2018 07:50 PM
I'm bumping this. Turns out the problem remains: if I try to get the dependencies of a VI that is in a packed library, the Get VI Dependencies method returns nothing.
This time, I need to close front panels of any VIs that were abandoned open when a test (dynamically called from a packed library) is aborted. To do this, I have to get all dependencies of the main test VI and look for any open front panels and close them. So far, no luck!
06-21-2018 08:08 PM
And the solution is:
To get dependencies of a VI within a packed library, the dependency itself must be explicitly a part of the lvlib from which the packed library was called.
Which I don't get exactly, but there it is.
In my case, any VI whose front panel may be stranded in the case of a test or test-sequence abort should be explicit included in the lblib before building the test library.