Agilent Technologies 86100-90086 Sprinkler User Manual


 
2-25
Sample Programs
Listings of the Sample Programs
srq.c Sample Program
/* file: srq.c */
/* This file contains the code to handle Service Requests from an GPIB device */
#include <stdio.h> /* location of printf ( ), fopen ( ), and fclose ( ) */
#include "hpibdecl.h"
/*
* Function name: srq_handler
* Parameters: none
* Return value: none
* Description: This routine services the scope when an SRQ is generated.
* An error file is opened to receive error data from the scope.
*/
void srq_handler ( )
{
FILE *fp;
unsigned char statusbyte = 0;
int i =0;
int more_errors = 0;
char error_str[64] ={0};
int bytes_read;
int srq_asserted = TRUE;
srq_asserted = check_SRQ ( );
while (srq_asserted)
{
statusbyte = read_status ( );
if ( statusbyte & SRQ_BIT )
{
fp = fopen ( "error_list","wb" ); /* open error file */
if (fp == NULL)
printf ("Error file could not be opened.\n");
/* read error queue until no more errors */
more_errors = TRUE;
while ( more_errors )
{
write_IO (":SYSTEM:ERROR? STRING");
bytes_read = read_IO (error_str, 64L);
error_str[bytes_read] = '\0';
/* write error msg to std IO */
printf ("Error string:%s\n", error_str );
if (fp != NULL)
/* write error msg to file*/
fprintf (fp,"Error string:%s\n", error_str );