usb4java Ошибка при отправке сообщения: ошибка USB 1: ошибка передачи управления: ошибка ввода / вывода
Я пытаюсь отправить сообщение с помощью API usb4java элементу чтения и записи ir с этим кодом:
public static void sendData(DeviceHandle handle, int timeout) {
ByteBuffer buffer = ByteBuffer.allocateDirect(12);
buffer.put(new byte[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12});
buffer.rewind();
int transfered = LibUsb.controlTransfer(handle,
(byte) (LibUsb.REQUEST_TYPE_CLASS | LibUsb.RECIPIENT_INTERFACE),
(byte) 0x09, (short) 2, (short) 1, buffer, timeout);
if (transfered < 0) {
throw new LibUsbException("Control transfer failed", transfered);
}
System.out.println(transfered + " bytes sent");
}
Но каждый раз, когда я пытаюсь это сделать, я получаю эту ошибку в int = controlTransfer(handle, (LibUsb.REQUEST_TYPE_CLASS | RECIPIENT_INTERFACE), 0x09, (short) 2, (short) 1, buffer, timeout);
:
Exception in thread "main" org.usb4java.LibUsbException: USB error 1: Control transfer failed: Input/Output Error
at usb.reader.USBReader.sendData(USBReader.java:56)
at usb.reader.USBReader.main(USBReader.java:42)
Java Result: 1
Может быть, у одного из вас есть идея, как решить эту проблему?
Я очень жду вашего ответа.
РЕДАКТИРОВАТЬ: Я думаю, что я должен сказать, что моя операционная система Linux 64-разрядная в VM VirtualBox на Windows 8.1 64-разрядная. (Переадресация USB активирована; я уже получил доступ к USB-устройству)
1 ответ
int transfered = LibUsb.controlTransfer(
handle,
(byte) (LibUsb.REQUEST_TYPE_CLASS | LibUsb.RECIPIENT_INTERFACE),
(byte) 0x09, //bmRequestType
(short) 256, //wValue
(short) 0, //wIndex
buffer, TIMEOUT);
значение wValue=256