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.3.tar.gz
(387.4 kB
view details)
Built Distribution
pyusb_chain-0.1.3-py3-none-any.whl
(390.4 kB
view details)
File details
Details for the file pyusb-chain-0.1.3.tar.gz
.
File metadata
- Download URL: pyusb-chain-0.1.3.tar.gz
- Upload date:
- Size: 387.4 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 | 4c636d6233f525124100aafde34c4263b3d3c58719963897dbdc2f0199390a2d |
|
MD5 | a01a6afabfdfb113f0e588e867133d16 |
|
BLAKE2b-256 | 9e5c851247c1ba987c39d6d941b851a5b81a3db5c879137dca210c1e29600295 |
File details
Details for the file pyusb_chain-0.1.3-py3-none-any.whl
.
File metadata
- Download URL: pyusb_chain-0.1.3-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 | af6b9076e7c588c3bc37cdd61ac464dcc746fe75552548b82578c5a5490788c0 |
|
MD5 | 174b1bfedb81c2568ddeac57e5927c78 |
|
BLAKE2b-256 | bf5ed7cea8fda3f488963757b347e324d6148c6d88a386317024445283ce0a01 |