cantact-app
cantact-app copied to clipboard
Do not pass empty frameBytes
I have done an other variant of this fix by adding a check on frame f before to call DeviceManager.giveFrame(f); and also check frameBytes.size() > 0 to avoid some exception in some cases See my proposal for your updated patch:
@@ -175,8 +175,20 @@ public class CantactDevice {
for (byte b : bs) {
if (b == '\r') {
// end of frame data received
- CanFrame f = slcanToFrame(frameBytes.toArray(new Byte[frameBytes.size()]));
- DeviceManager.giveFrame(f);
+ CanFrame f;
+ if(frameBytes.size() > 0)
+ {
+ f = slcanToFrame(frameBytes.toArray(new Byte[frameBytes.size()]));
+ if(f != null)
+ DeviceManager.giveFrame(f);
+ }
+ if(frameBytes.size() > 4)
+ {
+ // end of frame data received
+ f = slcanToFrame(frameBytes.toArray(new Byte[frameBytes.size()]));
+ if(f != null)
+ DeviceManager.giveFrame(f);
+ }
frameBytes.clear();
} else {
// byte received, add to buffer