From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Bug? Not All VIs Included in PPL

Solved!
Go to solution

I'm experimenting with PPLs in my application and I'm having issues where it looks like not all files in my library are included in my packed library after building.  But after looking into it the VIs are included, but not listed.  Attached is a zip with a project which includes all the required source.  There is a Windows target and an RT one.  Each has the same single library, and in it is a single class with a few VIs and controls.  What this does isn't important but know this is part of a larger library that will contain multiple classes some inheriting from others.

 

Open the Test Get Helper Path in PPL.vi and run it.  You'll see a path, and this is a path to a VI that is called via a static VI reference and it should say something like:

 

Build\Windows Automotive Library.lvlibp\Class\Drivers\Generic CAN Drivers\CAN Class\Helper\Main CAN Class Helper.vi

 

The problem is if you open that packed library that VI isn't in there.  So the VI is clearly being included in the build, but it isn't being listed as being in the build.  Why is this and can it be fixed?  This investigation started when I couldn't actually call that VI and it appeared to not be included.  Now it appears to be included but isn't shown.

0 Kudos
Message 1 of 4
(2,220 Views)
Solution
Accepted by topic author Hooovahh

If the PPL is being built from the source included as Automotive Library.lvlib (into Windows Automotive Library.lvlibp), then your problem is that the source VI you want is a private VI within the library. Private VIs aren't publicly exported (and perhaps the compiler does some magic that vanishes them into their callers, I don't know...)

 

After looking around in the source more closely I see how you are testing the inclusion of the VI, so I guess it must(?) be still there. This makes me less sure what the problem is (although the invisibility is due to the access scope). I'd guess perhaps it can't be called from outside of the PPL and that's what you were wanting?

I'm not sure what you're trying to do or hoping to get. Maybe I'm missing something obvious but perhaps you can reword it a bit?


GCentral
Message 2 of 4
(2,202 Views)

Dang I need to read up on PPLs more.  Yup that was all it was, I didn't realize non publicly scoped items weren't shown but it makes sense that this is the case.

0 Kudos
Message 3 of 4
(2,178 Views)

As a convenient bonus, if you have a virtual folder with Not Specified access scope and all of the contents are private, then the virtual folder will show up empty (like with your Helper folder).

If you instead mark the virtual folder (in the lvlib) as private scope, then the virtual folder will also disappear from the lvlibp.


GCentral
Message 4 of 4
(2,174 Views)