diff --git a/build.gradle b/build.gradle index 7a8e3ab..3d5ba79 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.2.0' + classpath 'com.android.tools.build:gradle:2.2.3' } } diff --git a/usbserial/src/main/java/com/felhr/usbserial/SerialBuffer.java b/usbserial/src/main/java/com/felhr/usbserial/SerialBuffer.java index 1e7bb2b..a59f53e 100644 --- a/usbserial/src/main/java/com/felhr/usbserial/SerialBuffer.java +++ b/usbserial/src/main/java/com/felhr/usbserial/SerialBuffer.java @@ -118,6 +118,7 @@ public class SerialBuffer public synchronized void put(byte[] src) { + if(src == null || src.length == 0) return; if(position == -1) position = 0; if(debugging) @@ -148,6 +149,7 @@ public class SerialBuffer e.printStackTrace(); } } + if(position <= -1 ) return new byte[0]; byte[] dst = Arrays.copyOfRange(buffer, 0, position); if(debugging) UsbSerialDebugger.printLogGet(dst, true); diff --git a/usbserial/src/main/java/com/felhr/usbserial/UsbSerialDevice.java b/usbserial/src/main/java/com/felhr/usbserial/UsbSerialDevice.java index 1b37a88..95b7594 100644 --- a/usbserial/src/main/java/com/felhr/usbserial/UsbSerialDevice.java +++ b/usbserial/src/main/java/com/felhr/usbserial/UsbSerialDevice.java @@ -304,7 +304,8 @@ public abstract class UsbSerialDevice implements UsbSerialInterface while(working.get()) { byte[] data = serialBuffer.getWriteBuffer(); - connection.bulkTransfer(outEndpoint, data, data.length, USB_TIMEOUT); + if(data.length > 0) + connection.bulkTransfer(outEndpoint, data, data.length, USB_TIMEOUT); } } diff --git a/usbserial/src/main/java/com/felhr/usbserial/UsbSpiDevice.java b/usbserial/src/main/java/com/felhr/usbserial/UsbSpiDevice.java index c9c8425..b831aa8 100644 --- a/usbserial/src/main/java/com/felhr/usbserial/UsbSpiDevice.java +++ b/usbserial/src/main/java/com/felhr/usbserial/UsbSpiDevice.java @@ -99,7 +99,8 @@ public abstract class UsbSpiDevice implements UsbSpiInterface while(working.get()) { byte[] data = serialBuffer.getWriteBuffer(); - connection.bulkTransfer(outEndpoint, data, data.length, USB_TIMEOUT); + if(data.length > 0) + connection.bulkTransfer(outEndpoint, data, data.length, USB_TIMEOUT); } }