Main Content

IVI Drivers Overview

Instrument Control Toolbox™ communicates with instruments using Interchangeable Virtual Instrument (IVI) drivers. The toolbox also supports IVI-C drivers, provided by various instrument manufacturers.

For definitions and specifications of IVI® drivers and their components, see the IVI Foundation website.


Instrument Control Toolbox supports IVI-C drivers, with class-compliant and instrument-specific functionality.

IVI class-compliant drivers support common functionality across a family of related instruments. Use class-compliant drivers to access the basic functionality of an instrument, and the ability to swap instruments without changing the code in your application. With an IVI instrument-specific driver or interface, you can access the unique functionality of the instrument. The instrument-specific driver generally does not accommodate instrument substitution.

For IVI-C drivers, you can use IVI-C class drivers and IVI-C specific drivers. Device objects you construct to call IVI-C class drivers offer interchangeability between similar instruments, and work with all instruments consistent with that class driver. Device objects you construct to call IVI-C specific drivers directly generally offer less interchangeability, but provide access to the unique methods and properties of a specific instrument.

Instrument Interchangeability

With IVI class-compliant drivers, you can exchange instruments with minimal code changes. You can write your code for an instrument from one manufacturer and then swap it for the same type of instrument from another manufacturer. After editing the configuration file that identifies a new instrument, driver, and the hardware address, you can run your code without modifying it.

To use the interchangeability of IVI effectively:

  • Install drivers for both instruments of the same type (IVI-C).

  • Ensure that both drivers implement the same instrument class. For example, both must conform to the requirements for IviDmm or IviScope.

  • When using IVI-C, your program needs a Class Driver that instantiates the Class-Compliant Specific Driver and calls class-compliant functions in it.

  • Ensure that your program does not call instrument-specific functions.

You can enhance your code to handle the differences between the instruments or drivers you are using. You can still use these instruments interchangeably.

The following diagram shows interchangeability between instruments using IVI-C drivers.

Using an IVI-C Class-Compliant Driver

See Also