Agilent Technologies 8163A Work Light User Manual


 
VISA Programming Examples How to Measure Power using FETCh and READ
196 Agilent 8163A/B, 8164A/B & 8166A/B Mainframes, Fifth Edition
}
/*set timeout to 20 sec; this should work for all commands
except zeroing */
errStatus = viSetAttribute(vi,VI_ATTR_TMO_VALUE,20000);
if (errStatus < VI_SUCCESS) checkError(vi,errStatus);
/* make sure that the reference is not used */
errStatus = viPrintf(vi,"SENS1:CHAN1:POW:REF:STATE 0\n");
if (errStatus < VI_SUCCESS) checkError(vi,errStatus);
/* clear the error queue */
errStatus = viPrintf(vi,"*CLS\n");
if (errStatus < VI_SUCCESS) checkError(vi,errStatus);
/* turn auto range on */
errStatus = viPrintf(vi,"SENS1:CHAN1:POW:RANGE:AUTO 1\n");
if (errStatus < VI_SUCCESS) checkError(vi,errStatus);
/* change the power unit to watt */
errStatus = viPrintf(vi,"SENS1:CHAN1:POW:UNIT W\n");
if (errStatus < VI_SUCCESS) checkError(vi,errStatus);
/*set the averaging time for measuring to 0.5s*/
averagingTime = 0.5;
errStatus = viPrintf(vi,"SENS1:CHAN1:POW:ATIME
%f\n",averagingTime);
if (errStatus < VI_SUCCESS) checkError(vi,errStatus);
/* turn continous measuring off */
errStatus = viPrintf(vi,"INIT1:CHAN1:CONT 0\n");
if (errStatus < VI_SUCCESS) checkError(vi,errStatus);
/* trigger a measurement */
errStatus = viPrintf(vi,"INIT1:CHAN1:IMM\n");
if (errStatus < VI_SUCCESS) checkError(vi,errStatus);
/* read 10 values and display the result; */
for (i = 0; i < 10; i++)
{
/* Now because an averaged value is available, the value will be
fetched */
errStatus =
viQueryf(vi,"%s","%s","FETCH1:CHAN1:POW?\n",replyBuf);
if (errStatus < VI_SUCCESS) checkError(vi,errStatus);
/* two consecutive values are compared; if they are equal it will be
marked; because no evaluation is triggered, all values will be the same
*/
if(i)