03-09-2010 12:51 PM
I have an automated wafer prober that periodically sends GPIB messages that need to be parsed and acted on. There can be as much as a minute between messages, or as little as a few millisenconds. I am using VISA Read STB to check the status byte every 10 milliseconds. If I see the ATN bit asserted, then I perform a VISA Read and parse the message. I suppose I could use a VISA Read with infinite timout, but I am worried that this will tie up the thread if I need to shutdown quickly. Is there a better way to do this other than repeatedly polling the STB?
03-09-2010 04:40 PM
03-09-2010 06:26 PM
03-09-2010 10:26 PM
03-10-2010 11:50 AM
I looked into VISA events, and it seems this is not the right solution for me. The automated prober I am communicating with sends unsolicited commands that need to be parsed and acted on. While I am listening for these commands, I need the GPIB bus available for writes in case I need to abort the actions of the prober. The wait for VISA events seems to tie up the GPIB bus preventing any writes. There is no way that I can see to abort the wait vi once it is started, so this really does not solve my problem.
My original message shows I was confused between the "interface status byte" and the "device status byte". Using VISA Read STB vi, the "device status byte" can be read. Bit 4 of the device status byte is Message Available (MAV). By polling this bit, I can check if there are any unsolicited messages pending from the prober.
Polling is not the most elegant solution, but from the information I have been able to dig up it seems the only one.
03-11-2010 08:46 AM