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 |
*YINCREMENT : float32 - voltage difference between data points.
* | YORIGIN | : float32 - value of the voltage at center screen. |
*YREFERENCE : int32 - data point where
*/
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 |