VISA Programming Examples
if(errStatus < VI_SUCCESS)
{
printf("Failed to open instrument\n");
exit(errStatus);
}
/*set timeout to 20 sec; this should work for all commands
except zeroing */
errStatus = viSetAttribute(vi,VI_ATTR_TMO_VALUE,20000);
checkError(vi,errStatus);
errStatus = viPrintf(vi,"*CLS\n");
checkError(vi,errStatus);
/* read the minimum wavelength from the tunable laser source*/
errStatus = viQueryf(vi,"SOURCE2:WAV? MIN\n","%s",replyBuf);
checkError(vi,errStatus);
/* save this wavelength */
wavelength = atof(replyBuf);
/* set the minimum wavelength as initial wavelength in the tunable laser source */
errStatus = viPrintf(vi,"SOURCE2:WAV %s\n",replyBuf);
checkError(vi,errStatus);
/* set the power meter to same wavelength like the tunable laser source */
errStatus = viPrintf(vi,"SENS1:CHAN1:POW:WAV %s\n",replyBuf);
checkError(vi,errStatus);
/* read the maximum wavelength from the tunable laser source */
errStatus = viQueryf(vi,"SOURCE2:WAV? MAX\n","%s",replyBuf);
checkError(vi,errStatus);
/*save this wavelength */
wavelength_max = atof(replyBuf);
/* change the power unit of the power meter to dbm */
errStatus = viPrintf(vi,"SENS1:CHAN1:POW:UNIT DBM\n");
checkError(vi,errStatus);
/* read the default power from the tunable laser source */
errStatus = viQueryf(vi,"SOURCE2:POW? DEF\n","%s",replyBuf);
checkError(vi,errStatus);
/* set the default power */
148
Agilent 8163A Lightwave Multimeter, Agilent 8164A Lightwave Measurement System,
& Agilent 8166A Lightwave Multichannel System, Third Edition
How Power Varies with Wavelength