Bladeren bron

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.
Kenneth van Ewijk 11 jaren geleden
bovenliggende
commit
38e5715cd6
6 gewijzigde bestanden met toevoegingen van 43 en 28 verwijderingen
  1. 6 15
      Calculator.java
  2. 19 2
      GUIboard.java
  3. 6 6
      Periode.java
  4. 2 0
      StatisticsCalculator.java
  5. 10 4
      Weerstation.java
  6. 0 1
      WeerstationConnector.java

+ 6 - 15
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;
     }

+ 19 - 2
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<Double> normalizeData(ArrayList<Double> data2 , double margin){
         
-        ArrayList<Double> data = new ArrayList<Double>(data2);
+        ArrayList<Double> data = new ArrayList<Double>();
+        
+        int deler = data2.size() / 256; //Delen door het aantal punten dat je over wil houden.
+        double avg=0;
+        
+        for(int q=0;q<data2.size(); q++)
+        {
+            if(q%deler==0)
+            {
+                avg /= deler;
+                data.add(avg);
+                avg=0;
+            }
+            avg += data2.get(q);
+        }
+        
         
         double prevPrevVal = 0.0, prevVal = 0.0, nextVal = 0.0, nextNextVal = 0.0, avrVal = 0.0, setVal = 0.0;
         
@@ -225,7 +242,7 @@ public class GUIboard {
             if(i + 2 < data.size()){
                 nextNextVal = data.get(i+2);
             }
-            if(prevPrevVal > 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;

+ 6 - 6
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;
     }
 }

+ 2 - 0
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;
     }
     

+ 10 - 4
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<Grootheid> lstScreens = new ArrayList<Grootheid>();
-        //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)

+ 0 - 1
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)
         {