I need some advice on how to deal with USB timeout errors.
I am working on an app that is communicating with my Anritsu instrument over USB-GPIB port. The app works fine, I read out results periodically with fixed interval. However from time to time I accidentally can end up calling Read_data function while the instrument is in the process of reading. This throws Timeout error and the app halts. When I restart the app, pyvisa finds the instrument and connects to it. First command is to read the *IDN?, but on this first read I get the following error:
('USB0::1003::8293::ANRITSU_0_0000::0::INSTR',)
Found VNA USB0::1003::8293::ANRITSU_0_0000::0::INSTR
Attached
[2022-09-17 23:14:31,349] ERROR in app: Exception on / [GET]
Traceback (most recent call last):
File "/usr/local/share/pynq-venv/lib/python3.8/site-packages/pyvisa_py/protoco ls/usbtmc.py", line 256, in write
return self.usb_send_ep.write(data)
File "/usr/local/share/pynq-venv/lib/python3.8/site-packages/usb/core.py", lin e 408, in write
return self.device.write(self, data, timeout)
File "/usr/local/share/pynq-venv/lib/python3.8/site-packages/usb/core.py", lin e 989, in write
return fn(
File "/usr/local/share/pynq-venv/lib/python3.8/site-packages/usb/backend/libus b1.py", line 837, in bulk_write
return self.__write(self.lib.libusb_bulk_transfer,
File "/usr/local/share/pynq-venv/lib/python3.8/site-packages/usb/backend/libus b1.py", line 938, in __write
_check(retval)
File "/usr/local/share/pynq-venv/lib/python3.8/site-packages/usb/backend/libus b1.py", line 602, in _check
raise USBTimeoutError(_strerror(ret), ret, _libusb_errno[ret])
usb.core.USBTimeoutError: [Errno 110] Operation timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/share/pynq-venv/lib/python3.8/site-packages/flask/app.py", li ne 2070, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/share/pynq-venv/lib/python3.8/site-packages/flask/app.py", li ne 1508, in full_dispatch_request
self.try_trigger_before_first_request_functions()
File "/usr/local/share/pynq-venv/lib/python3.8/site-packages/flask/app.py", li ne 1560, in try_trigger_before_first_request_functions
self.ensure_sync(func)()
File "/home/xilinx/Anritsu_GPIB/VNA/routes.py", line 44, in intialize_VNA
print(anritsu.VNA.query('*IDN?'))
File "/usr/local/share/pynq-venv/lib/python3.8/site-packages/pyvisa/resources/ messagebased.py", line 642, in query
self.write(message)
File "/usr/local/share/pynq-venv/lib/python3.8/site-packages/pyvisa/resources/ messagebased.py", line 197, in write
count = self.write_raw(message.encode(enco))
File "/usr/local/share/pynq-venv/lib/python3.8/site-packages/pyvisa/resources/ messagebased.py", line 157, in write_raw
return self.visalib.write(self.session, message)[0]
File "/usr/local/share/pynq-venv/lib/python3.8/site-packages/pyvisa_py/highlev el.py", line 543, in write
written, status_code = self.sessions[session].write(data)
File "/usr/local/share/pynq-venv/lib/python3.8/site-packages/pyvisa_py/usb.py" , line 179, in write
count = self.interface.write(data)
File "/usr/local/share/pynq-venv/lib/python3.8/site-packages/pyvisa_py/protoco ls/usbtmc.py", line 436, in write
bytes_sent += raw_write(data)
File "/usr/local/share/pynq-venv/lib/python3.8/site-packages/pyvisa_py/protoco ls/usbtmc.py", line 258, in write
raise ValueError(str(e))
ValueError: [Errno 110] Operation timed out
This persists until I do a complete reboot. I cannot find a way to clear this error. Does anyone have an advice on how to go about debugging this issue.
Thanks.