Я работаю над проектом, который включает автоматическое обнаружение подключенных и отключенных USB-устройств и устройств FireWire из системы OS X.Для данного устройства система должна распознавать устройство, когда оно подключено (независимо от того, к какому порту), и загружать пакет для конкретного устройства, чтобы справиться с ним.
Ключом к выполнению этой работы, очевидно, являетсяуникальная идентификация каждого устройства.Я знаю, что USB-устройства идентифицируются по комбинации полей идентификатора поставщика и идентификатора продукта, но это не обеспечивает уникальный идентификатор, только «вид» устройства.Если у меня есть два одинаковых устройства и я подключаю их оба к компьютеру, я бы хотел как-то их различить.Есть ли общий и надежный способ сделать это, возможно, используя другие поля в дескрипторе USB?
Смежный вопрос, как это работает для последовательных портов USB?Предположим, я подключил два последовательных порта USB одной марки / модели.OS X должна дать им уникальные inode в дереве / dev.Однако предположим, что он вызывает их / dev / usbserial1 и / dev / usbserial2.Если я затем отключу порты и подключу только один из них, получит ли этот порт то же имя, что и раньше, или он просто подключится к порту / dev / usbserial1 (поскольку он единственный)?
Тот же вопрос для устройств FireWire, хотя я думаю, что устройства FireWire должны иметь 64-битный GUID.В этом случае я ищу кого-то, чтобы убедиться, что использование GUID для идентификации устройства FireWire будет надежным.Другими словами, если бы я подключил две отдельные камеры одного и того же производителя и модели, ожидал бы я, что у них будут разные GUID?
Я знаю, что смогу протестировать некоторые из них с соответствующим оборудованием, но я неВ настоящее время у меня несколько аппаратных средств, поэтому я надеюсь, что кто-то знает хотя бы некоторые из ответов на поставленные выше вопросы.