Agilent Technologies ESA-E Series Programmer's Manual page 149

Esa spectrum analyzers
Hide thumbs Also See for ESA-E Series:
Table of Contents

Advertisement

Programming Examples
Making Faster Measurements (multiple measurements)
/* show measurement statistics
dTimePer=dDelta/((float)iNumTraces);
printf("\tPower average of %i %i-point traces performed in %3.1f
seconds\n",
iNumTraces,iNumPoints,dDelta/1000);
printf("\t%6.1f milliseconds per averaged measurement\n",dTimePer);
printf("\t%6.1f averaged measurements per second\n",1000.0/dTimePer);
printf("\t%i bytes transferred per trace, %i bytes total\n\n",lRetCount,
iTotalRetCount);
return;
}
/********************************
void
main(void)
{
int iLoop;
int iAvgArray[NUM_POINTS];
ViStatus viStatus;
/* Open a GPIB session at address 18
viStatus = viOpenDefaultRM(&defaultRM);
viStatus = viOpen(defaultRM,"GPIB0::18",VI_NULL,VI_NULL,&viESA);
if(viStatus)
{
printf("Could not open a session to GPIB device at address 18!\n");
exit(0);
}
/*Clear the Instrument
viClear(viESA);
/* go to known instrument state with cleared status byte
viPrintf(viESA, ":SYST:PRES:TYPE FACT;*RST\n");
/* measure, transfer and calculate power average of multiple traces
average();
/* convert average power array back to integer array
for (iLoop = 0; iLoop < iNumPoints; iLoop++)
dPower = 10.0 * log10( dPwrAvgArray[iLoop]);
iAvgArray[iLoop] = (int) (1000.0 * dPower);
}
/* build 'TRAC:DATA TRACE2,#nyyy' header and write the result to Trace 2
sprintf(cCommand,":TRAC:DATA TRACE2,#%i%i", HeaderLength(iArrayLength)-2,
iArrayLength);
write_binary_trace(cCommand, iAvgArray);
3-94
Main
***************************/
{
*/
*/
*/
*/
*/
*/
*/
Chapter 3

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents