Я хочу послать один пакет на USB-устройство (контроллер Arduino) с использованием низкоуровневых API Usb4Java, но я получаю следующее сообщение об ошибке:Usb4Java: Pipe Error (-9)
org.usb4java.LibUsbException: USB error 9: Pipe error
Вот код критическая часть:
ByteBuffer buffer = ByteBuffer.allocateDirect(8);
buffer.put(new byte[] {'a', 'b', 'c'});
int transfered = LibUsb.controlTransfer(handle,
(byte) (LibUsb.REQUEST_TYPE_CLASS | LibUsb.RECIPIENT_INTERFACE),
(byte) 0x09,
(short) 256,
(short) 0,
buffer,
1000);
System.out.println(transfered);
if (transfered < 0){
throw new LibUsbException("Control transfer failed", transfered);
Я думаю, что это может быть водитель связанной или связанным с параметрами LibUsb.controlTransfer(...);
может быть, стоит упомянуть: источник машина работает под управлением Windows 7.
Какой драйвер вы используете? – dryman
Я использовал Zadig 2.2 для изменения драйвера. –
ОК, который должен работать в целом. Вы уверены, что передача управления, которую вы отправляете, верна? API libusb говорит следующее: «LIBUSB_ERROR_PIPE, если запрос управления не поддерживался устройством». Похоже, что передача управления, которую вы пытаетесь отправить, не поддерживается. – dryman