Tool to map usb device port chain and port name
Project description
pyusb-chain
Support command line interface to get the port chain of USB devices(serial, audio, .etc) based on UsbDeviceTreeView.exe in windows.
Installation
The easiest (and best) way to install pyusb-chain is through pip:
pip install pyusb-chain
Sources packages are also available at git hub:
https://github.com/BillYuan/usb_port_path
Quickstart
The API to use pyusb_chain to map between port chain and port name.
from pyusb_chain.usb_tree_view_tool import UsbTreeViewTool
tool = UsbTreeViewTool()
tool.scan() # scan first to get the latest USB devices information
# to get the port chain by COM port
portChain = tool.get_chain_from_port("COM16") # "1-7-5" or "1-3-1:2" if there are multi-com ports in one USB device
# to get the port chain by Audio Name
portChain = too.get_chain_from_port("Speakers (4- USB Audio Device)") # "1-3-7-4:Speaker"
portChain = too.get_chain_from_port("Microphone (4- USB Audio Device)") # "1-3-7-4:Microphone"
# to get port name by the port chain
portName = tool.get_port_from_chain("1-7-5") # "COM16"
portName = tool.get_port_from_chain("1-3-1:2") # "COM11"
portName = tool.get_port_from_chain("1-3-7-4:Speaker") # "Speakers (4- USB Audio Device)"
portName = tool.get_port_from_chain("1-3-7-4:Microphone") # "Microphone (4- USB Audio Device)"
Support command line standalone usage
usage: __main__.py [-h] [-g] [-l] [-a] [-f FILTER] [-e] [-v VERBOSE]
Command line for port path of USB devices (COM ports / Audio Devices)
Version:0.1.3
optional arguments:
-h, --help show this help message and exit
-g, --gui Launch GUI of USBTreeViewer.exe in Windows system
-l, --list List all USB devices information for COM ports and USB
Audio devices
-a, --allinfo List all information of USB device, include SN and
driver key
-f FILTER, --filter FILTER
filter the key words of USB devices information
-e, --export export the json format with all connected USB devices
information
-v VERBOSE, --verbose VERBOSE
verbose log mode, 'debug', 'fatal', 'error',
'warning', 'info'
For example,
- List all devices:
>pyusb-chain --list --allinfo
Scanning all USB devices...
Port Chain Key Port Name Device Name SN Driver Key
---------------- ------------------------------ ---------------------------------------------- ------------------------------------------------ ------------
2-1-1 Altera USB-Blaster 8a56TRPS 28
2-1-5:Speaker Headphones (Realtek USB Audio) USB Composite Device - Realtek USB Audio 200901010001 8
2-1-6 USB Composite Device - 2脳 Keyboard, 2脳 HID 9
2-1-7-3-2 COM16 Silicon Labs CP210x USB to UART Bridge (COM16) evkmimxrt1170_1_a 14
2-1-7-3-3 COM3 mbed Composite Device - D:\, COM3, HID 022900001294098900000000000000000000000097969905 17
2-1-7-4-1 COM109 USB-SERIAL CH340 (COM109) 16
2-1-7-4-4 USB Input Device - Mouse 7
2-1-7-7-1 Altera USB-Blaster 8a56TQ1M 27
2-1-7-7-3 COM11 USB Composite Device - COM11, E:\ SDAF7507E73 18
2-3-2 Realtek USB GbE Family Controller 000002000000 7
3-2 Altera USB-Blaster 8B951BA7 26
3-5 USB Composite Device - Camera 7
3-7 Intel(R) Wireless Bluetooth(R) - Media, HID 0
3-10 USB Composite Device 6
- Add filter to only list devices you required:
>pyusb-chain --list Altera --allinfo
Port Chain Key Port Name Device Name SN Driver Key
---------------- ----------- ------------------ -------- ------------
2-1-1 Altera USB-Blaster 8a56TRPS 28
2-1-7-7-1 Altera USB-Blaster 8a56TQ1M 27
3-2 Altera USB-Blaster 8B951BA7 26
- Export to the json file for all listed devices:
>pyusb-chain --list Altera --export
Please get 'usb_port_chain_export.json' for dumped information!
{
"2-1-1": {
"Port Name": "",
"Device Name": "Altera USB-Blaster",
"SN": "8a56TRPS",
"Location Info": "Port_#0001.Hub_#0004",
"Device ID": "USB\\VID_09FB&PID_6001\\8A56TRPS",
"Driver Key": 28
},
"2-1-7-7-1": {
"Port Name": "",
"Device Name": "Altera USB-Blaster",
"SN": "8a56TQ1M",
"Location Info": "Port_#0001.Hub_#0011",
"Device ID": "USB\\VID_09FB&PID_6001\\8A56TQ1M",
"Driver Key": 27
},
"3-2": {
"Port Name": "",
"Device Name": "Altera USB-Blaster",
"SN": "8B951BA7",
"Location Info": "Port_#0002.Hub_#0001",
"Device ID": "USB\\VID_09FB&PID_6001\\8B951BA7",
"Driver Key": 26
}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pyusb-chain-0.1.8.tar.gz
(387.5 kB
view details)
Built Distribution
pyusb_chain-0.1.8-py3-none-any.whl
(390.4 kB
view details)
File details
Details for the file pyusb-chain-0.1.8.tar.gz
.
File metadata
- Download URL: pyusb-chain-0.1.8.tar.gz
- Upload date:
- Size: 387.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.0 requests/2.23.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9000b933146e8a0c26fd560a6202b4bc361eb5f182057e2c64dd173265a71156 |
|
MD5 | 9ea1a5cc795750efbdb40f644f935136 |
|
BLAKE2b-256 | 9f360224667cc60167f16ca81b3160ea517f4bee900a5a8b4c1c6cdee252babd |
File details
Details for the file pyusb_chain-0.1.8-py3-none-any.whl
.
File metadata
- Download URL: pyusb_chain-0.1.8-py3-none-any.whl
- Upload date:
- Size: 390.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.0 requests/2.23.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5185881f9efaf86bf82c2bb08101755f96735ce869552c3ea8dca5d20226eb6a |
|
MD5 | 6b31619d8dde3a85e6f22429a9402820 |
|
BLAKE2b-256 | e26ce1b7f9cc1ba4d27ec99e83e4752fa4aa849304096132c6be84b2d9e9d0bf |