We have a device that currently communicates with a stand alone program over TCP/IP connection. We want it to capture the data from this device in Labview. Are we thinking correctly we need to write an IVI Driver for our device so that it will be LXI compliant and talk with Labview?
If you have another program that talks to the instrument without an IVI driver, why do you think you need one for LabVIEW? As long as it is discovered in MAX, you can use VISA functions to create a native LabVIEW driver.
>> If you have another program that talks to the instrument without an IVI driver, why do you think you need one for LabVIEW? As long as it is discovered in MAX, you can use VISA functions to create a native LabVIEW driver.
It is doubful that our device would be discovered by MAX. We are under the impression the LXI spec requires and IVI Driver.
If the instrument cannot be detected by MAX, then it is not LXI compliant. Since both IVI and native LabVIEW drivers use NI-VISA, the requirement is the same for both. And what the LXI spec says about IVI drivers is not at all relevant to whether you also write a standard LabVIEW driver for it. There is just nothing that forces you to use an IVI driver even if one exists.
Another thought is that you could use the LabVIEW tcp/ip functions.
As Dennis points out, there are a variety of ways to talk to a network-based instrument even if it isn't certified LXI-compliant. The main reason to go through the LXI certification process is to be able to market the device as LXI-compliant. (And because LXI requires a variety of good behaviors, it says that your instrument has those good behaviors--web pages, mDNS discovery, network address behavior, an IVI driver, etc.)
NI-VISA is probably your best approach for communications. It's easy to write LabVIEW VIs that use VISA, and VISA supports the three most common network protocols used in instrumentation... VXI-11 (based on RPC), straight sockets, and the new HiSLIP protocol.
Writing an IVI driver may still make sense if you have customers who use other development environments, and who are used to the IVI instrument drivers standards.
Finally, here are a few links from my blog you might find useful. Yeah, they're kind of old, but mostly still relevant.
MAX is Measurement and Automation Explorer and comes with all of NI's hardware drivers (i.e. NI-VISA). It's a general utility program for NI hardware and one of things it can do is detect LXI hardware. Once detected, you can also use MAX to communicate to it.