From 38e5715cd63312e60c2d2bca459870122e61fb51 Mon Sep 17 00:00:00 2001 From: Kenneth van Ewijk Date: Mon, 20 Oct 2014 19:00:42 +0200 Subject: [PATCH] FIXED ALL THE FUCKING THINGS Ik haat school... eeuwen met de code bezig, blijven maar foute data uit komen... blijkt alle data in de database zo'n beetje corrupt te zijn als je 3 maanden of meer terugkijkt... wat een onzin zeg. --- Calculator.java | 21 ++++++--------------- GUIboard.java | 21 +++++++++++++++++++-- Periode.java | 12 ++++++------ StatisticsCalculator.java | 2 ++ Weerstation.java | 14 ++++++++++---- WeerstationConnector.java | 1 - 6 files changed, 43 insertions(+), 28 deletions(-) diff --git a/Calculator.java b/Calculator.java index c7eaeaa..8cdb1f9 100644 --- a/Calculator.java +++ b/Calculator.java @@ -200,24 +200,15 @@ public class Calculator { public static Periode timeStampToPeriode(Timestamp timeStamp1, Timestamp timeStamp2) { Periode periode = new Periode(); - Calendar cal = Calendar.getInstance(); int year,month,day; - - //Zet de eerste TimeStamp om - cal.setTime(new Date(timeStamp1.getTime())); - year = cal.get(Calendar.YEAR); - month = cal.get(Calendar.MONTH+1); - day = cal.get(Calendar.DAY_OF_MONTH); - periode.setBeginPeriode(year,month, day); + String[] ts1 = timeStamp1.toString().split(" "); + ts1 = ts1[0].split("-"); + periode.setBeginPeriode(Integer.valueOf(ts1[0]), Integer.valueOf(ts1[1]), Integer.valueOf(ts1[2])); - //Zet de tweede TimeStamp om - cal.setTime(new Date(timeStamp2.getTime())); - year = cal.get(Calendar.YEAR); - month = cal.get(Calendar.MONTH+1); - day = cal.get(Calendar.DAY_OF_MONTH); - - periode.setEindePeriode(year,month, day); + String[] ts2 = timeStamp2.toString().split(" "); + ts2 = ts2[0].split("-"); + periode.setEindePeriode(Integer.valueOf(ts2[0]), Integer.valueOf(ts2[1]), Integer.valueOf(ts2[2])); return periode; } diff --git a/GUIboard.java b/GUIboard.java index fa6df1c..e278515 100644 --- a/GUIboard.java +++ b/GUIboard.java @@ -172,6 +172,8 @@ public class GUIboard { clearBottom(); msList = normalizeData(msList, (max-min)/32); + max = StatisticsCalculator.max(msList)+1; + min = StatisticsCalculator.min(msList)-1 > 0 ? StatisticsCalculator.min(msList)-1 : StatisticsCalculator.min(msList); createAxis(min,max); @@ -214,7 +216,22 @@ public class GUIboard { private static ArrayList normalizeData(ArrayList data2 , double margin){ - ArrayList data = new ArrayList(data2); + ArrayList data = new ArrayList(); + + int deler = data2.size() / 256; //Delen door het aantal punten dat je over wil houden. + double avg=0; + + for(int q=0;q 0 && prevVal > 0 && nextVal > 0 && nextNextVal > 0){ + if(prevPrevVal != 0 && prevVal != 0 && nextVal != 0 && nextNextVal != 0){ avrVal = (prevPrevVal + prevVal + nextVal + nextNextVal) / 4; if((data.get(i) - avrVal) >= margin){ setVal = avrVal; diff --git a/Periode.java b/Periode.java index 64c8226..180d0cf 100644 --- a/Periode.java +++ b/Periode.java @@ -1,4 +1,4 @@ -package weerstation; + import java.util.GregorianCalendar; import java.util.Calendar; @@ -24,8 +24,8 @@ public class Periode public Periode(Calendar cal1, Calendar cal2){ beginPeriode = new GregorianCalendar(); eindePeriode = new GregorianCalendar(); - setBeginPeriode(cal2.get(Calendar.YEAR), cal2.get(Calendar.MONTH), cal2.get(Calendar.DAY_OF_MONTH)); - setEindePeriode(cal1.get(Calendar.YEAR), cal1.get(Calendar.MONTH), cal1.get(Calendar.DAY_OF_MONTH)); + setBeginPeriode(cal2.get(Calendar.YEAR), cal2.get(Calendar.MONTH), cal2.get(Calendar.DATE)); + setEindePeriode(cal1.get(Calendar.YEAR), cal1.get(Calendar.MONTH), cal1.get(Calendar.DATE)); } public GregorianCalendar getBeginPeriode() @@ -50,9 +50,9 @@ public class Periode public String toString() { - String returnString = beginPeriode.get(Calendar.YEAR) + "-" + (beginPeriode.get(Calendar.MONTH)+1) + "-" + beginPeriode.get(Calendar.DATE); - returnString += " | "; - returnString += eindePeriode.get(Calendar.YEAR) + "-" + (eindePeriode.get(Calendar.MONTH)+1) + "-" + eindePeriode.get(Calendar.DATE); + String returnString = beginPeriode.get(Calendar.DATE) + "-" + (beginPeriode.get(Calendar.MONTH)+1) + "-" + beginPeriode.get(Calendar.YEAR); + returnString += "|"; + returnString += eindePeriode.get(Calendar.DATE) + "-" + (eindePeriode.get(Calendar.MONTH)+1) + "-" + eindePeriode.get(Calendar.YEAR); return returnString; } } diff --git a/StatisticsCalculator.java b/StatisticsCalculator.java index a4e3ee0..5e65b7d 100644 --- a/StatisticsCalculator.java +++ b/StatisticsCalculator.java @@ -205,7 +205,9 @@ public class StatisticsCalculator { //Het terugsturen van de gevonden indexen. Je doet ze keer 1440 omdat je bij het berekenen van //de temperatuur per dag je het in stukken van 1440 samenvoegde. index[0] = index1*1440; + if(index2<0){index2=0;} index[1] = index2*1440; + return index; } diff --git a/Weerstation.java b/Weerstation.java index d6aea67..ae951fc 100644 --- a/Weerstation.java +++ b/Weerstation.java @@ -1,4 +1,4 @@ -package weerstation1; + import java.util.ArrayList; import java.util.List; @@ -59,11 +59,17 @@ public class Weerstation { periods.add(new Periode(now, calPeriod)); calPeriod = Calendar.getInstance(); - System.out.println(periods.get(0)); + System.out.println("Day: " + periods.get(0)); + System.out.println("Week: " + periods.get(1)); + System.out.println("Month: " + periods.get(2)); + System.out.println("2 Months: " + periods.get(3)); + System.out.println("3 Months: " + periods.get(4)); + System.out.println("6 Months: " + periods.get(5)); + System.out.println("Year: " + periods.get(6)); weerstation1 = new WeerstationConnector(); meting1 = weerstation1.getMostRecentMeasurement(); - meting2 = weerstation1.getAllMeasurementsBetween(periods.get(0).getBeginPeriode(), periods.get(0).getEindePeriode()); + meting2 = weerstation1.getAllMeasurementsBetween(periods.get(3).getBeginPeriode(), periods.get(3).getEindePeriode()); currentGraph = false; startupState = false; currentScreen = 0; @@ -74,7 +80,6 @@ public class Weerstation { //All the different screen classes final List lstScreens = new ArrayList(); - //lstScreens.add(new LangsteZomerPeriode(meting1, meting2)); lstScreens.add(new MaximaleRegenPeriode(meting1, meting2)); lstScreens.add(new WindDirection(meting1, meting2)); lstScreens.add(new OutsideTemp(meting1, meting2)); @@ -90,6 +95,7 @@ public class Weerstation { lstScreens.add(new Zonsterkte(meting1, meting2)); lstScreens.add(new DewPoint(meting1, meting2)); lstScreens.add(new Sun(meting1)); + lstScreens.add(new LangsteZomerPeriode(meting1, meting2)); stopAnimatie(); while(startup) diff --git a/WeerstationConnector.java b/WeerstationConnector.java index 22e5242..6bd3df0 100644 --- a/WeerstationConnector.java +++ b/WeerstationConnector.java @@ -33,7 +33,6 @@ public class WeerstationConnector + password; Class.forName("com.mysql.jdbc.Driver").newInstance (); myConn = DriverManager.getConnection(url); - System.out.println("Database connection established"); } catch( SQLException ex) {