Chapter 7
NI-488.2 Programming Techniques
©
National Instruments Corporation
7-15
NI-488.2 User Manual for Windows
char SerialPollResponse = 0;
ibwait ( DeviceHandle, TIMO | RQS );
if ( ibsta & RQS ) {
printf ( "Device asserted SRQ.\n" );
/* Use ibrsp to retrieve the serial poll response. */
ibrsp ( DeviceHandle, &SerialPollResponse );
}
return SerialPollResponse;
}
SRQ and Serial Polling with Multi-Device NI-488.2 Calls
The NI-488.2 software includes a set of multi-device NI-488.2 calls that
you can use to conduct SRQ servicing and serial polling. Calls pertinent to
SRQ servicing and serial polling are
AllSpoll
,
ReadStatusByte
,
FindRQS
,
TestSRQ
, and
WaitSRQ
. Following are descriptions of each of
the calls:
•
AllSpoll
can serial poll multiple devices with a single call. It places
the status bytes from each polled instrument into a predefined array.
Then, you must check the RQS bit of each status byte to determine
whether that device requested service.
•
ReadStatusByte
is similar to
AllSpoll
, except that it only serial
polls a single device. It is also similar to the device-level NI-488.2
ibrsp
function.
•
FindRQS
serial polls a list of devices until it finds a device that is
requesting service or until it has polled all of the devices on the list.
The call returns the index and status byte value of the device requesting
service.
•
TestSRQ
determines whether the SRQ line is asserted and returns to
the program immediately.
•
WaitSRQ
is similar to
TestSRQ
, except that
WaitSRQ
suspends the
application until either SRQ is asserted or the timeout period is
exceeded.
The following examples use these calls to detect SRQ and then determine
which device requested service. In these examples, three devices are
present on the GPIB at addresses 3, 4, and 5, and the GPIB interface is
designated as bus index 0. The first example uses
FindRQS
to determine
which device is requesting service, and the second example uses
AllSpoll
to serial poll all three devices. Both examples use
WaitSRQ
to wait for the
GPIB SRQ line to be asserted.