I assume from your wordings that you have written the handler yourself? How is that coded? If you are in a read loop that has a timeout value, this can easily happen. The IEEE 488.1 standard does not allow for a listener to suddenly decide not to listen. That is exactly what a timeout does. Timeouts are usually implemented in drivers to allow the application to recover when the device is not communicating properly. However, if the timout occurs when communication is happening on the bus, a byte can be lost.
If you are writing the device-side handler, I recommend never using timeouts. Either use:
- Asynchronous I/O with ibwait calls to stop the I/O if necessary
- Synchronous I/O with no timeouts (however, this will limit your application)
i>NI-Device, which is a device driver that is designed for device-side communication.
Hope this helps.