Updated bulk transfer method

Currently I'm unable to transfer data like 10000bytes through syncWrite method. So, I split the data into small pockets.
pull/331/head
Kamalakannan G 2021-05-05 20:36:47 +05:30 zatwierdzone przez GitHub
rodzic 319cb9de68
commit 11605b56ad
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
1 zmienionych plików z 25 dodań i 2 usunięć

Wyświetl plik

@ -30,6 +30,7 @@ public abstract class UsbSerialDevice implements UsbSerialInterface
protected final UsbDeviceConnection connection;
protected static final int USB_TIMEOUT = 0;
private static final int USB_MAX_BUFFER = 4096;
protected SerialBuffer serialBuffer;
@ -196,7 +197,18 @@ public abstract class UsbSerialDevice implements UsbSerialInterface
if(buffer == null)
return 0;
return connection.bulkTransfer(outEndpoint, buffer, buffer.length, timeout);
int totalLength = buffer.length;
byte[] bArr2 = new byte[USB_MAX_BUFFER];
int i3 = 0;
int i4 = 0;
while (totalLength > 0 && i3 < totalLength && i4 != -1) {
int min = Math.min(USB_MAX_BUFFER, totalLength - i3);
System.arraycopy(buffer, i3, bArr2, 0, min);
i4 = connection.bulkTransfer(outEndpoint, bArr2, min, timeout);
i3 += i4;
}
return i3;
}else
{
return -1;
@ -225,7 +237,18 @@ public abstract class UsbSerialDevice implements UsbSerialInterface
if(buffer == null)
return 0;
return connection.bulkTransfer(outEndpoint, buffer, offset, length, timeout);
int totalLength = buffer.length;
byte[] bArr2 = new byte[USB_MAX_BUFFER];
int i3 = 0;
int i4 = 0;
while (totalLength > 0 && i3 < totalLength && i4 != -1) {
int min = Math.min(USB_MAX_BUFFER, totalLength - i3);
System.arraycopy(buffer, i3, bArr2, 0, min);
i4 = connection.bulkTransfer(outEndpoint, bArr2, min, timeout);
i3 += i4;
}
return i3;
}else
{
return -1;