После получения доступа к подключенному устройству с помощью navigator.usb.requestDevice
я пытаюсь открыть соединение с подключенным устройством следующим образом:Как заявить интерфейс с помощью WebUSB?
device.open()
.then(() => device.selectConfiguration(1))
.then(() => device.claimInterface(1))
Это, казалось бы, успешно выбирает конфигурацию, однако claimInterface
шаг будет производить следующее сообщение об ошибке:
DOMException: Unable to claim interface.
Я бегу Chrome 55.0.2883.75 бета с --disable-webusb-security
флагом как корень (без тех, кого я не получил каких-либо устройств) на Ubuntu 16.10.
Как я могу подключиться и работать?
Edit:
кажется, что водитель cdc_acm уже утверждал, интерфейс, так как устройство я пытаюсь прикрепить это последовательное устройство, разгружая драйвер позволит вам претендовать на устройство (однако после этого он жалуется интерфейс 1 не доступен, а также 0 или 2).
Поскольку это устройство имеет несколько интерфейсов, мы должны убедиться, что вы претендуя на правильный. Пожалуйста, включите вывод 'lsusb -v' для вашего устройства, в котором будут перечислены все дескрипторы устройства. Устройство USB CDC действительно будет сложно использовать с WebUSB из-за того, что существующие драйверы загружены, однако принудительное выключение драйвера должно выпустить интерфейс. Когда вы получаете сообщение об ошибке «Невозможно потребовать интерфейс», Chrome предоставит, возможно, более подробную информацию об ошибке в chrome: // device-log. –