Programming Examples 44
Keysight InfiniiVision 4000 X-Series Oscilloscopes Programmer's Guide 1707
#include <string.h> /* For strcpy(), strcat(). */
#include <time.h> /* For clock(). */
#include <sicl.h> /* Keysight SICL routines. */
#define SICL_ADDRESS "usb0[2391::6054::US50210029::0]"
#define TIMEOUT 5000
#define IEEEBLOCK_SPACE 300000
/* Function prototypes */
void initialize(void); /* Initialize to known state. */
void capture(void); /* Capture the waveform. */
void analyze(void); /* Analyze the captured waveform. */
void do_command(char *command); /* Send command. */
int do_command_ieeeblock(char *command); /* Command w/IEEE block. */
void do_query_string(char *query); /* Query for string. */
void do_query_number(char *query); /* Query for number. */
void do_query_numbers(char *query); /* Query for numbers. */
int do_query_ieeeblock(char *query); /* Query for IEEE block. */
void check_instrument_errors(); /* Check for inst errors. */
/* Global variables */
INST id; /* Device session ID. */
char str_result[256] = {0}; /* Result from do_query_string(). */
double num_result; /* Result from do_query_number(). */
unsigned char ieeeblock_data[IEEEBLOCK_SPACE]; /* Result from
do_query_ieeeblock(). */
double dbl_results[10]; /* Result from do_query_numbers(). */
/* Main Program
* --------------------------------------------------------------- */
void main(void)
{
/* Install a default SICL error handler that logs an error message
* and exits. On Windows 98SE or Windows Me, view messages with
* the SICL Message Viewer. For Windows 2000 or XP, use the Event
* Viewer.
*/
ionerror(I_ERROR_EXIT);
/* Open a device session using the SICL_ADDRESS */
id = iopen(SICL_ADDRESS);
if (id == 0)
{
printf ("Oscilloscope iopen failed!\n");
}
else
{
printf ("Oscilloscope session opened!\n");
}
/* Initialize - start from a known state. */
initialize();
/* Capture data. */
capture();