我正在尝试与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:输入/输出错误
这个问题可能是什么原因?我在做错什么吗?