Найдите порт COM конкретного устройства в командной строке.

Вопрос или проблема

Я знаю, что мы можем узнать это через Диспетчер устройств в разделе “Порты”. Но я хочу получить эту информацию через командную строку, чтобы включить ее в свой скрипт на Python. Я посмотрел на такие инструменты, как WMI и Devcon. Devcon мог перечислить подключенные USB-устройства, но не указывать, к какому COM-порту подключено устройство. Кто-нибудь знает, как это сделать?

Если это поможет, устройство, которое я пытаюсь найти, – это USB Serial Converter.

DEVCON Findall =USB

USB\VID_0403&PID_6001\AH02JYRN : USB Serial Converter

Заранее спасибо!

Я нашел решение. Вы можете использовать devcon.exe и

devcon.exe FindAll =Ports

это даст вам точные данные, которые будут отображены в Диспетчере устройств в разделе “Порты” –

ACPI\PNP0501\1 : Порт связи (COM2)

ACPI\PNP0501\2 : Порт связи (COM1)

FTDIBUS\VID_0403+PID_6001+AH02JYRNA\0000 : USB последовательный порт (COM3)

Найдено 3 совпадающих устройства.

Вы можете обработать этот вывод, чтобы узнать номер COM-порта вашего нужного устройства.

Ответ или решение

Для нахождения COM-порта конкретного устройства через командную строку в Windows, вы можете использовать утилиту DevCon или другие инструменты, такие как WMI (Windows Management Instrumentation). Ведь, хотя Device Manager показывает необходимую информацию, вы хотите интегрировать эту функциональность в ваш Python-скрипт.

Использование DevCon для нахождения COM-порта USB Serial Converter

  1. Скачивание DevCon: Убедитесь, что у вас установлена утилита DevCon. Она входит в состав Windows Driver Kit (WDK). Вы можете скачать WDK с сайта Microsoft.

  2. Командный ввод: Если у вас уже есть DevCon, откройте командную строку с правами администратора.

  3. Команда для списка всех COM-портов: Введите следующую команду для получения списка всех подключенных портов:

    devcon.exe FindAll =Ports

Эта команда выведет список всех устройств, которые система распознает как COM-порты. Результат будет содержать информацию о каждом порту, включая его имя и номер.

Пример вывода:

ACPI\PNP0501\1                           : Communications Port (COM2)
ACPI\PNP0501\2                           : Communications Port (COM1)
FTDIBUS\VID_0403+PID_6001+AH02JYRNA\0000 : USB Serial Port (COM3)
3 matching device(s) found.
  1. Парсинг вывода: Если в выводе присутствует ваше устройство (например, "FTDIBUS\VID_0403+PID_6001+AH02JYRNA"), вы можете использовать Python для парсинга этого вывода и извлечения необходимого номера порта.

Пример кода на Python для парсинга

Вот пример кода, который выполняет команду DevCon и извлекает номер COM-порта для вашего USB Serial Converter:

import subprocess
import re

# Выполняем команду DevCon
process = subprocess.Popen(['devcon.exe', 'findall', '=Ports'], stdout=subprocess.PIPE)
output, _ = process.communicate()

# Декодируем байты в строку
output = output.decode()

# Ищем нужное устройство по VID и PID
pattern = r'FTDIBUS\\VID_0403\+PID_6001\+AH02JYRNA\\\w+\s+:\s+USB Serial Port\s+\(COM(\d+)\)'
match = re.search(pattern, output)

if match:
    com_port = match.group(1)
    print(f'Номер COM-порта для USB Serial Converter: COM{com_port}')
else:
    print('USB Serial Converter не найден.')

Заключение

Используя приведенные методы, вы сможете находить COM-порты через командную строку и интегрировать эти функции в ваш код. Утилита DevCon и Python предоставляют мощные инструменты для управления устройствами и парсинга данных, что существенно упростит вашу работу с устройствами в среде Windows. Если у вас возникли дополнительные вопросы, не стесняйтесь обращаться.

Оцените материал
Добавить комментарий

Капча загружается...