Programming Examples

9

void get_waveform (void)

{

int waveform_size;

/* WAVEFORM_DATA - To obtain waveform data, you must specify the

*WAVEFORM parameters for the waveform data prior to sending the

*":WAVEFORM:DATA?" query.

*

*Once these parameters have been sent, the ":WAVEFORM:PREAMBLE?"

*query provides information concerning the vertical and horizontal

*scaling of the waveform data.

*

*With the preamble information you can then use the

*":WAVEFORM:DATA?" query and read the data block in the

*correct format.

*/

/* WAVE_FORMAT - Sets the data transmission mode for waveform data

*output. This command controls how the data is formatted when

*sent from the oscilloscope and can be set to WORD or BYTE format.

*/

/* Set waveform format to BYTE. */ viPrintf(vi, ":WAVEFORM:FORMAT BYTE\n");

/* WAVE_POINTS - Sets the number of points to be transferred.

*The number of time points available is returned by the

*"ACQUIRE:POINTS?" query. This can be set to any binary

*fraction of the total time points available.

*/

viPrintf(vi, ":WAVEFORM:POINTS 1000\n");

/* GET_PREAMBLE - The preamble contains all of the current WAVEFORM

*settings returned in the form <preamble block><NL> where the

*<preamble block> is:

*

FORMAT

: int16 - 0

=

BYTE, 1

=

WORD, 2

= ASCII.

 

*

TYPE

: int16 - 0

=

NORMAL,

1

=

PEAK DETECT, 2

= AVERAGE.

*

POINTS

: int32 -

number of data points

transferred.

*

COUNT

: int32 -

1

and is always

1.

 

 

*XINCREMENT : float64 - time difference between data points.

*

XORIGIN

: float64 - always the first data point in memory.

*XREFERENCE : int32 - specifies the data point associated

*

with the x-origin.

*YINCREMENT : float32 - voltage difference between data points.

*

YORIGIN

: float32 - value of the voltage at center screen.

*YREFERENCE : int32 - data point where y-origin occurs.

*/

printf("Reading preamble\n");

viQueryf(vi, ":WAVEFORM:PREAMBLE?\n", "%,10lf\n", preamble); /*

printf("Preamble FORMAT: %e\n", preamble[0]);

printf("Preamble TYPE: %e\n", preamble[1]);

printf("Preamble POINTS: %e\n", preamble[2]);

printf("Preamble COUNT: %e\n", preamble[3]);

printf("Preamble XINCREMENT: %e\n", preamble[4]);

printf("Preamble XORIGIN: %e\n", preamble[5]);

printf("Preamble XREFERENCE: %e\n", preamble[6]);

Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Reference

565

Page 565
Image 565
Agilent Technologies 5000 Series manual Format