Instrument Control (GPIB, Serial, VISA, IVI)

Showing results for 
Search instead for 
Did you mean: 

Need help with interchangeable driver programming

Hi ,

I'm creating a Visual-C++ application which automating an Agilent Power Supply via IVI-COM driver interface.

This application is intended to be used on different locations, where users might have different Power supply models (even different vendors).
Therefore, my application should be interchangeable so the user can choose the specific PS model he owns,
And the specific driver will be dynamically linked to my application.
My users won't have any access to the source code but only having a closed executable file.

I have NI-VISA, NI-IVI, NI-MAX and Specific Agilent IVI-driver for my Agilent N6700B power supply installed.


First thing I need to do is to enumerate all of the installed instruments on the computer (Software modules).

I tried doing so using the IVI Configuration Store API with no sucess.

After having that,

I understand I need to create a hardware asset, driver session and logical name and link them with the S/W modules I've found.

Then I will be able to create an instance of the driver and work with it.


Be happy to get a piece of code and some explanation how to do so.



Thanks in advance,





0 Kudos
Message 1 of 4

Hello Hagai,


Since you are using NI-VISA, NI-IVI (IVI Compliance Package I guess), NI-MAX, you should also be using NI IVI-C Specific driver for your power supply:


If you would like to programmatically configure IVI drivers under NI-MAX, here is an example of how to programmatically access the configuration file:  

0 Kudos
Message 2 of 4


Why must I use the NI driver?

I'm not working in LabView but only in Visual C++ with Microsoft Visual Studio 8.0.

Is the driver you supplied compatible with C++? Is the Agilent driver from Agilent site not comptaible?


After installing the Agilent IVI-COM driver from Agilent site I can see the new Power Supply in NI-MAX...

Do I still need to install the NI IVI-C driver?


Anyway, I'm trying to enumerate all of the connected devices with the IVI interface, then create the H/W Asset, Driver Session and Logical Name to connect.

Is there another example using the IVI-COM API or some explanation?

Ofcourse, By NI-IVI I meant NI IVI Compliance Package.



0 Kudos
Message 3 of 4

IVI drivers come in 2 flavors: IVI-C and IVI-COM. IVI-C drivers are optimized for use in ANSI C development environments; IVI-COM drivers are optimized for environments that support the Component Object Model (COM).


These two IVI architectures implement interchangeability in slightly different ways so it is recommended to stick to a single architecture when developing an interchangeable application.


Since National Instruments is committed to the IVI-C architecture, we do not support IVI-COM and therefore we don’t have any examples on how to use IVI-COM API to programmatically configure IVI drivers.  

0 Kudos
Message 4 of 4