usb设备识别

时间:2010-03-21 12:22:34

标签: python controls port device

我在ubuntu 9.04上使用python 说我有两台USB设备连接到一台PC。我如何识别python代码中的设备.....例如

如果usb port id == A.      将数据写入设备1 如果usb port id == B.      将数据写入设备2

任何想法......

4 个答案:

答案 0 :(得分:7)

你试过pyUsb吗? 这是你可以做的事情的片段:

import usb
busses = usb.busses()
for bus in busses:
    devices = bus.devices
    for dev in devices:
        print "Device:", dev.filename
        print "  idVendor: %d (0x%04x)" % (dev.idVendor, dev.idVendor)
        print "  idProduct: %d (0x%04x)" % (dev.idProduct, dev.idProduct)

Here一个很好的pyUsb教程。

有关更多文档,请使用带有dir()和help()的Python交互模式。

答案 1 :(得分:3)

@ systempuntoout的答案很好,但今天我找到了一种更简单的方法来查找或迭代所有设备:usb.core.find(find_all=True)

以下示例:

import usb
for dev in usb.core.find(find_all=True):
    print "Device:", dev.filename
    print "  idVendor: %d (%s)" % (dev.idVendor, hex(dev.idVendor))
    print "  idProduct: %d (%s)" % (dev.idProduct, hex(dev.idProduct))

答案 2 :(得分:1)

但无论如何......有人会在某个时候寻找答案:

我在Mac上(osx 10.9)..我成功安装了带有mac端口的libusb,但是得到了“没有后端可用”消息。这是因为python找不到usb dylibs。

您必须将libusb的路径添加到$ DYLD_LIBRARY_PATH(例如/ opt / local / lib,无论您的macport安装在哪里)。

我添加它的时候,pyusb工作正常。

答案 3 :(得分:0)

好的我也在谷歌上搜索答案,这里有一段有用的代码:

select * from p_order inner join p_customer on 
p_order.customer_id=p_customer.id where p_order_status='active'

取自{{3}}