LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Get dependencies of VI in a packed project library

Solved!
Go to solution

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.

 

 

_____________
Creator of the BundleMagic plugin for LabVIEW!
0 Kudos
Message 1 of 4
(3,608 Views)
Solution
Accepted by topic author littlesphaeroid

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>

_____________
Creator of the BundleMagic plugin for LabVIEW!
0 Kudos
Message 2 of 4
(3,597 Views)

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!

_____________
Creator of the BundleMagic plugin for LabVIEW!
0 Kudos
Message 3 of 4
(2,808 Views)

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.

_____________
Creator of the BundleMagic plugin for LabVIEW!
Message 4 of 4
(2,805 Views)