WebUsb productName и ManufacturerName пусты - PullRequest
0 голосов
/ 06 декабря 2018

Я разрабатываю USB-устройство на основе микроконтроллера.Я могу открыть устройство с помощью webusb, поговорить с ним и все.

Просто поля productName и ManufacturerName являются пустыми строками, и во всплывающем окне выбора устройства отображается «Неизвестное устройство от Microchip Technology Inc.»вместо того, что фактически возвращается устройством.

Windows правильно перечисляет устройство, читает дескриптор BOS, который содержит дескриптор расширения USB 2.0 (LPM), дескриптор платформы WebUSB и запись MS OS 2.0.

Я использую программное обеспечение USBlyzer для захвата связи по USb и вижу, что:

  • дескриптор BOS правильно выбран
  • дескриптор URL WebUSB правильно выбран
  • дескриптор MS OS 2.0 правильно извлечен

Windows правильно устанавливает драйвер WinUSB, и устройство работает при открытии из собственного приложения (с использованием libusb).Я также могу прочитать строки с названием продукта и названием производителя с устройства.

Я проверил это под: последний хром, последний хром канарейка, последний хром (из дерева), последняя опера и под всеми этими устройствомотображается как «неизвестное устройство от Microchip Technology Inc.»(в основном имя вычитается из VID).Должно быть, я что-то делаю не так, но даже не знаю, с чего начать отслеживать эту проблему.

В «chrome: // device-log» я вижу записи типа: «Не удалось отправить перевод: Entity»не найдено «прямо перед» USB-устройство добавлено: vendor = 1240 "", product = 60944 "", serial = "4326", guid = fcc527ca-5c19-45e0-9334-745475ae430d ', это не очень полезно.

1 Ответ

0 голосов
/ 10 декабря 2018

Известно, что Chrome считывает с устройства такие строки, как productName и manufacturerName во время перечисления, с ошибками в Windows, поскольку он конкурирует с другими частями стека драйверов Windows.В настоящее время внедряется новый бэкэнд для USB под Windows, который решает эту проблему.Эта работа отслеживается выпуском 637404 .Для некоторых типов устройств это уже работает должным образом, и вы можете проверить это, установив chrome://flags#new-usb-backend в положение.

...