使用libusb写入时出现错误输入/输出

时间:2019-05-20 16:05:20

标签: java usb libusb ups

我正在尝试与UPS设备进行通信,但出现以下错误:错误-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),从而为我提供输出: OUT错误-1:输入/输出错误

这个问题可能是什么原因?我在做错什么吗?

0 个答案:

没有答案