I am having a hard time convincing myself that there is any value in the generic DAQ functions available in LabVIEW when it is desired to have software reusability/compatibility with possibly non-NI hardware. It seems to me that I would be much better off writing code to talk to ActiveX drivers. Am I missing something?
> I am having a hard time convincing myself that there is any value in the generic > DAQ functions available in LabVIEW when it is desired to have software reusability/compatibility > with possibly non-NI hardware. It seems to me that I would be much better > off writing code to talk to ActiveX drivers. Am I missing something?
For interchangable HW, or the ability to shift between HW, then what you want is a common interface -- sets of VIs that have common connectors and common functionality. Below this set of VIs, they can call a DLL, a CIN, they can call peek and poke, or they can call an ActiveX server, OPC server, TCP to an ethernet device, or whatever you like. ActiveX doesn't magically make components interchangeable unless they have a common interface. LV is pretty much the same. With the VIs, it isn't too difficult to shift between them.
The most common interface for doing DAQ with LV are the NI-DAQ icons. They have shipped for a long time and support a wide range of boards including different busses, remote DAQ, etc. There is at least one other company that makes a driver that uses this interface. They have VIs that look and act the same. That means changing your program between these two vendors is pretty easy. Other vendors share some common functions, but are not complete. Then you have the vendors that only have DLL or an ActiveX server for their driver. This may be great for you, but I suspect it will be considerably harder to use from LV. You will end up writing the layer of VIs to go between the DLL and C types or the ActiveX server and OLE types to LV types. You will be the one to write it instead of the vendor.
As I said, it is possible to call DLLs, ActiveX servers, talk to serial, GPIB, ethernet, and register based devices without any vendor supplied VIs, but the easiest way to have functionality in LV is to wrap them in VIs. Give them help, good icons, good parameters, and place them logically in a palette.
So, in my opinion, the best interface to choose is the highest level one that can accomplish your task. The one that is widely used and has a good history. I'd recommend that you go with NI- DAQ.
Of course you need to remember that I work for NI; so you can do whatever you like with my advice. Greg McKaskle