Justin,
Thanks for your response. I've gotten DIG_Block_In to work for me, passing in 2 as the final argument.
Previously I was using DIG_Grp_Status to see if the data had been latched; for some reason this was never indicating that any data had been latched. Now I'm using DIG_Block_Check to see how many items are remaining to be transferred via my last call to DIG_Block_In. If the remaining # of items is less than 2, I know that some data has been transferred to my buffer. This approach seems to work well.
So it looks like there were two things I needed to do: 1) use 2 as the final argument of DIG_Block_In, and 2) use DIG_Grp_Status to check for progress of the transfer. I also didn't realize that DIG_Block_In is asynchronous until I look
ed at the documentation more closely.
Incidentally, it looks like the final argument to DIG_Block_In indeed represents the number of "items" to be transferred-- not necessarily the number of short ints. In other words, if I've configured my group for four ports and I call DIG_Block_In with 2 as the final argument, eventually 8 bytes will be transferred to my buffer.
One thing I'm still not clear on: if I make a call to DIG_Block_In and then wait several seconds (say, thousands of triggers from my device) and call DIG_Block_Check followed by another call to DIG_Block_In, is the second call to DIG_Block_In guaranteed to get "fresh" data? In other words, does DIG_Block_In wait for future triggers, or does the NI software buffer data up somehow? I suspect that DIG_Block_In waits for future triggers in my simple configuration, but I just wanted to confirm.
Thanks again,
Keith