Python 3.4 + pyUSB 1.0 + libusb-win32 1.2.6.0, what happens?

jfong at ms4.hinet.net jfong at ms4.hinet.net
Sat Dec 5 06:26:02 EST 2015


I am new to python. I had a USB HID device which behavior is that the host send a 64 bytes commands to it, after complete the execution of this commands it send back a 64 bytes status to the host, so the host can check the status and decide the next step.

When I run it under Win7 with SwiftForth 3.5.9 (a Forth system) and libusb-win32 1.2.6.0, it performs well. But when I test it under the same PC with python 3.4, pyUSB 1.0 and libusb-win32 1.2.6.0, it performs a little strange. The status read back always fail at the first time (return zero length) and success at the second time.

>>> dev.write(0x02, cmdBuf)
64
>>> dev.read(0x81, 64, 5000)
array('B')                    # no data returned
>>> dev.read(0x81, 64, 5000)
array('B', [165, 0, ....])    # this one is correct, totally 64 bytes

another "strange" thing is that I had a 5000 timeout in the read but I see no delay at the first read. It returns immediately. I suppose it should wait for 5 seconds long before it returns. Right?

Any hint?

Best Regards,
Jach Fong




More information about the Python-list mailing list