This presentation will go through real examples of using dynamic dispatching with LabVIEW classes within packed libraries and discuss the deployment process.
Video on YouTube: https://www.youtube.com/watch?v=XEHPBRmDa7M
Great presentation Philip, thank you.
Thank you for the review and questions.
- Has anything changed in LV 2014 to simplify this process at all? If so, what has changed?
Excluding Dependent Packed Project and Shared Libraries from a Build Specification
This new feature would allow Packed Project Library build for the child class plugins to not copy the parent PPL into the build location. That doesn't really improve the process.
Setting the Destinations of Packed Project and Shared Libraries You Include with a Build Specification
- I've got all of these different FG's (I also dynamically broadcast events) throughout my system and I currently use a plugin architecture and so it looks like what I am going to have to do is put all of these FG's/dynamic events into a parent class and or parent classes in order to make this work. Does that sound right? Any other suggestions?
Hopefully that helps. Let me know if you have more details that would help me answer your questions more specifically.
One other comment regarding functional globals in classes: I've found that in many instances, accessing properties in a class is very inefficient when you are accessing large data. Functional globals are very efficient. In cases where I have large data in the class, I will use Data Value References and store the DVR in the class property. I then would make an accessor that looks just like a normal read/write VI, but it is reading from the DVR. You just need to be careful when accessing the data since it is by reference.
It is possible to replace a library with a packed project library dynamically, but LabVIEW definitely makes you jump through a couple hoops to do it: