Ошибки и конечные точки передачи WebUSB Api

Я пытаюсь получить доступ к классу устройств HID, используя webusb api на chrome.

Пока я могу обнаружить устройство, открыть его, запросить интерфейс. Но при выдаче простого отчета HID я постоянно получаю «сбой передачи».

Например, чтобы получить текущую версию if , отправив ему HID-отчет 0x05, он ответит им.

result = await device.controlTransferOut({
        requestType: 'standard', // tried all combinations: standard / class / vendor
        recipient: 'endpoint', // tried all combinations: device / interface / endpoint / other
        request: 0x05,
        value: 0,
        index: 1
     });

result = await device.controlTransferIn({
        requestType: 'standard',
        recipient: 'endpoint', 
        request: 0x05,
        value: 0,
        index: 1
  }, 64);

NetworkError: Произошла ошибка передачи.

Кроме того, используя стандартные команды TransferIn и TransferOut, я сталкиваюсь с этой проблемой: конечные точки входа и выхода имеют одинаковый номер конечной точки:

Конечные точки

Может ли кто-нибудь указать мне в правильном направлении?


РЕДАКТИРОВАТЬ:

Хотя мне удается получить некоторые данные из OS X (Windows все еще устраняет ошибку), данные всегда одинаковы, несмотря на отправляемый мной отчет HID.


person Fernando Rodríguez    schedule 17.10.2017    source источник
comment
В Windows какой драйвер загружается для устройства? Это можно увидеть в диспетчере устройств. Если это не winusb.sys, то это не поддерживается Chrome.   -  person Reilly Grant    schedule 26.10.2017
comment
Я сделал собственный драйвер, чтобы заставить устройство загружать winusb.sys. Я выполнил инструкции в этом сообщении: stackoverflow.com/a/46186495/6470742 и загрузил драйвер. Я только что купил другое устройство, потому что я думаю, что оно сломано. Иногда это ведет себя странно, событие производителя программного обеспечения. Обновлю псот. как только у меня будет больше информации.Спасибо   -  person Fernando Rodríguez    schedule 07.11.2017