Получить серийный номер или идентификатор контроллера USB-хоста с помощью Teensy или других HID устройств

У меня есть Teensy плата и хотел бы знать, если есть способ, чтобы получить серийный номер (или любой другой идентификатор, который является уникальным желательно) от хост - контроллера, к которому подключается Teensy. Например. я могу достать любые уникальные идентификационные номера контроллера USB на моем MacBook, когда я подключить Мой Teensy што ли? Примеры кода на C/C++ для Teensy будут высоко оценены.

, 👍3

Обсуждение

Такая информация не обязательно предоставляется. Вы можете иметь пользовательское программное обеспечение на хосте, собирающее и предлагающее информацию, и вы можете быть в состоянии ненадежно отпечатать тип/версию операционной системы хоста по небольшим деталям ее поведения., @Chris Stratton

Что я вообще могу получить о хост-контроллере?, @JSmyth

Без пользовательского кода на хосте почти ничего, кроме просмотра того, как он привычно настраивает и использует ваше устройство., @Chris Stratton


1 ответ


1

Ничто в спецификации USB не требует, чтобы хост предоставлял какую-либо идентификацию подключаемым устройствам. Стандартный способ реализации того, что вы хотите, состоит в написании пользовательского драйвера, который передает необходимую информацию устройству. Если установка пользовательского драйвера невозможна, все, что вы можете сделать, это попытаться обнаружить ОС, наблюдая за тем, что она делает в процессе перечисления. Такая идентификация не будет надежной (процесс перечисления может измениться после обновления ОС) и ни в коем случае не будет уникальной.

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

,