> Examples
> C/C++
> This example is run on the command line. It sends the *IDN? query to the instrument and prints the response to the console.
> // IdnExample.cpp : Microsoft Visual Studio-Generated Example
> // Based on Example 2-1 in the NI-VISA User Manual
> // Usage : IdnExample “USB0::0x0B58::0xFFF9::xxxxxxxx_xxx_xx::INSTR”
> // where xxxxxxxx_xxx_xx is the USB Device ID of the
> // instrument.
> // Output : The string identity string returned from the
> // instrument.
> // VISA Header : visa.h (must be included)
> // VISA Libarary : visa32.lib (must be linked with)
> #include “stdafx.h”
> #include “stdio.h”
> #include “string.h”
> #include “visa.h”
> #define BUFFER_SIZE 255
> int main(int argc, char* argv[])
> {
> ViStatus status; /* For checking errors */
> ViSession defaultRM, instr; /* Communication channels */
> ViUInt32 retCount; /* Return count from string I/O */
> ViChar buffer[BUFFER_SIZE]; /* Buffer for string I/O */
> char tempDisplay[BUFFER_SIZE]; /* Display buffer for example */
> char *pAddress;
> /* Make sure we got our address. */
> if ( argc < 2 )
> {
> printf(”Usage: IdnExample \”USB0::0x0B58::0xFFF9::xxxxxxxx_xxx_xx::INSTR”);
> printf(”\t where xxxxxxxx_xxx_xx is the USB Device ID of your instrument.\n”);
> return -1;
> }
> /* Store the address. */
> pAddress = argv[1];
> /* Begin by initializing the system*/
> status = viOpenDefaultRM(&defaultRM);
> if (status < VI_SUCCESS)
> {
> /* Error Initializing VISA...exiting*/
> printf(”Can't initialize VISA\n”);
> return -1;
> }
> /* USB0::0x0B58::0xFFF9::xxxxxxxx_xxx_xx::INSTR*/
> /* NOTE: For simplicity, we will not show error checking*/
> /* TODO: Add error handling. */
> status = viOpen(defaultRM, pAddress, VI_NULL, VI_NULL, &instr);
> /* Set the timeout for message-based communication*/
> /* TODO: Add error handling. */
> status = viSetAttribute(instr, VI_ATTR_TMO_VALUE, 120000);
> /* Ask the device for identification */
> sprintf(buffer, “*IDN?\n”);
> status = viWrite(instr, (unsigned char *)&buffer[0], 6, &retCount);
> status = viRead(instr, (unsigned char *)buffer, BUFFER_SIZE, &retCount);
> /* TODO: Add code to process data. */
> strncpy(tempDisplay, buffer, retCount);
> tempDisplay[retCount] = 0; /* Null-terminate display string. */
> printf(”*IDN? Returned %d bytes: %s\n”, retCount, tempDisplay);
> /* Close down the system */
> /* TODO: Add error handling. */
> status = viClose(instr);
> status = viClose(defaultRM);
> return 0;
> }