如何使用PYUSB与USB设备进行交互



我已经到了寻找设备的阶段,现在我准备使用第22页的规范中的设备协议与USB进行交谈。

libusb安装在我的机器上,pyusb也是如此。

import usb.core
import usb.util
# find our device
dev = usb.core.find(idVendor=0x067b, idProduct=0x2303)
# was it found?
if dev is None:
    raise ValueError('Device not found')
# b are bytes, w are words
reqType = ''
bReq = ''
wVal = ''
wIndex = ''
dev.ctrl_transfer(reqType, bReq, wVal, wIndex, [])

上面的示例正在尝试使用控制传输,我认为这是协议所描述的。

我只想知道我是否沿着正确的线条或我做错了什么。

找到了设备,这只是我不确定的下一部分。

https://github.com/walac/pyusb/blob/master/master/docs/tutorial.rst章与我交谈,亲爱的

>>> msg = 'test'
>>> assert dev.ctrl_transfer(0x40, CTRL_LOOPBACK_WRITE, 0, 0, msg) == len(msg)
>>> ret = dev.ctrl_transfer(0xC0, CTRL_LOOPBACK_READ, 0, 0, len(msg))
>>> sret = ''.join([chr(x) for x in ret])
>>> assert sret == msg

如果要写入端点(批量传输等(,则必须遵守USB树结构:-> configuration -> claim interface -> get endpoint ...

规范是USB协议的第22页上的

是GNET协议(我不知道(。关键是您不需要低级USB与设备交谈。您可以在linux上使用标准TTY程序(echoscreenputtysocat,...(或Windows中的类似物

相关内容

  • 没有找到相关文章

最新更新