07-30-2003 03:29 PM
Blog for (mostly LabVIEW) programmers: Tips And Tricks
07-30-2003 11:06 PM
07-31-2003 01:40 AM
07-31-2003 06:10 AM
Blog for (mostly LabVIEW) programmers: Tips And Tricks
07-31-2003 06:40 AM
07-31-2003 06:53 AM
Call is similar to a subVI call.� The call by reference node knows the input and output types and it is actually pretty easy to pass parameters.� The call node will not return until the subVI completes, thus the calling diagram will be synchronized to the call.
--- I cannot use terminals to pass data, as I do not know what data the plug-in wants. One plug-in might need a value from one channel, another might need values from 5 or more. Who knows, another might need to average all 27 temperature channels.
So the terminal will be fixed (probably one unused terminal), regardless of which mthod is used to call.
Run VI method is closer to pushing the Run button on a VI.� It doesn't allow for parameters to be passed, but it allows for VIs with different
connector panes to be invoked.� It also allows for the Run to either wait for and synchronize with the called VI, or to return as soon as the VI starts, letting each run to completion in parallel.
--- They will all have the same (unused) connector pane, so that is not an issue, either way.
I will have to wait for completion, since it's possible that the next channel's inputs are this channel's outputs, so I have to keep it synchronized either way.
Therefore, given the way I'm going to use it, I don't see a difference between CALL BY REFERENCE and INVOKE METHOD. So I will flip a coin.
Whether to load at launchtime, load when needed and have a timer to purge the loaded VIs, loading and unloading at certain stages of execution, or loading and unloading for each call requires more information about the project, and they may be hard to choose between without some experimentation.
--- Well, I will have a START TEST button, and a CONFIGURE button. In the CONFIGURE screen, they will choose what VI's get plugged in where. When they start the test, I will load the plug-ins, and complain if they can't be found or something. During the test they will be called, and when the test is over they will be unloaded.
LV has the compiler and Open Reference can recompile older VIs if necessary.� An EXE can't compile VIs.� This simply means the plug-ins
have to be saved in a compatible version or they will not work.� The definition of compatible is more flexible for the editor than for an EXE.
--- That I hadn't thought of, but it makes sense. So if they upgrade the run-time from 6.1 to 7, they will manually have to re-compile all the plug-ins (mass compile). That may or may not be true for 7 to 7.1, I guess.
Blog for (mostly LabVIEW) programmers: Tips And Tricks
07-31-2003 06:58 AM
Blog for (mostly LabVIEW) programmers: Tips And Tricks
07-31-2003 08:36 PM
>
> LV has the compiler and Open Reference can recompile older VIs if
> necessary. An EXE can't compile VIs. This simply means the plug-ins
> have to be saved in a compatible version or they will not work. The
> definition of compatible is more flexible for the editor than for an
> EXE.
>
> --- That I hadn't thought of, but it makes sense. So if they upgrade
> the run-time from 6.1 to 7, they wi
ll manually have to re-compile all
> the plug-ins (mass compile). That may or may not be true for 7 to
> 7.1, I guess.
Actually, the runtime versions can coexist. This means that this would
fall out of date only when you update your EXE, or more likely, when the
user builds new plug-ins in a newer version. To determine compatibility
without recompile, you basically see that the first two digits match.
Thus, 7.0 and 7.1 will not be combatible without a recompile, 7.0 and
7.0x will be. At least this has been the system for many many years.
Greg McKaskle
10-05-2003 05:37 PM
10-06-2003 06:27 AM