Multimeter USB output
Terry Reedy
tjreedy at udel.edu
Sat Aug 27 18:45:06 EDT 2016
On 8/27/2016 3:35 PM, Joe wrote:
> Hi,
>
> I'm using Python 3.5.1 with PyUSB 1.0 under Win 10 (64). We try to read
> the USB output of a DMM 'UT61B'.
>
> import usb.core
> import usb.util
> import usb.backend.libusb1
>
> def Gosub():
> dev = usb.core.find(idVendor=0x1a86, idProduct=0xe008) # Digital
> Multimeter UT61B
> if dev == None:
> print ('Multimeter not found')
> else:
> print ('Multimeter was found')
> dev.set_configuration()
> cfg = dev.get_active_configuration()
> intf = cfg[(0,0)]
> ep = usb.util.find_descriptor(
> intf,
> custom_match = \
> lambda e: \
> usb.util.endpoint_direction(e.bEndpointAddress) == \
> usb.util.ENDPOINT_IN)
> if ep == None:
> print ('ep is None')
> else:
> s = ep.read(64, 500)
> print ('Len s: ' + len(s))
>
> print ('Starting')
> Gosub()
> print ('Ready.-')
>
> Result:
I presume you saw
Starting
Multimeter was found
> File "d:\work-d\PythonProgs\ut61b.py", line 27, in <module>
> Gosub()
> File "d:\work-d\PythonProgs\ut61b.py", line 23, in Gosub
> s = ep.read(64, 500)
> File "D:\Python3\Lib\site-packages\usb\core.py", line 402, in read
> return self.device.read(self, size_or_buffer, timeout)
> File "D:\Python3\Lib\site-packages\usb\core.py", line 988, in read
> self.__get_timeout(timeout))
> File "D:\Python3\Lib\site-packages\usb\backend\libusb1.py", line 851, in
> intr_read
> timeout)
> File "D:\Python3\Lib\site-packages\usb\backend\libusb1.py", line 936, in
> __read
> _check(retval)
> File "D:\Python3\Lib\site-packages\usb\backend\libusb1.py", line 595, in
> _check
> raise USBError(_strerror(ret), ret, _libusb_errno[ret])
>
> usb.core.USBError: [Errno 10060] Operation timed out
>
> What's wrong? How to fix?
Read (again?) the doc for the interface for the device. Because reading
timed out, I suspect that it is waiting for a command for it to send
something.
--
Terry Jan Reedy
More information about the Python-list
mailing list