Programming Examples

9

*/

 

 

 

void analyze (void)

 

 

 

{

 

 

 

double frequency, vpp;

/* Measurements. */

double vdiv, off, sdiv, delay;

/* Values calculated from preamble

 

 

data. */

 

int i;

/* Loop counter. */

unsigned char setup_string[SETUP_STR_SIZE];

/* Array for setup

 

 

 

string. */

int setup_size;

 

 

 

FILE *fp;

 

 

 

unsigned char image_data[IMG_SIZE];

* Array for image data. */

int img_size;

 

 

 

/* SAVE_SYSTEM_SETUP - The :SYSTEM:SETUP? query returns a program

*message that contains the current state of the instrument. Its

*format is a definite-length binary block, for example,

*#800002204<setup string><NL>

*where the setup string is 2204 bytes in length.

*/

setup_size = SETUP_STR_SIZE;

/* Query and read setup string. */

viQueryf(vi, ":SYSTEM:SETUP?\n", "%#b\n", &setup_size, setup_string); printf("Read setup string query (%d bytes).\n", setup_size);

/* Write setup string to file. */

fp = fopen ("c:\\scope\\config\\setup.dat", "wb");

setup_size = fwrite(setup_string, sizeof(unsigned char), setup_size, fp);

fclose (fp);

printf("Wrote setup string (%d bytes) to file.\n", setup_size);

/* RESTORE_SYSTEM_SETUP - Uploads a previously saved setup string

*to the oscilloscope.

*/

/* Read setup string from file. */

fp = fopen ("c:\\scope\\config\\setup.dat", "rb"); setup_size = fread (setup_string, sizeof(unsigned char),

SETUP_STR_SIZE, fp); fclose (fp);

printf("Read setup string (%d bytes) from file.\n", setup_size); /* Restore setup string. */

viPrintf(vi, ":SYSTEM:SETUP #8%08d", setup_size); viBufWrite(vi, setup_string, setup_size, &setup_size); viPrintf(vi, "\n");

printf("Restored setup string (%d bytes).\n", setup_size);

/* IMAGE_TRANSFER - In this example we will query for the image

*data with ":DISPLAY:DATA?" to read the data and save the data

*to the file "image.dat" which you can then send to a printer.

*/

viSetAttribute(vi, VI_ATTR_TMO_VALUE, 30000); printf("Transferring image to c:\\scope\\data\\screen.bmp\n"); img_size = IMG_SIZE;

viQueryf(vi, ":DISPLAY:DATA? BMP8bit, SCREEN, COLOR\n", "%#b\n", &img_size, image_data);

printf("Read display data query (%d bytes).\n", img_size);

Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Reference

563

Page 563
Image 563
Agilent Technologies 5000 Series manual Programming Examples