diff --git a/GUIboard.java b/GUIboard.java index bb22afb..796e73d 100644 --- a/GUIboard.java +++ b/GUIboard.java @@ -159,6 +159,9 @@ public class GUIboard { public static void writeGraphToMatrix(ArrayList msList, double min, double max) { clearBottom(); + + msList = normalizeData(msList, (max-min)/32); + createAxis(min,max); int x,y; @@ -166,7 +169,7 @@ public class GUIboard { for(double i=0;i normalizeData(ArrayList data2 , double margin){ + + ArrayList data = new ArrayList(data2); + + double prevPrevVal = 0.0, prevVal = 0.0, nextVal = 0.0, nextNextVal = 0.0, avrVal = 0.0, setVal = 0.0; + + for(int i = 0; i < data.size(); i ++){ + if(i + 1 < data.size()){ + nextVal = data.get(i+1); + } + if(i + 2 < data.size()){ + nextNextVal = data.get(i+2); + } + if(prevPrevVal > 0 && prevVal > 0 && nextVal > 0 && nextNextVal > 0){ + avrVal = (prevPrevVal + prevVal + nextVal + nextNextVal) / 4; + if((data.get(i) - avrVal) >= margin){ + setVal = avrVal; + }else{ + setVal = data.get(i); + } + }else{ + setVal = data.get(i); + } + + data.set(i, setVal); + prevVal = data.get(i); + + if(i - 1 >= 0){ + prevPrevVal = data.get(i-1); + } + } + + return data; + } + + public static void clearTop() { IO.writeShort(0x10, 0x100 | 0x0);