National Instruments NI-488.2 User Manual

Page 90

Advertising
background image

Chapter 8

NI-488.2 Programming Techniques

© National Instruments Corporation

8-15

NI-488.2 User Manual

SRQ and Serial Polling with Device-Level Traditional NI-488.2 Calls

You can use the device-level traditional NI-488.2 call

ibrsp

to conduct

a serial poll.

ibrsp

conducts a single serial poll and returns the serial poll

response byte to the application. If automatic serial polling is enabled, the
application can use

ibwait

to suspend program execution until RQS

appears in the status word,

Ibsta

. The program can then call

ibrsp

to

obtain the serial poll response byte.

The following example shows you how to use the

ibwait

and

ibrsp

functions in a typical SRQ servicing situation when automatic serial polling
is enabled:

#include "ni4882.h"

char GetSerialPollResponse ( int DeviceHandle )

{

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 (bit 6 or hex 40) 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 similar to the device-level NI-488.2

ibrsp

function.

Advertising