40 lines
1.6 KiB
Python
40 lines
1.6 KiB
Python
#!/usr/bin/env python
|
|
#
|
|
# usbenum.py: enumerate usb devices using pyusb module
|
|
# from http://wiki.erazor-zone.de/wiki:projects:python:pyusb:setup:examples:usbenum
|
|
# copyright 2005 Wander Lairson Costa
|
|
|
|
import usb
|
|
|
|
busses = usb.busses()
|
|
|
|
for bus in busses:
|
|
devices = bus.devices
|
|
for dev in devices:
|
|
print('Device:', dev.filename)
|
|
print(' Device class:',dev.deviceClass)
|
|
print(' Device sub class:',dev.deviceSubClass)
|
|
print(' Device protocol:',dev.deviceProtocol)
|
|
print(' Max packet size:',dev.maxPacketSize)
|
|
print(' idVendor:',dev.idVendor)
|
|
print(' idProduct:',dev.idProduct)
|
|
print(' Device Version:',dev.deviceVersion)
|
|
for config in dev.configurations:
|
|
print(' Configuration:', config.value)
|
|
print(' Total length:', config.totalLength)
|
|
print(' selfPowered:', config.selfPowered)
|
|
print(' remoteWakeup:', config.remoteWakeup)
|
|
print(' maxPower:', config.maxPower)
|
|
for intf in config.interfaces:
|
|
print(' Interface:',intf[0].interfaceNumber)
|
|
for alt in intf:
|
|
print(' Alternate Setting:',alt.alternateSetting)
|
|
print(' Interface class:',alt.interfaceClass)
|
|
print(' Interface sub class:',alt.interfaceSubClass)
|
|
print(' Interface protocol:',alt.interfaceProtocol)
|
|
for ep in alt.endpoints:
|
|
print(' Endpoint:',hex(ep.address))
|
|
print(' Type:',ep.type)
|
|
print(' Max packet size:',ep.maxPacketSize)
|
|
print(' Interval:',ep.interval)
|