LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Handshaking Digital Input

I wanted to set up an experiment to verify the digital input handshake
sequence before specifying our external custom hardware interface. To
that end I tried to use the C and D ports on a PCI-CIO96 with D as
output and C as input. Making a long story short, it appears that once a
handshake operation is pending, NIDAQ blocks access to all IO boards,
even for immediate transfers. So, if I start the input VI, the output VI
is blocked. I even put an immediate ACK toggle as a separate loop in the
read VI but could not change the ACK state until the read timed out.

This is under LabVIEW 6.0.2, NIDAQ 6.9.1, and Windows 2000, SP 2. I feel
that I have missed something basic. Any suggestions will be appreciated.
0 Kudos
Message 1 of 2
(2,534 Views)
NIDAQ is a single threaded library. If you call any function like a read with timeout, it will remain in that call until the data is read or it times out. You need to call a "poll" routine to see if there is data available before calling a read routine to avoid the type of behavior you are seeing. Even though it is a single thread library, you can have mutilple operations occuring at the same time.
Stu
Stu
0 Kudos
Message 2 of 2
(2,534 Views)