9Programming Examples

printf("Preamble YINCREMENT: %e\n", preamble[7]);

printf("Preamble YORIGIN: %e\n", preamble[8]);

printf("Preamble YREFERENCE: %e\n", preamble[9]); */

/* QUERY_WAVE_DATA - Outputs waveform records to the controller

*over the interface that is stored in a buffer previously

*specified with the ":WAVEFORM:SOURCE" command.

*/

 

viPrintf(vi, ":WAVEFORM:DATA?\n");

/* Query waveform data. */

/* READ_WAVE_DATA - The wave data consists of two parts: the header,

*and the actual waveform data followed by an New Line (NL)

*character. The query data has the following format:

*

*<header><waveform data block><NL>

*Where:

*

*<header> = #800002048 (this is an example header)

*The "#8" may be stripped off of the header and the remaining

*numbers are the size, in bytes, of the waveform data block.

*The size can vary depending on the number of points acquired

*for the waveform which can be set using the ":WAVEFORM:POINTS"

*command. You may then read that number of bytes from the

*oscilloscope; then, read the following NL character to

*terminate the query.

*/

waveform_size = WAVE_DATA_SIZE; /* Read waveform data. */

viScanf(vi, "%#b\n", &waveform_size, waveform_data); if ( waveform_size == WAVE_DATA_SIZE )

{

printf("Waveform data buffer full: "); printf("May not have received all points.\n");

}

else

{

printf("Reading waveform data... size = %d\n", waveform_size);

}

}

/*

*save_waveform

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

*This function saves the waveform data from the get_waveform

*function to disk. The data is saved to a file called "wave.dat". */

void save_waveform(void)

{

FILE *fp;

fp = fopen("c:\\scope\\data\\wave.dat", "wb"); /* Write preamble. */

fwrite(preamble, sizeof(preamble[0]), 10, fp);

566

Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Reference

Page 566
Image 566
Agilent Technologies 5000 Series manual 566