Я пытаюсь связаться с устройством ИБП, но получаю следующую ошибку: Ошибка -1: ошибка ввода / вывода .
Устройство имеет один интерфейс (адрес 0), и я утверждаю его перед началом связи с устройством.
Дескрипторы конечной точки:
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 8
bInterval 10
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 8
bInterval 10
И здесьэто код:
Transfer transferToSend = LibUsb.allocTransfer();
ByteBuffer dataToSend = ByteBuffer.allocateDirect(8);
byte[] cmd = "Q1".getBytes();
dataToSend.put((byte) 0x80);
dataToSend.put((byte) 0x06);
dataToSend.put((byte) (cmd.length + 1));
dataToSend.put((byte) 0x03);
dataToSend.put(cmd, 0, cmd.length);
dataToSend.put((byte) 0x27);
LibUsb.fillInterruptTransfer(transferToSend, this.mDeviceHandle, (byte) 0x02, dataToSend, new TransferCallback() {
public void processTransfer(Transfer transfer) {
System.out.println("======= TRANSFER OUT =======");
System.out.println(transfer.actualLength());
}
}, null, 5000);
int result = LibUsb.submitTransfer(transferToSend);
if(result < 0) {
System.err.println(String.format("OUT Error %d: %s", result, LibUsb.strError(result)));
}
Как я уже сказал, код заканчивается ошибкой (результат <0), дающей мне вывод: <strong>OUT Error -1: Ошибка ввода / вывода
В чем может быть причина этой проблемы?Я что-то не так делаю?