我一直试图将USB输入与libusb相交。我可以成功检测并连接到设备,但无法从设备读取数据。
我有一个监视设备,可以与自己的软件完美配合。但我需要将数据发送到python进行进一步分析。
import usb.core
dev = usb.core.find(idVendor=0x09da, idProduct=0xc10a)
import usb1
with usb1.USBContext() as context:
handle = context.openByVendorIDAndProductID(0x09DA,0xC10A,skip_on_error=True)
Ep = dev[0][(0,0)][0]
while True:
data = handle.bulkRead(0x5, 8)
OSError跟踪(最近一次通话最近) 在 4 Ep = dev [0] [(0,0)] [0] 5,只有True: ----> 6个数据= handle.bulkRead(0x5,8)
c:\ users \ admin \ appdata \ local \ programs \ python \ python36 \ lib \ site-packages \ usb1__init __。py成批读取(自身,端点,长度,超时) 1567数据,data_buffer = create_binary_buffer(长度) 1568试试: -> 1569已传送= self._bulkTransfer(端点,数据,长度,超时) 1570,但USBErrorTimeout除外: 1571 exception.received = data_buffer [:exception.transferred]
c:\ users \ admin \ appdata \ local \ programs \ python \ python36 \ lib \ site-packages \ usb1__init __。py in _bulkTransfer(自身,端点,数据,长度,超时) 1516试试: (1517) -> 1518 self .__ handle,端点,数据,长度,byref(传输),超时, 1519)) 1520,但USBErrorTimeout除外:
OSError:异常:访问冲突读取0x0000000000000040
答案 0 :(得分:1)
使用usb.core时,我遇到了类似的OSError。
OSError: exception: access violation writing 0x0000000000000024
我尝试了-https://github.com/pyusb/pyusb/issues/203
中建议的一些更改使用了git中的补丁,因为它未在PyPi中发布 https://github.com/pyusb/pyusb
使用libusb到1.0.22 DLL
这减少了异常发生的频率,但并没有解决我问题。
然后,我尝试了这一点-
dev = usb.core.find(find_all=True)
dev.set_configuration() # added this line
到目前为止,我还没有看到例外的发生。希望这会有所帮助。
我还没有尝试过,但是,也许可以尝试应用此补丁(在https://github.com/pyusb/pyusb/issues/203中建议) -- https://github.com/jonasmalacofilho/liquidctl/commit/e1cdcb686e50231e425f0121f880289420510c8d