Quellcode durchsuchen

Added a lot of comments

Kenneth van Ewijk vor 11 Jahren
Ursprung
Commit
8d790ff754
10 geänderte Dateien mit 305 neuen und 41 gelöschten Zeilen
  1. 13 2
      Calculator.java
  2. 71 5
      GUIboard.java
  3. 7 1
      Grootheid.java
  4. 9 14
      IO.java
  5. 9 2
      Main.java
  6. 25 8
      Measurement.java
  7. 77 3
      Periode.java
  8. 61 0
      StatisticsCalculator.java
  9. 26 5
      Weerstation.java
  10. 7 1
      WeerstationConnector.java

+ 13 - 2
Calculator.java

@@ -1,8 +1,14 @@
-package weerstation1;
+ 
 import java.sql.Timestamp;
 import java.util.Calendar;
 import java.util.Date;
 
+
+/**
+ * Kan alle waarden uit de database omrekenen naar de Nederlands gangbare eenheden
+ * 
+ * @author Projectgroep B5
+ */
 public class Calculator {
     
     // Luchtdruk in hPa
@@ -146,6 +152,8 @@ public class Calculator {
     public static String sunSet(short mval){
         return sun(mval);
     }
+    
+    //Sunrise en Sunset tijden
     private static String sun(short sunRaw){
         String tijd = "";
         for(int i = 0; i <= 3; i++){
@@ -158,6 +166,7 @@ public class Calculator {
         return tijd;
     }
     
+    //Zonsterkte
     public static double solarRad(short mval){
         double zonSterkte = mval;
         return zonSterkte;
@@ -175,7 +184,7 @@ public class Calculator {
     }
     
     //Heatindex in celcius
-    //Tom met Malek
+    //Tom en Malek
     public static double heatIndex(double RH, double T)
     {
         double HI = -42.379 + 2.04901523*T + 10.14333127*RH - .22475541*T*RH - .00683783*T*T - .05481717*RH*RH + .00122874*T*T*RH + .00085282*T*RH*RH - .00000199*T*T*RH*RH;
@@ -192,6 +201,8 @@ public class Calculator {
        return dauwpunt;
     }
     
+    //Wolkhoogte in meters
+    //Malek
     public static double cloudHeight(double temp, short luchtVochtigheid ){
         double wolkhoogte = 125 * (temp-dewPoint(temp, luchtVochtigheid));
         return wolkhoogte; 

+ 71 - 5
GUIboard.java

@@ -1,15 +1,27 @@
-package weerstation1;
- 
 
 import java.util.ArrayList;
 
+/**
+ * Biedt een makkelijke interface om data weer te geven op het GUIBoard
+ * 
+ * @author Kenneth van Ewijk
+ * @author Janco Kock
+ */
 public class GUIboard {
     
+    /**
+     * Initaliseert de verbinding met het GUIBoard
+     */
     public static void init()
     {
         IO.init();
     }
 
+    /**
+     * Schrijft een getal naar de bovenste digits van het GUIBoard
+     * 
+     * @param number Het getal dat je wilt weergeven
+     */
     public static void writeUpperDigits(double number){
         clearTop();
         
@@ -29,6 +41,11 @@ public class GUIboard {
         writeDigits(number, 0x10, 0x18);
     }
     
+    /**
+     * Schrijft een getal naar de linker digits van het GUIBoard
+     * 
+     * @param number Het getal dat je wilt weergeven
+     */
     public static void writeLeftDigits(double number){
         clearLeft();
         
@@ -48,6 +65,11 @@ public class GUIboard {
         writeDigits(number, 0x20, 0x24);
     }
     
+    /**
+     * Schrijft een getal naar de rechter digits van het GUIBoard
+     * 
+     * @param number Het getal dat je wilt weergeven
+     */
     public static void writeRightDigits(double number){
         clearRight();
         
@@ -67,6 +89,13 @@ public class GUIboard {
         writeDigits(number, 0x30, 0x34);
     }
     
+    /**
+     * Private methode die het schrijven van een getal naar een digit uitvoert
+     * 
+     * @param number Het getal dat je wilt weergeven
+     * @param firstSegment De digit waar begonnen moet worden
+     * @param lastSegment De digit waar geëindigd moet worden
+     */
     private static void writeDigits(double number, int firstSegment, int lastSegment){
         number = Math.round(number * 100.0) / 100.0;
         //Segments
@@ -113,7 +142,13 @@ public class GUIboard {
         }
     }
 
-    
+    /**
+     * Schrijft een standaard pagina naar het matrix scherm van het GUIBoard
+     * 
+     * @param regel1 De tekst die je op de eerste regel wilt weergeven. Normaliter de naam
+     * @param regel2 De tekst die je op de tweede regel wilt weergeven.
+     * @param regel3 De tekst die je op de derde regel wilt weergeven. Wordt standaard gevolgd door de navigatie.
+     */
     public static boolean writePageToMatrix(String regel1, String regel2, String regel3)
     {
         clearBottom();
@@ -168,6 +203,13 @@ public class GUIboard {
         return true;
     }
     
+    /**
+     * Schrijft een grafiek naar het matrix display van het GUIBoard
+     * 
+     * @param msList ArrayList met alle meetwaarden die je wilt weergeven in grafiekvorm
+     * @param min De minimale waarden die bij msList hoort
+     * @param max De maximale waarden die bij msList hoort
+     */
     public static void writeGraphToMatrix(ArrayList<Double> msList, double min, double max)
     {
         clearBottom();
@@ -191,7 +233,12 @@ public class GUIboard {
         }
     }
     
-    //Private functions
+    /**
+     * Berekent of er assen moeten worden getekend. Zo ja, berekent ook waar en tekent ze vervolgens.
+     * 
+     * @param min De minimale waarden die zal worden weergegeven
+     * @param max De maximale waarden die zal worden weergegeven
+     */
     public static void createAxis(double min, double max)
     {        
         int x,y;
@@ -215,6 +262,14 @@ public class GUIboard {
         }
     }
     
+    /**
+     * Probeert de data te controleren en aan te passen om een vloeierende grafiek te kunnen tekenen
+     * 
+     * @param data2 ArrayList met alle meetwaarden die je wilt weergeven in grafiekvorm
+     * @param margin Waarde die aangeeft wanneer een waarde teveel afwijkt van het berekende gemiddelde
+     * 
+     * @return ArrayList met genormaliseerde data
+     */
     private static ArrayList<Double> normalizeData(ArrayList<Double> data2 , double margin){
         
         ArrayList<Double> data = new ArrayList<Double>();
@@ -265,7 +320,9 @@ public class GUIboard {
         return data;
     }
     
-    
+    /**
+     * Wis de bovenste digits
+     */
     public  static void clearTop()
     {
          IO.writeShort(0x10, 0x100 | 0x0);
@@ -275,6 +332,9 @@ public class GUIboard {
          IO.writeShort(0x18, 0x100 | 0x0);
     }
     
+    /**
+     * Wis de linker digits
+     */
     public  static void clearLeft()
     {
         IO.writeShort(0x24, 0x100 | 0x0);
@@ -282,6 +342,9 @@ public class GUIboard {
         IO.writeShort(0x20, 0x100 | 0x0);
     }
     
+    /**
+     * Wis de rechter digits
+     */
     public  static void clearRight()
     {
         IO.writeShort(0x34, 0x100 | 0x0);
@@ -289,6 +352,9 @@ public class GUIboard {
         IO.writeShort(0x30, 0x100 | 0x0);
     }
     
+    /**
+     * Wis het matrix display
+     */
     public static void clearBottom()
     {
         IO.writeShort(0x40, 0xFE);

+ 7 - 1
Grootheid.java

@@ -1,6 +1,12 @@
-package weerstation1;
+ 
 import java.util.ArrayList;
 
+/**
+ * Dient als Parent voor alle grootheden en zorgt voor een constante interface
+ * 
+ * @author Kenneth van Ewijk
+ * @author Janco Kock
+ */
 public class Grootheid
 {
     // instance variables - replace the example below with your own

+ 9 - 14
IO.java

@@ -1,20 +1,15 @@
-package weerstation1;
- 
-//
-// Port IO emulator class. All read/writes are send over TCP/IP to the host
-// using a dedicated protocol on port 81.
-// Use IO.init(host, port) to modify behaviour
-// by Wim Verhoef
-// Avans Hogeschool 's-Hertogenbosch
-//
-// @author  Wim Verhoef
-// @version 1.1, December 6 2004
-//
 
 import java.io.*;
 import java.net.*;
 
-public class IO {
+/**
+ * Een interface om te kunnen praten met het GUIboard
+ * 
+ * @author Wim Verhoef
+ * @version 1.1
+ */
+public class IO 
+{
   public static String host = "localhost";
   public static int port = 81;
 
@@ -84,7 +79,7 @@ public class IO {
     }
   }
 
-//============================= below are the support routines =====================
+  //============================= below are the support routines =====================
 
   private static Socket client = null;
   private static DataOutputStream output = null;

+ 9 - 2
Main.java

@@ -1,7 +1,14 @@
-package weerstation1;
  
-
+ 
+/**
+ * De main die gebruikt wordt om makkelijk een instantie te maken van een weerstation
+ */
 public class Main {
+    /**
+     * Maakt een nieuw weerstation aan
+     * 
+     * @param args Wordt niet gebruikt
+     */
 	public static void main(String[] args){
 		Weerstation weerstation = new Weerstation();
 	}	

+ 25 - 8
Measurement.java

@@ -1,8 +1,13 @@
-package weerstation1;
+ 
  
 import java.sql.Timestamp;
 import java.math.BigDecimal;
 
+/**
+ * Klasse die per instantie alle meetgegevens van één meetpunt opslaat.
+ * 
+ * @author Kenneth van Ewijk
+ */
 public class Measurement
 {
 
@@ -123,6 +128,11 @@ public class Measurement
     //wolkHoogte
     public double getCloudHeight () { return round(Calculator.cloudHeight(outsideTemp, outsideHum),1); };
 
+    /**
+     * Zet alle data in een Measurement om naar een string
+     * 
+     * @return Alle waarden in een string
+     */
     public String toString()
     {
         String s = "stationId = " + stationId
@@ -145,12 +155,19 @@ public class Measurement
         return s; 
     } 
     
-    //afronder
- public double round(double unrounded, int precision)
- {
-     BigDecimal bd = new BigDecimal(unrounded);
-     BigDecimal rounded = bd.setScale(precision, BigDecimal.ROUND_HALF_UP);
-     return rounded.doubleValue();
- }  
+    /**
+     * Rond een waarde af op een aangegeven aantal getallen achter de komma
+     * 
+     * @param unrounded Het getal dat afgerond moet worden
+     * @param precision Het aantal getallen dat achter de komma moet blijven staan
+     * 
+     * @return Het afgeronde getal
+     */
+    private double round(double unrounded, int precision)
+    {
+        BigDecimal bd = new BigDecimal(unrounded);
+        BigDecimal rounded = bd.setScale(precision, BigDecimal.ROUND_HALF_UP);
+        return rounded.doubleValue();
+    }  
     
 }

+ 77 - 3
Periode.java

@@ -1,14 +1,29 @@
-package weerstation1;
+ 
  
 import java.util.GregorianCalendar;
 import java.util.Calendar;
 
+/**
+ * Klasse die een makkelijke manier biedt om twee calender datums op te slaan die samen een periode vormen.
+ * 
+ * @author Daniël Compagner
+ * @author Tim van Lieshout
+ * @author Malek Sediqi
+ * 
+ * @version 2.0
+ */
 public class Periode
 {
     private GregorianCalendar beginPeriode;
     private GregorianCalendar eindePeriode;
     private String name;
     
+    
+    /**
+     * Lege constructor. Alleen een naam voor de periode wordt gegeven.
+     * 
+     * @param name Naam van de periode
+     */
     public Periode(String name)
     {
         beginPeriode = new GregorianCalendar();
@@ -16,6 +31,18 @@ public class Periode
         this.name = name;
     }
     
+    /**
+     * Volledige constructor. Naast de naam wordt ook al de begin en einddatum van de periode gegeven.
+     * De datums worden meegegeven door los het jaar, de maand en de datum mee te geven.
+     * 
+     * @param jaar Jaar van begindatum
+     * @param maand Maand van begindatum
+     * @param dag Dag van begindatum
+     * @param eindjaar Jaar van einddatum
+     * @param eindmaand Maand van einddatum
+     * @param  einddag Dag van einddatum
+     * @param name Naam van de periode
+     */
     public Periode(int jaar, int maand, int dag, int eindjaar, int eindmaand, int einddag, String name)
     {
         beginPeriode = new GregorianCalendar();
@@ -25,47 +52,94 @@ public class Periode
         this.name = name;
     }
     
+    /**
+     * Volledige constructor. Naast de naam wordt ook al de begin en einddatum van de periode gegeven.
+     * De datums worden meegegeven door een calender element mee te geven.
+     * 
+     * @param cal1 Calender met begindatum
+     * @param cal2 Calender met einddatum
+     * @param name Naam van de periode
+     */
     public Periode(Calendar cal1, Calendar cal2, String name){
-    	beginPeriode = new GregorianCalendar();
+        beginPeriode = new GregorianCalendar();
         eindePeriode = new GregorianCalendar();
         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));
         this.name = name;
     }
     
+    /**
+     * Geeft een calender terug die de datum van het begin van de periode bevat
+     * 
+     * @return Calender met datum beginperiode
+     */
     public GregorianCalendar getBeginPeriode()
     {
         return beginPeriode;
     }
     
+    /**
+     * Geeft een calender terug die de datum van het einde van de periode bevat
+     * 
+     * @return Calender met datum eindeperiode
+     */
     public GregorianCalendar getEindePeriode()
     {
         return eindePeriode;
     }
     
+    /**
+     * Stel los de begindatum in
+     * 
+     * @param jaar Jaar van datum
+     * @param maand Maand van datum
+     * @param dag Dag van datum
+     */
     public void setBeginPeriode(int jaar, int maand, int dag)
     {
         beginPeriode.set(jaar, maand, dag);
     }
     
+    /**
+     * Stel los de einddatum in
+     * 
+     * @param jaar Jaar van datum
+     * @param maand Maand van datum
+     * @param dag Dag van datum
+     */
     public void setEindePeriode(int jaar, int maand, int dag)
     {
         eindePeriode.set(jaar, maand, dag);
     }
     
+    /**
+     * Stel los de naam in
+     * 
+     * @param name Naam van de periode
+     */
     public void setName(String name)
     {
         this.name = name;
     }
     
+    /**
+     * Geeft de naam van de periode terug
+     * 
+     * @return String met naam van de periode
+     */
     public String getName()
     {
         return name;
     }
     
+    /**
+     * Zet de data die in de periode is opgeslagen om naar een string.
+     * 
+     * @return String met de datums die in de periode zijn opgeslagen
+     */
     public String toString()
     {
-    	String returnString = beginPeriode.get(Calendar.DATE) + "-" + (beginPeriode.get(Calendar.MONTH)+1) + "-" + beginPeriode.get(Calendar.YEAR);
+        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;

+ 61 - 0
StatisticsCalculator.java

@@ -5,8 +5,20 @@ import java.util.Collections;
 import java.util.Map;
 import java.util.HashMap;
 
+/**
+ * Berekent allerlei statistische waarden voor de gegeven data
+ * 
+ * @author Projectgroep B5
+ */
 public class StatisticsCalculator {
     
+    /**
+     * Berekent de maximale waarde
+     * 
+     * @param array Een ArrayList met alle waarden
+     * 
+     * @return De gevonden maximale waarde
+     */
     public static double max(ArrayList<Double> array)
     {
         double max = 0;
@@ -20,6 +32,13 @@ public class StatisticsCalculator {
         return max;
     }
     
+    /**
+     * Berekent de minimale waarde
+     * 
+     * @param array Een ArrayList met alle waarden
+     * 
+     * @return De gevonden minimale waarde
+     */
     public static double min(ArrayList<Double> array)
     {
         double min = array.get(0);
@@ -33,6 +52,13 @@ public class StatisticsCalculator {
         return min;
     }
     
+    /**
+     * Berekent de gemiddelde waarde
+     * 
+     * @param array Een ArrayList met alle waarden
+     * 
+     * @return De gevonden gemiddelde waarde
+     */
     public static double avg(ArrayList<Double> array)
     {
         double avg = 0;
@@ -44,6 +70,13 @@ public class StatisticsCalculator {
         return avg;
     }
     
+    /**
+     * Berekent de mediaan
+     * 
+     * @param array Een ArrayList met alle waarden
+     * 
+     * @return De gevonden mediaan
+     */
       public static double median(ArrayList<Double> array2){
         ArrayList<Double> array = new ArrayList<Double>();
         
@@ -65,6 +98,13 @@ public class StatisticsCalculator {
         return median;
     }
     
+    /**
+     * Berekent de modus
+     * 
+     * @param array Een ArrayList met alle waarden
+     * 
+     * @return De gevonden modus
+     */
     public static double modus(ArrayList<Double> array){
         Map<Double,Integer> map = new HashMap<Double,Integer>();
         for(double number : array)
@@ -89,6 +129,13 @@ public class StatisticsCalculator {
         return maxKey;
     }   
         
+    /**
+     * Berekent de afwijking
+     * 
+     * @param array Een ArrayList met alle waarden
+     * 
+     * @return De gevonden afwijking
+     */
     public static double afwijking(ArrayList<Double> array){
         double mediaan = StatisticsCalculator.median(array);
         double afwijking = 0; 
@@ -226,6 +273,13 @@ public class StatisticsCalculator {
         return index;
     }
     
+    /**
+     * Berekent de totale regenval
+     * 
+     * @param array Een ArrayList met alle waarden
+     * 
+     * @return De gevonden totale regenval
+     */
     public static short maximaleRegenPeriode(ArrayList<Double> array)
     {
         short regen = 0;
@@ -254,6 +308,13 @@ public class StatisticsCalculator {
         return totaleRegen;
     }
     
+    /**
+     * Berekent de langste periode waarin het boven 25 graden celcius is geweest
+     * 
+     * @param array Een ArrayList met alle waarden
+     * 
+     * @return De posities van de begin en eindtijd in de array van de periode
+     */
     public static int[] langsteZomersePeriode(ArrayList<Double> array)
     {
       

+ 26 - 5
Weerstation.java

@@ -1,6 +1,3 @@
- 
- 
- 
 
 import java.util.ArrayList;
 import java.util.Calendar;
@@ -9,7 +6,11 @@ import java.util.List;
 import java.util.Timer;
 import java.util.TimerTask;
 
-
+/**
+ *  De main klasse die het hele programma aanstuurt
+ *  
+ *  @author Projectgroep B5
+ */
 public class Weerstation {
     WeerstationConnector weerstation1;
     
@@ -27,6 +28,9 @@ public class Weerstation {
     boolean startupState;
     boolean load;
     
+    /**
+     * Constructor voor weerstation
+     */
     public Weerstation(){
         now = Calendar.getInstance();
         calPeriod = Calendar.getInstance();
@@ -239,6 +243,11 @@ public class Weerstation {
         
     }
     
+    /**
+     * Start de animatie die speelt tijdens het opstarten en laden van het weerstation
+     * 
+     * @param starter De timer die de animatie laat lopen
+     */
     public void startStartupAnimatie()
     {
         starter.scheduleAtFixedRate(new TimerTask() {
@@ -299,12 +308,18 @@ public class Weerstation {
         }, 0, (128 + 1)*8);
     }
     
+    /**
+     * Stopt de animatie die speelt tijdens het opstarten en laden van het weerstation
+     */
     public void stopStartupAnimatie()
     {
         starter.cancel();
     }
     
-        public void startLoadAnimatie()
+    /**
+     * Start de animatie die speelt tijdens het laden op de achtergrond van het weerstation
+     */
+    public void startLoadAnimatie()
     {
         animator.scheduleAtFixedRate(new TimerTask() {
             public void run() {
@@ -325,11 +340,17 @@ public class Weerstation {
         }, 0, (128 + 1)*8);
     }
     
+    /**
+     * Stopt de animatie die speelt tijdens het laden op de achtergrond van het weerstation
+     */
     public void stopLoadAnimatie()
     {
         animator.cancel();
     }
     
+    /**
+     * Controleert de binnenkomende data op corrupte data en verwijderd deze
+     */
     public void checkData(){
         Iterator<Measurement> it = meting2.iterator();
         while( it.hasNext() )

+ 7 - 1
WeerstationConnector.java

@@ -1,4 +1,4 @@
-package weerstation1;
+ 
  
 import java.sql.Connection;
 import java.sql.DriverManager;
@@ -10,6 +10,12 @@ import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.GregorianCalendar;
 
+/**
+ * Connect met de database
+ * 
+ * @author Diederich Kroeske
+ * @version 2
+ */
 public class WeerstationConnector
 {