Programming instructions

Programming Examples
GPIB Programming Examples
Chapter 262
viStatus = viInstallHandler(vi, VI_EVENT_SERVICE_REQ, interupt, rdBuffer);
// The next line of code enables the
// detection of an event
viStatus = viEnableEvent(vi, VI_EVENT_SERVICE_REQ, VI_HNDLR, VI_NULL);
viPrintf(vi, "FREQ:MODE LIST\n");// Sets frequency mode to list
viPrintf(vi, "LIST:TYPE STEP\n");// Sets sweep to step
viPrintf(vi, "LIST:TRIG:SOUR IMM\n");// Immediately trigger the sweep
viPrintf(vi, "LIST:MODE AUTO\n");// Sets mode for the list sweep
viPrintf(vi, "FREQ:STAR 40 MHZ\n"); // Start frequency set to 40 MHz
viPrintf(vi, "FREQ:STOP 900 MHZ\n");// Stop frequency set to 900 MHz
viPrintf(vi, "SWE:POIN 25\n");// Set number of points for the step sweep
viPrintf(vi, "SWE:DWEL .5 S\n");// Allow .5 sec dwell at each point
viPrintf(vi, "INIT:CONT OFF\n");// Set up for single sweep
viPrintf(vi, "TRIG:SOUR IMM\n");// Triggers the sweep
viPrintf(vi, "INIT\n"); // Takes a single sweep
printf("\n");
// While the instrument is sweeping have the
// program busy with printing to the display.
// The Sleep function, defined in the header
// file windows.h, will pause the program
// operation for .5 seconds
while (sweep==1){
printf("*");
Sleep(500);}
printf("\n");
// The following lines of code will stop the
// events and close down the session
viStatus = viDisableEvent(vi, VI_ALL_ENABLED_EVENTS,VI_ALL_MECH);
viStatus = viUninstallHandler(vi, VI_EVENT_SERVICE_REQ, interupt,
rdBuffer);
viStatus = viClose(vi);
viStatus = viClose(defaultRM);
return 0;
}
// The following function is called when an SRQ event occurs. Code specific to your
// requirements would be entered in the body of the function.
ViStatus _VI_FUNCH interupt(ViSession vi, ViEventType eventType, ViEvent event, ViAddr
addr)
{
ViStatus status;
ViUInt16 stb;
status = viReadSTB(vi, &stb); // Reads the Status Byte
sweep=0; // Sets the flag to stop the ’*’ printing
printf("\n"); // Print user information
printf("An SRQ, indicating end of sweep has occurred\n");