diff --git a/app/src/processing/app/SerialPlotter.java b/app/src/processing/app/SerialPlotter.java index 4cfb9da49..ffe15ae44 100644 --- a/app/src/processing/app/SerialPlotter.java +++ b/app/src/processing/app/SerialPlotter.java @@ -87,8 +87,10 @@ public class SerialPlotter extends AbstractMonitor { minY = Double.POSITIVE_INFINITY; maxY = Double.NEGATIVE_INFINITY; for(Graph g : graphs) { - minY = Math.min(g.buffer.min(), minY); - maxY = Math.max(g.buffer.max(), maxY); + if (!g.buffer.isEmpty()) { + minY = Math.min(g.buffer.min(), minY); + maxY = Math.max(g.buffer.max(), maxY); + } } final double MIN_DELTA = 10.0; @@ -239,7 +241,7 @@ public class SerialPlotter extends AbstractMonitor { for(int i = 0; i < parts.length; ++i) { try { double value = Double.valueOf(parts[i]); - if(i >= graphs.size()) { + if(validParts >= graphs.size()) { graphs.add(new Graph(validParts)); } graphs.get(validParts).buffer.add(value); diff --git a/build/shared/revisions.txt b/build/shared/revisions.txt index 1cc2b9eb6..78b044898 100644 --- a/build/shared/revisions.txt +++ b/build/shared/revisions.txt @@ -1,6 +1,8 @@ ARDUINO 1.6.13 [ide] +* Improved robustness of Serial Plotter while dealing with malformed or partial data. Thanks @xloem. +* Fixed regression on command line upload. [core]