Hallo, I have done some manteinance to an application compiled with LabVIEW 2012. That app has an installer, so my users can upgrade it easily. I usually install the application on the same machine where I develop with LabVIEW and after I try the installation procedure on a clean machine to see if issues arise. Today have seen that on the development PC, the executable runs fine. Instead on the clean machine, the following message appears after that the application has loaded the panel. Have you seen this message in past? I have found some posts here: other users have found the same issues, with older versions of LabVIEW. forums.ni.com/t5/LabVIEW/VI-has-an-error-of-type-2208-42308-302208/td-p/1540496 I have upgraded the DAQmx drivers on the clean machine , but the issue remains. Any idea?
My question deals with how best to distribute large collections of lvclasses that implement a 'plugin' architecture. Some background first:
I've been reading the lava forum for about two years and dove head first into LVOOP about a year and a half ago. As such I may be calling what I have 'plugin' when a better term already exisits for what I'm doing; please correct me if there is a better term.
The application I've got implements essentially a dynamic form that allows the user to structure properties of a tdms file with information needed to complete some kind of test on one of our products. This 'blank' file is distributed to the correct test stand where it can be used to spawn data files that are populated with information from each test run. Pretty common task I think.
To implement this I have a four-tiered class hierarchy:
Generic Metadata -> Generic Product Series -> Specific Series -> Specific Model
The bulk of the code and all the interfaces are implemented in the first two classes with the last two providing overriding methods as needed for whatever specific product is being worked with (which is why I'm calling it a plugin architecture). This means the last two classes represent an ontology of the company's product line, which means there are a LOT of classes there. Last count I had 24 Specific Series and around 1000 Specific Models.
In the development environment, I load the first two classes as constants on the block diagram then use a factory to load the specific classes from disk at run time by building a relative path off of the top level class path. This works well because all the classes are part of my project and are therefore easy to manage on disk, but I need to be able to build this application into an executable and distribute it to the entire company.
How can I include the classes in my distribution and load them at run time without making maintenance a nightmare?
Would packing each class and its methods into an llb, including all the llbs in an installer, and loading each class from the llb at run time work? Would my dynamic VIs work from inside llbs? Would packed project libraries be a better choice? Do I have to put the entire class hierarchy inside the library or can I compile the top two classes into the exe?
Lots of questions!
Also I tried to upload a diagram of my class hierarchy, but I think my webfilter is preventing me from uploading anything.