В настоящее время я разрабатываю инструмент Python для Windows, который может искать все устройства, подключенные к ПК с Windows. Он уже поддерживает устройства Ethernet, и сейчас я пытаюсь добавить поддержку USB и последовательных устройств. Для этих устройств я хочу прочитать их идентификатор поставщика, идентификатор продукта, серийный номер и, конечно же, адрес/порт, который необходим для подключения к устройству.
Простые USB-устройства можно легко обнаружить с помощью PyUSB или PyWin32. К сожалению, многие устройства говорят, что их поставщиком является FTDI, что не соответствует действительности. Насколько я знаю, FTDI просто предоставляет USB-адаптер/конвертер.
Итак, как я могу найти устройство за адаптером FTDI? Я уже пробовал PyUSB, PyWin32 и PySerial, но все они просто говорят, что подключено FTDI-устройство; но я хочу знать фактическое устройство, стоящее за адаптером FTDI... Есть ли способ узнать это?
Я надеюсь, что вы можете мне помочь... Заранее спасибо.
Обновить
Поскольку универсального решения не существует, есть ли способ однозначно идентифицировать одно из этих устройств FTDI? Некоторые из них предоставляют серийные номера, но, к сожалению, не все. Например, есть устройства с идентификатором устройства, например «USB\VID_0403&PID_FAF0\7&5E2426C&0&2», где «7&5E2426C&0&2» должен быть серийным номером. Но эти серийные номера с амперсандами не являются настоящими серийными номерами (может быть, это что-то из Windows или около того). PySerial даже распознает этот серийный номер только как «7».
Если бы у меня была хотя бы возможность получить настоящий серийный номер этого устройства, это было бы очень кстати. Таким образом, я мог однозначно идентифицировать это устройство, даже если оно получило новый идентификатор порта или устройства после отключения и повторного подключения. Или эти амперсанд-сериалы всегда одинаковы для одного устройства?