USB-устройство без руководства пользователя. Есть ли способы выполнить сканирование USB-команд?

Я получил устройство с SDK для Python и программного обеспечения. В этом году моя исследовательская группа не будет продлевать подписку на программное обеспечение, потому что это очень дорого (›10 тысяч долларов в год). Понятно.

Однако для Python SDK требуется подключение к лицензии, которой у нас больше нет. Я связался с компанией, чтобы прислать мне руководство пользователя или список команд USB для их устройства, чтобы я мог написать собственный SDK, но, к моему удивлению ((не совсем), они отказались.

Итак, мы застряли с устройством за 60 тысяч долларов, которое я бы действительно хотел использовать.

Есть ли способ выполнить сканирование устройства, чтобы я мог попробовать разработать свой собственный SDK. Должен ли я перебирать все, запрашивая у порта каждую комбинацию букв, символов и символов? Это было бы не очень эффективно. Не удалось найти много информации в Интернете.


person PyThagoras    schedule 20.04.2021    source источник
comment
Если устройство соответствует спецификации USB, оно должно выдавать дескриптор устройства и дескриптор конфигурации, которые можно использовать для сбора дополнительной информации об устройстве. Если устройство является устройством, которое указано в USB с определенным кодом класса, тогда оно может иметь общие драйверные / общие команды.   -  person user123    schedule 21.04.2021
comment
Какой тип устройства?   -  person user123    schedule 21.04.2021
comment
См. Здесь microchipdeveloper.com/usb:device-classes. Если устройство не имеет кода класса, зависящего от производителя, у него может быть общий драйвер, соответствующий спецификации.   -  person user123    schedule 21.04.2021
comment
Это фотоаппарат. Я проверю дескриптор устройства и код класса поставщика и добавлю эту информацию в вопросник.   -  person PyThagoras    schedule 21.04.2021
comment
Если это камера, у вас может быть полная спецификация того, как управлять ею, на официальном сайте USB.   -  person user123    schedule 21.04.2021
comment
Попробуйте lsusb -t в Linux.   -  person user123    schedule 21.04.2021
comment
Кроме того, я предполагаю, что камерой уже можно управлять в Windows / Linux? Если это не так, то это хороший намек на то, что он не будет работать со спецификацией USB.   -  person user123    schedule 21.04.2021
comment
Это какая-то веб-камера высокого класса для высокоскоростной записи изображений? Если это так, то, возможно, этот код будет работать, чтобы управлять им: stackoverflow.com/questions/66140642/. Этот код использует GDI +, который по какой-то причине требует инвертировать данные RGB. Возможно, в этом случае GDI - лучший вариант. Если вы спросите меня, можно ли управлять этой камерой в Windows без написания полного драйвера USB, попробуйте этот код, и если он не работает из коробки, ответ, вероятно, будет отрицательным.   -  person user123    schedule 21.04.2021
comment
Камера не отправляет обратно дескриптор устройства и vendorID. Так что я предполагаю, что это не соответствует спецификации USB. Это действительно высококлассная камера с низким уровнем шума и высокой чувствительностью. Требует ли GDI спецификации USB? Если это не так, возможно, альтернативным способом (я думаю) было бы получить пробную версию программного обеспечения, а затем прослушать сообщение и прочитать команды, которые программное обеспечение отправляет и получает ...?   -  person PyThagoras    schedule 22.04.2021
comment
GDI - это просто API рендеринга. Он берет изображение в RGB или других форматах и ​​отображает его на экране. Media Foundation - это API захвата от Microsoft. Если вам удастся захватить изображения с камеры с помощью Media Foundation, вы можете легко написать для него целый драйвер C ++.   -  person user123    schedule 22.04.2021
comment
Вы пробовали код по предоставленной мной ссылке. Я предлагаю вам скачать Visual Studio и попробовать ее в этой среде.   -  person user123    schedule 22.04.2021
comment
Если устройство не распознается Linux с определенным идентификатором поставщика и прочим, то это, вероятно, (очень плохое) проприетарное устройство, за которое они хотели, чтобы вы заплатили за программное обеспечение. Таким образом, они очень сильно запутали все это и написали для этого плохое программное обеспечение на Python.   -  person user123    schedule 22.04.2021