I want to use a USB-6001 (not yet in my possession) to detect when a digital signal changes state. It's okay if I miss some state changes, but at any time I check (it doesn't necessarily have to be event-driven), I need to know if a state transition has occurred since the last time I checked (and I also need to know the state at the time). My use case is a proximity sensor--I need to know if at any time a device has moved out of range (even if it has moved back into range by the time I check it) so I can abort a process.
Software polling of the digital line state could potentially miss transitions. It seems like using DAQmx's change detection is the ideal solution, but the USB-6001 does not support this. I considered using a counter--each time I check the counter I can tell if a state transition has occurred by checking to see if the count has changed. But as far as I can tell, it can't tell me the current state. Furthermore, the DAQmx example "Counter - Count Edges.vi", does not list the USB-6001 as a supported device--is this really true? The example gives no errors when I run with a simulated device, and I can't think of a simpler counter application that the USB-6001 could support.
Another possible solution would be to use the DI signal as the clock source for a timed event structure. I'm not exactly sure how to do this, but I'm pretty sure the USB-6001 does not support this. Also, I think it may not be possible to determine the DI (Clock) state.
Does anyone have any suggestions for how to do what I want to do with a USB-6001? If it's not possible with a USB-6001, what would the best available (USB) device that could do it? It's hard for me to figure out exactly what capabilities a board supports.