Получение ошибок ввода / вывода при записи с libusb - PullRequest
0 голосов
/ 20 мая 2019

Я пытаюсь связаться с устройством ИБП, но получаю следующую ошибку: Ошибка -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: Ошибка ввода / вывода

В чем может быть причина этой проблемы?Я что-то не так делаю?

...