Python libusb给我OSError:异常:访问冲突读取

时间:2019-08-29 01:33:56

标签: python usb

我一直试图将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

1 个答案:

答案 0 :(得分:1)

使用usb.core时,我遇到了类似的OSError。

OSError: exception: access violation writing 0x0000000000000024

我尝试了-https://github.com/pyusb/pyusb/issues/203

中建议的一些更改
  1. 使用了git中的补丁,因为它未在PyPi中发布 https://github.com/pyusb/pyusb

  2. 使用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