From 90396ab436ca99b912e41e20c74902b85447e826 Mon Sep 17 00:00:00 2001 From: Felipe Herranz Date: Sun, 7 Jul 2019 22:36:22 +0200 Subject: [PATCH] ftdi adapted for syncRead with offset method --- .../java/com/felhr/usbserial/FTDISerialDevice.java | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/usbserial/src/main/java/com/felhr/usbserial/FTDISerialDevice.java b/usbserial/src/main/java/com/felhr/usbserial/FTDISerialDevice.java index 1d5e565..9aa824b 100644 --- a/usbserial/src/main/java/com/felhr/usbserial/FTDISerialDevice.java +++ b/usbserial/src/main/java/com/felhr/usbserial/FTDISerialDevice.java @@ -691,7 +691,7 @@ public class FTDISerialDevice extends UsbSerialDevice @Override public int syncRead(byte[] buffer, int offset, int length, int timeout) { - /* TODO + long beginTime = System.currentTimeMillis(); long stopTime = beginTime + timeout; @@ -705,13 +705,13 @@ public class FTDISerialDevice extends UsbSerialDevice return 0; } - int n = buffer.length / 62; - if(buffer.length % 62 != 0) + int n = length / 62; + if(length % 62 != 0) { n++; } - byte[] tempBuffer = new byte[buffer.length + n * 2]; + byte[] tempBuffer = new byte[length + n * 2]; int readen = 0; @@ -732,7 +732,7 @@ public class FTDISerialDevice extends UsbSerialDevice if(numberBytes > 2) // Data received { byte[] newBuffer = this.ftdiUtilities.adaptArray(tempBuffer); - System.arraycopy(newBuffer, 0, buffer, 0, buffer.length); + System.arraycopy(newBuffer, 0, buffer, offset, length); int p = numberBytes / 64; if(numberBytes % 64 != 0) @@ -744,8 +744,6 @@ public class FTDISerialDevice extends UsbSerialDevice }while(readen <= 0); return readen; - */ - return 0; } private static final byte[] skip = new byte[2];