我在ubuntu 9.04上使用python 说我有两台USB设备连接到一台PC。我如何识别python代码中的设备.....例如
如果usb port id == A. 将数据写入设备1 如果usb port id == B. 将数据写入设备2
任何想法......
答案 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}}