Programming instructions
VISA Programming Examples How to Co-ordinate Two Modules
202 Agilent 8163A/B, 8164A/B & 8166A/B Mainframes, Fifth Edition
 {
 /* reduce the output power for 6.0 dB */
 errStatus = viPrintf(vi,"SOURCE2:CHAN1:POW:ATT 6.0\n");
 checkError(vi,errStatus);
 }
 }
 /* loop, until a key is pressed */
 while(!scanf("%c",&c));
 /* turn the laser off */
 errStatus = viPrintf(vi,"SOURCE2:CHAN1:POW:STATE 0\n");
 if (errStatus < VI_SUCCESS) checkError(vi,errStatus);
 /*close the session */
 viClose(vi); 
}
void checkError(ViSession session, ViStatus err_status )
 {
 ViStatus error;
 ViChar errMsg[256];
 error = viQueryf(session,"SYST:ERR?\n","%t",errMsg);
 if (error == VI_ERROR_TMO) 
 {
 printf("System Error!\n") ;
 exit(1);
 } 
 else 
 {
 /* only errors should be displayed */
 if(errMsg[0] != '+') 
 printf("error:%ld --> %s\n", err_status,errMsg) ;
 }
 }










