Hi,
somehow I´m stuck.
Short description of the problem:
I am designing and implementing a new LV-application for our test stands. The old system was written in Agilent VEE. Basically the software consists of one main application and some libs which are placed on a network folder. Every test stand has one PC and up to two Test Modules each connected to one or two DAQ Cards. Each test stand is running the same main application. The test modules are recognized by hardware code and the libs are loaded according to the result. This gives us the flexibility to easily change parts and whole pcs or to combine different test modules without a lot of configuration effort. The drawback is that a lot of libs are shared by different test stands and it is very dangerous to change something. In a running test system only on module is active at a time.
In the new LV-Software I implemented a framework to initialize the modules and load the corresponding libs by loading child classes of the modules and test devices (I implemented everything in lvoop, even if some classes are only abstracts). I also introduced a source code control system using tortoise and svn. I´d like to use my libs (like string, database, etc...) as externals and bind them to one specific revision nr for module software in a stable status because further changes should not affect my running systems.
But what can I do, if I have a combination of two test modules, each requiring a different revision of one lib?
My Ideas so far:
1: Add the libs to each Module Lib and load them as module1:lib, module2:lib. This is not possible because a vi or lvlib can only belong to one lvlib.
2: Dynamically load and unload libs with different revision nr. according to the module active. Since it is not possible to have several instances of one vi in memory is it possible to dynamically unload and load the needed libs according to the module that is active?
3: Always use the newest lib available and be very careful about changes. This is what we do now and it´s not really comfortable.
Any suggestions?
Greetings,
Dan