Chapter 6
GPIB Programming Techniques
© National Instruments Corp.
6-5
NI-488.2M SRM for OS/2
7.
If the RQS bit of the status word is still set after
ibrsp
is called, the
response byte queue contains at least one more response byte. If this
happens, you should continue to call
ibrsp
until RQS is cleared.
If no device responds positively to the serial poll or if SRQ remains in effect
because of a faulty instrument or cable, a GPIB system error occurs. In this
case, the ESRQ error is reported to you if and when you issue an
ibwait
call
with the RQS bit included in the wait mask. Aside from the difficulty caused
by ESRQ in waiting for RQS, the error has no detrimental effects on other
GPIB operations.
Autopolling and the Stuck SRQ State
If autopolling is enabled and the GPIB interface board detects an SRQ, all open
devices connected to that board are serial polled by the driver. The serial poll
continues until either SRQ unasserts or all the devices have been polled.
If the driver serial polls all devices and the SRQ line is still asserted, a stuck
SRQ state is in effect. If this happens during an
ibwait
for RQS, the driver
reports the ESRQ error. If the stuck SRQ state happens, no further polls are
attempted until either an
ibwait
for RQS or an
ibrsp
for the device whose
serial poll queue is full is made. When either
ibwait
or
ibrsp
for the device
whose serial poll is full is issued, the stuck SRQ state is terminated and a new
set of serial polls is attempted.
Autopolling and Interrupts
If autopolling and interrupts are both enabled, the NI-488.2M software can
perform autopolling after any device-level NI-488 call as long as no GPIB is
currently I/O in progress. This means that an automatic serial poll can occur
even when your application is not making any calls to the NI-488.2M software.
Autopolling can also occur when a device-level
ibwait
for RQS is in
progress. Autopolling is disallowed whenever an application makes a board-
level NI-488 function or any NI-488.2 routine or when the stuck SRQ (ESRQ)
condition occurs.
If autopolling is enabled and interrupts are disabled, you can use autopolling
only during a device-level
ibwait
for RQS or immediately after a device-level
NI-488 function is completed and before control is returned to the application
program.