01-11-2016 01:51 PM
Hello,
I want to load a vi from a packed library into my main application and share data between main application and loaded vi over FGV.
Is this possible? It should be the same application context, isn't it?
Before I start the vi from the packed library, I init the FGV,
But there is a problem:
The loaded vi from packed library seems nothing to know about initialized FGV.
For the loaded vi from packed library the data in the FGV is uninitialized!
Background: I have a big project which works with FGVs between (lets say) Driver Manager and main VI. Now I want to pack the Driver Manager with all drivers into a separate distribution (I would like to use packed library) so that I don't need to recompile every time the whole application (including Driver Manager with all drivers) because this costs time and the application gets very big (~33MB).
The compilation into a packed library was successful, it starts, i can communicate over queues, but the FGVs dont work...
What would you suggest?
Is there a trick?
Could you help me?
Thank you.
See attached code of test project which I created for test this(LV2014)
01-11-2016 06:18 PM - edited 01-11-2016 06:23 PM
FGVs in packed project libraries work fine - the thing to remember is that it is uniquely named (like all VIs). When it is combined into a packed project library it is namespaced by the name of the library eg. MyPackedProjectLibrary.lvlibp:FGV.vi and thus has a new name compared to the original source.
The other thing to remember is that only one copy a uniquely named VI can be in memory at any one time - any attempt to load another one will effectively 're-direct' to the current one in memory.
Make sure you are referencing the right copy of the FGV in your example; the built version in the PPL not the source. I see that the FGV is not part of the proejct library and is thus not included in the build: open the PPL file and you can see that FGV.vi is not present. Move the FGV and typedef into the PackedLib.lvlib project library, re-build, and then try a new project using just the lvlibp file.