9Programming Examples

/* Write image data to file. */

fp = fopen ("c:\\scope\\data\\screen.bmp", "wb");

img_size = fwrite(image_data, sizeof(unsigned char), img_size, fp); fclose (fp);

printf("Wrote image data (%d bytes) to file.\n", img_size); viSetAttribute(vi, VI_ATTR_TMO_VALUE, 5000);

/* MEASURE - The commands in the MEASURE subsystem are used to

*make measurements on displayed waveforms.

*/

/* Set source to measure. */

viPrintf(vi, ":MEASURE:SOURCE CHANNEL1\n");

/* Query for frequency. */

viQueryf(vi, ":MEASURE:FREQUENCY?\n", "%lf", &frequency); printf("The frequency is: %.4f kHz\n", frequency / 1000);

/* Query for peak to peak voltage. */ viQueryf(vi, ":MEASURE:VPP?\n", "%lf", &vpp); printf("The peak to peak voltage is: %.2f V\n", vpp);

/* WAVEFORM_DATA - Get waveform data from oscilloscope. */

get_waveform();

/* Make

some calculations from the preamble

data. */

vdiv

=

32 * preamble [7];

 

off

=

preamble [8];

 

 

sdiv

=

preamble [2] * preamble [4] / 10;

 

delay =

(preamble [2] /

2) * preamble [4] +

preamble [5];

/* Print them out... */

 

 

printf ("Scope Settings

for Channel 1:\n");

 

printf ("Volts per Division = %f\n", vdiv);

 

printf ("Offset = %f\n", off);

printf ("Seconds per Division = %f\n", sdiv); printf ("Delay = %f\n", delay);

/* print out the waveform voltage at selected points */ for (i = 0; i < 1000; i = i + 50)

printf ("Data Point %4d = %6.2f Volts at %10f Seconds\n", i, ((float)waveform_data[i] - preamble[9]) * preamble[7] + preamble[8],

((float)i - preamble[6]) * preamble[4] + preamble[5]);

save_waveform();

/*

Save

waveform

data

to disk. */

retrieve_waveform();

/*

Load

waveform

data

from disk. */

}

/*

*get_waveform

*------------------------------------------------------------------

*This function transfers the data displayed on the oscilloscope to

*the computer for storage, plotting, or further analysis.

*/

564

Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Reference

Page 564
Image 564
Agilent Technologies 5000 Series manual 564