ics boards using assembler and looking for a high level language (I mean, PC based) to communicate with the boards and to control. Someone suggested me C++..please, tell me: why did you choose LabView? Why could it be better than C++? Thanks a lot! ErminioActually, all the premade stuff is a major strength. National Instruments is very good at building the low-level drivers for accessing instrumentation. What's more they do it in a way that is general enough to provide lots of tools for customizing their operation. For example, with the DAQ drivers, if all you need to do is grab a bunch of samples at some predefined rate (no triggering, no gating, nothing fancy), they have subvis that do that. However, thise subvis are built on routines--that you also have access to--that provide all the bells and whistles.
But as in any environment, if you don't like the way they did something, you can always write your own version of the driver from scratch--or in some cases take their code and modify it.
Actually, subvis are more like subroutines. Macros are chunks of code that get reused by being inserted inline each place they are used. Hence, if you use the macro three times, there are three copies of it in memory. A subroutine (typically) exists in one place in memory and is called--there are exceptions called "reentrant" VIs, but thats a topic for another time.
I know that last bit is a little bit of hair splitting, but in some development environments (which shall remain nameless) once a macro is used you have to manually edit each instance independently if you want to change it...
By the way, another couple of my favorite advantages of LV is that it is readable code. I have had people who didn't even know LV be able to look at my code and in broad terms be able to tell what it was doing.
Also because values are passed explicitly by wires connecting icons (subvis) together, there are also no such thing as named variables.
Hope this helps...
Mike...
PS: Did an
ybody mention that with LV there's no syntax?