При производстве устройств, которые используют микросхему FTDI USB для последовательного интерфейса для связи с хостом Windows, мы получаем сотни COM-портов, поскольку Windows, кажется, просто увеличивает номер порта каждый раз, когда новый FTDI vid + pid + serial подключается к ПК. .
Я заглянул в HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\FTDIBUS
и попытался удалить новые записи, которые появляются, но единственный эффект заключается в том, что номер COM-порта увеличивается даже для устройств с тем же vid + pid + serial (то есть устройств, которые уже были подключены один раз).
Вопрос: можно ли каким-то образом сбросить этот счетчик, чтобы перечисление начиналось с первого свободного номера COM-порта?
Изменить: этот вопрос лучше подходит для superuser.com? Edit2: на него был дан ответ суперпользователь
Вот инструкции, чтобы предотвратить присвоение компьютеру Windows нового номера COM-порта каждый раз, когда новое устройство с микросхемой FT232RL подключается к USB-порту: http://liionbms.com/pdf/DisableFTDI_Enumeration.pdf Не стесняйтесь использовать
Примечание: скопировано из SuperUser
Я не на работе, поэтому передо мной нет никакого оборудования, но информация о приложении FTDI AN_107 - Дополнительные параметры драйвера похоже, есть несколько многообещающих вариантов.
В частности, я думаю, что опция «Игнорировать серийный номер оборудования» (раздел 7.1, стр. 20) подойдет вам.
7.1 Игнорировать серийный номер оборудования
Если устройства имеют один и тот же идентификатор поставщика и идентификатор продукта, но разные серийные номера, система обычно будет рассматривать их как разные устройства. Это приводит к установке драйверов для каждого устройства и созданию записей реестра для каждого устройства.
Можно изменить это поведение, чтобы система игнорировала серийный номер устройства и обрабатывала все устройства с соответствующими VID и PID, подключенными к одному и тому же USB-порту, как если бы они были одним и тем же устройством. Это достигается путем добавления значения REG_BINARY с именем IgnoreHWSerNum в реестр и установки для него значения 01.
В AN_123 Как COM-порты распределяются при установке драйвера Заметка о приложении также очень информативна.
OT, устройства в наши дни становятся настолько сложными, что большая часть документации перемещается из таблицы в Примечания к приложениям. Не забывайте всегда читать примечания к приложению!
У Microsoft есть утилита командной строки под названием DevCon который может делай то, что тебе нужно.
Примеры:
Перечислите существующие и отсутствующие USB-устройства:
devcon findall =usb
Список существующих и отсутствующих портов:
devcon findall =ports
Удалите все USB-устройства:
devcon remove @usb\*
Удалите все порты:
devcon remove @ports\*
Действовать с осторожностью. Возможно, после этого вам потребуется выполнить повторное сканирование devcon или даже перезагрузить devcon.