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 traditional NI-488.2 call ibrsp.
- 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.
Example 1: Using FindRQS | |
Example 2: Using AllSpoll |
Related Topics:
Automatic Serial Polling Overview