Parallel Polling with Multi-Device NI-488.2 Calls
To implement parallel polling using multi-device NI-488.2 calls, complete the following steps. Each step contains example code.
- Configure the device for parallel polling using the PPollConfig call, unless the device can configure itself for parallel polling. The following example configures a device at address 3 to assert data line 5 (DIO5) when its ist value is 1.
#include "ni4882.h"
char response;
Addr4882_t AddressList[2];
/* The following command clears the GPIB. */
SendIFC(0);
/* The value of sense is compared with the ist bit
of the device and determines whether the data
line is asserted. */
PPollConfig(0,3,5,1); - Conduct the parallel poll using the PPoll call, store the response, and check the response for a certain value. In the following example, because DIO5 is asserted by the device if ist is 1, the program checks bit 4 (hex 10) in the response to determine the value of ist.
PPoll(0, &response);
/* If response has bit 4 (hex 10) set, the ist bit of the device at that time is equal to 1. If it does not appear, the ist bit is equal to 0. Check the bit in the following statement. */
if (response & 0x10) { printf("The ist equals 1.\n"); else { printf("The ist equals 0.\n"); } - Unconfigure the device for parallel polling using the PPollUnconfig call, as shown in the following example. In this example, the NOADDR constant must appear at the end of the array to signal the end of the address list. If NOADDR is the only value in the array, all devices receive the parallel poll disable message.
AddressList[0] = 3;
AddressList[1] = NOADDR;
PPollUnconfig(0, AddressList);
Related Topics: