diff --git a/AvgWindspeed.java b/AvgWindspeed.java index bd426bc..690a985 100644 --- a/AvgWindspeed.java +++ b/AvgWindspeed.java @@ -1,94 +1,32 @@ -package weerstation; - import java.util.ArrayList; -public class AvgWindspeed { - - //fields - private double currentWindSpeed; - private double maxWindSpeed; - private double minWindSpeed; - private double avgWindSpeed; - - //constructor - public AvgWindspeed(Measurement measurement1, ArrayList measurement2){ - updateRecent(measurement1); - update24Hour(measurement2); - } - - //getters & setters - public double getCurrentWindSpeed() { - return currentWindSpeed; - } - - public void setCurrentWindSpeed(double currentWindSpeed) { - if(currentWindSpeed >= 0){ - this.currentWindSpeed = currentWindSpeed; - } - } - - public double getMaxWindSpeed() { - return maxWindSpeed; - } - - public void setMaxWindSpeed(double maxWindSpeed) { - if(maxWindSpeed >= 0){ - this.maxWindSpeed = maxWindSpeed; - } - } - - public double getMinWindSpeed() { - return minWindSpeed; - } - - public void setMinWindSpeed(double minWindSpeed) { - if(minWindSpeed >= 0){ - this.minWindSpeed = minWindSpeed; - } - } - - public double getAvgWindSpeed() { - return avgWindSpeed; - } - - public void setAvgWindSpeed(double avgWindSpeed) { - this.avgWindSpeed = Math.round(avgWindSpeed*100)/100; - } - - //Methods - private void calculateMaxMinAvgWindSpeed(ArrayList laatste24uur){ - int max = 0; - int min = 1000; - float avg = 0; - for(Measurement minut :laatste24uur){ - if(minut.getRawAvgWindSpeed() > max){ - max = minut.getRawAvgWindSpeed(); - } - if(minut.getRawAvgWindSpeed() < min){ - min = minut.getRawAvgWindSpeed(); - } - avg += minut.getRawWindSpeed(); - } - avg /= laatste24uur.size(); - - setAvgWindSpeed(Calculator.windSnelheid((short)avg)); - setMaxWindSpeed(Calculator.windSnelheid((short)max)); - setMinWindSpeed(Calculator.windSnelheid((short)min)); - } - - - public void updateRecent(Measurement measurement1){ - setCurrentWindSpeed(measurement1.getAvgWindSpeed()); - } - public void update24Hour(ArrayList measurement2){ - calculateMaxMinAvgWindSpeed(measurement2); - } - - public void display(){ - GUIboard.writeUpperDigits(getCurrentWindSpeed()); - GUIboard.writeLeftDigits(getMaxWindSpeed()); - GUIboard.writeRightDigits(getMinWindSpeed()); - GUIboard.writePageToMatrix("Windsnelheid in m/s", "Gemiddelde: " + avgWindSpeed, ""); - } - +public class AvgWindspeed extends Grootheid{ + + //constructor + public AvgWindspeed(Measurement measurement1, ArrayList measurement2){ + updateRecent(measurement1); + update24Hour(measurement2); + } + + public void updateRecent(Measurement measurement1){ + setCurrent(measurement1.getAvgWindSpeed()); + } + + public void update24Hour(ArrayList measurement2){ + + ArrayList list = new ArrayList(); + + for(Measurement ms : measurement2) + { + list.add(ms.getAvgWindSpeed()); + } + + calculateMaxMinAvg(list); + } + + public void display(){ + super.display(); + GUIboard.writePageToMatrix("Windsnelheid in m/s", "Gemiddelde: " + getAvg(), ""); + } + } diff --git a/BinnenTemperatuur.java b/BinnenTemperatuur.java deleted file mode 100644 index 7e29e66..0000000 --- a/BinnenTemperatuur.java +++ /dev/null @@ -1,81 +0,0 @@ - -import java.io.*; -import java.net.*; -import java.util.ArrayList; - -public class BinnenTemperatuur -{ - private Measurement laatsteMeting; - Measurement meting; - ArrayList laatste24uur; //ArrayList om de Temperatuur in op te slaan - double temp; - double max; - double min; - double avg; - - public BinnenTemperatuur(Measurement measurement1, ArrayList measurement2) - { - updateRecent(measurement1); - update24Hour(measurement2); - } - public double binnenTemperatuur() - { - meting.getInsideTemp(); - return meting.getInsideTemp(); - } - public double getMaximale() - { - short maximale = 0; // Maximale is iets boven de 100 - for(int i=0; i < laatste24uur.size();i++) - { - if(laatste24uur.get(i).getRawInsideTemp() > maximale) - { - maximale = laatste24uur.get(i).getRawInsideTemp(); - } - } - return(Calculator.temperatuur((maximale))); - } - public double getMinimale() - { - short minimale = 1000; // Minimale is iets onder de 100 - for(int i=0; i < laatste24uur.size();i++) - { - if(laatste24uur.get(i).getRawInsideTemp() < minimale) - { - minimale = laatste24uur.get(i).getRawInsideTemp(); // Defineert average - } - } - - return(Calculator.temperatuur((minimale))); // Geeft minimale - } - public double getAverage() - { - float average = 0; // Average is nieuw - for(int i=0; i < laatste24uur.size();i++) - { - average += laatste24uur.get(i).getRawInsideTemp(); // Defineert average - } - average /= laatste24uur.size(); // Berekening average - return (Math.round((Calculator.temperatuur(((short)average)))*1000))/1000 ; // Geeft average terug - } - - public void updateRecent(Measurement measurement1) - { - this.laatsteMeting = measurement1; - temp = laatsteMeting.getInsideTemp(); - } - public void update24Hour(ArrayList measurement2) - { - this.laatste24uur = measurement2; - min = getMinimale(); - max = getMaximale(); - avg = getAverage(); - } - public void display() - { - GUIboard.writeUpperDigits(temp); - GUIboard.writeLeftDigits(max); - GUIboard.writeRightDigits(min); - GUIboard.writePageToMatrix("Binnentemperatuur", "Gemiddelde: " + avg, ""); - } -} diff --git a/BuitenTemperatuur.java b/BuitenTemperatuur.java deleted file mode 100644 index 5313d43..0000000 --- a/BuitenTemperatuur.java +++ /dev/null @@ -1,86 +0,0 @@ - -import java.io.*; -import java.net.*; -import java.util.ArrayList; -/** -* Write a description of class OpdrachtDinges here. -* -* @author (your name) -* @version (a version number or a date) -*/ -public class BuitenTemperatuur -{ - private Measurement laatsteMeting; - Measurement meting; - ArrayList laatste24uur; //ArrayList om de Temperatuur in op te slaan - double temp; - double max; - double min; - double avg; - - public BuitenTemperatuur(Measurement measurement1, ArrayList measurement2) - { - updateRecent(measurement1); - update24Hour(measurement2); - } - public double buitenTemperatuur() - { - meting.getOutsideTemp(); - return meting.getOutsideTemp(); - } - public double getMaximale() - { - short maximale = 0; // Maximale is iets boven de 100 - for(int i=0; i < laatste24uur.size();i++) - { - if(laatste24uur.get(i).getRawOutsideTemp() > maximale) - { - maximale = laatste24uur.get(i).getRawOutsideTemp(); - } - } - return(Calculator.temperatuur((maximale))); - } - public double getMinimale() - { - short minimale = 1000; // Minimale is iets onder de 100 - for(int i=0; i < laatste24uur.size();i++) - { - if(laatste24uur.get(i).getRawOutsideTemp() < minimale) - { - minimale = laatste24uur.get(i).getRawOutsideTemp(); // Defineert average - } - } - - return(Calculator.temperatuur((minimale))); // Geeft minimale - } - public double getAverage() - { - float average = 0; // Average is nieuw - for(int i=0; i < laatste24uur.size();i++) - { - average += laatste24uur.get(i).getRawOutsideTemp(); // Defineert average - } - average /= laatste24uur.size(); // Berekening average - return (Math.round((Calculator.temperatuur(((short)average)))*1000))/1000 ; // Geeft average terug - } - - public void updateRecent(Measurement measurement1) - { - this.laatsteMeting = measurement1; - temp = laatsteMeting.getOutsideTemp(); - } - public void update24Hour(ArrayList measurement2) - { - this.laatste24uur = measurement2; - min = getMinimale(); - max = getMaximale(); - avg = getAverage(); - } - public void display() - { - GUIboard.writeUpperDigits(temp); - GUIboard.writeLeftDigits(max); - GUIboard.writeRightDigits(min); - GUIboard.writePageToMatrix("Buitentemperatuur", "Gemiddelde: " + avg, ""); - } -} diff --git a/CloudHeight.java b/CloudHeight.java index ce04512..08d1ad8 100644 --- a/CloudHeight.java +++ b/CloudHeight.java @@ -1,91 +1,32 @@ import java.util.ArrayList; -import java.net.*; -/** - * Write a description of class CloudHeight here. - * - * @author (your name) - * @version (a version number or a date) - */ -public class CloudHeight -{ - Measurement meting; - ArrayListlaatste24uur; - double cloud; - private Measurement laatsteMeting; - double maxHeight; - double minHeight; - double avgHeight; - - public CloudHeight(Measurement measurement1, ArrayListmeasurement2) - { - updateRecent(measurement1); - update24Hour(measurement2); - } - - public double Height() - { - meting.getCloudHeight(); - return meting.getCloudHeight(); - } - - public double maximaleHeight() - { - double max = 0; - for(int i = 0; i < laatste24uur.size(); i++) - { - if(laatste24uur.get(i).getCloudHeight() > max) - { - max = laatste24uur.get(i).getCloudHeight(); - } - } - return(max); - } - - public double minimaleHeight() - { - double min = 100000; - - for(int i = 0; i < laatste24uur.size(); i++) - { - if(laatste24uur.get(i).getCloudHeight() < min) - { - min = laatste24uur.get(i).getCloudHeight(); - } - } - System.out.println(min); - return(min); - } - - public double AverageHeight() - { - float average =0; - for(int i = 0; i < laatste24uur.size(); i++) - { - average += laatste24uur.get(i).getCloudHeight(); - } - average /=laatste24uur.size(); - return(average); - } - - public void updateRecent(Measurement measurement1){ - this.laatsteMeting = measurement1; - cloud = laatsteMeting.getCloudHeight(); - } - - public void update24Hour(ArrayList measurement2){ - this.laatste24uur = measurement2; - minHeight = minimaleHeight(); - maxHeight = maximaleHeight(); - avgHeight = AverageHeight(); - } - - public void display(){ - GUIboard.writeUpperDigits(cloud); - GUIboard.writePageToMatrix("Wolkhoogte", "Gemiddelde: " + avgHeight,""); - //GUIboard.writePageToMatrix( "min","min: " + minHeight, ""); - //GUIboard.writePageToMatrix( "max","max: " + maxHeight, ""); - System.out.println(maxHeight); - System.out.println(minHeight); - } -} +public class CloudHeight extends Grootheid{ + + //constructor + public CloudHeight(Measurement measurement1, ArrayList measurement2){ + updateRecent(measurement1); + update24Hour(measurement2); + } + + + public void updateRecent(Measurement measurement1){ + setCurrent(measurement1.getCloudHeight()); + } + public void update24Hour(ArrayList measurement2){ + + ArrayList list = new ArrayList(); + + for(Measurement ms : measurement2) + { + list.add(ms.getCloudHeight()); + } + + calculateMaxMinAvg(list); + } + + public void display(){ + super.display(); + GUIboard.writePageToMatrix("Wolkhoogte", "Gemiddelde: " + getAvg(), ""); + } + +} diff --git a/Grootheid.java b/Grootheid.java new file mode 100644 index 0000000..05b504f --- /dev/null +++ b/Grootheid.java @@ -0,0 +1,86 @@ +import java.util.ArrayList; + +public class Grootheid +{ + // instance variables - replace the example below with your own + public double avg; + public double max; + public double min; + public double current; + + //constructor + public Grootheid(){ + avg = 0; + max = 0; + min = 0; + current = 0; + } + + //getters & setters + public double getCurrent() { + return current; + } + + public void setCurrent(double current) { + this.current = current; + } + + public double getMax() { + return max; + } + + public void setMax(double max) { + this.max= max; + } + + public double getMin() { + return min; + } + + public void setMin(double min) { + this.min = min; + } + + public double getAvg() { + return avg; + } + + public void setAvg(double avg) { + this.avg = avg; + } + + //Methods + public void calculateMaxMinAvg(ArrayList laatste24uur){ + double tempMax = 0; + double tempAvg = 0; + double tempMin = laatste24uur.get(0); + + for(double ms : laatste24uur){ + if(ms > tempMax){ + tempMax = ms; + } + if(ms < tempMin){ + tempMin = ms; + } + tempAvg += ms; + } + tempAvg /= laatste24uur.size(); + + setMax(tempMax); + setMin(tempMin); + setAvg(tempAvg); + } + + public void updateRecent(Measurement measurement1){ + + } + public void update24Hour(ArrayList measurement2){ + + } + + public void display(){ + GUIboard.writeUpperDigits(getCurrent()); + GUIboard.writeLeftDigits(getMax()); + GUIboard.writeRightDigits(getMin()); + } +} diff --git a/InsideHum.java b/InsideHum.java index 140a1cb..d57bc78 100644 --- a/InsideHum.java +++ b/InsideHum.java @@ -1,86 +1,32 @@ -import java.net.*; import java.util.ArrayList; -/** - * Write a description of class OpdrachtDinges here. - * - * @author (your name) - * @version (a version number or a date) - */ -public class InsideHum -{ - Measurement meting; - ArrayList laatste24uur; - double vochtigheid; - private Measurement laatsteMeting; - double max; - double min; - double avg; + +public class InsideHum extends Grootheid{ - public InsideHum(Measurement measurement1, ArrayList measurement2) - { - updateRecent(measurement1); - update24Hour(measurement2); - } - - public double binnenLuchtvochtigheid() - { - meting.getInsideHum(); - return meting.getInsideHum(); - } - - public double berekenMaximale() - { - short maximale = 0; - for(int i=0; i < laatste24uur.size();i++) - { - if(laatste24uur.get(i).getRawInsideHum() > maximale) - { - maximale = laatste24uur.get(i).getRawInsideHum(); - } - } - return(maximale); - } - - public double berekenMinimale() - { - short minimale = 100; - for(int i=0; i < laatste24uur.size();i++) - { - if(laatste24uur.get(i).getRawInsideHum() < minimale) - { - minimale = laatste24uur.get(i).getRawInsideHum(); - } - } - return(minimale); - } - - public double berekenAverage() - { - int average = 0; - for(int i=0; i < laatste24uur.size(); i ++) - { - average += laatste24uur.get(i).getRawInsideHum(); - } - average /= laatste24uur.size(); - return(average); + //constructor + public InsideHum(Measurement measurement1, ArrayList measurement2){ + updateRecent(measurement1); + update24Hour(measurement2); } + public void updateRecent(Measurement measurement1){ - this.laatsteMeting = measurement1; - vochtigheid = laatsteMeting.getInsideHum(); - } - - public void update24Hour(ArrayList measurement2){ - this.laatste24uur = measurement2; - min = berekenMinimale(); - max = berekenMaximale(); - avg = berekenAverage(); - } - - public void display(){ - GUIboard.writeUpperDigits(vochtigheid); - GUIboard.writeLeftDigits(max); - GUIboard.writeRightDigits(min); - GUIboard.writePageToMatrix("Luchtv. Binnen", "Gemiddelde: " + avg, ""); - } + setCurrent(measurement1.getInsideHum()); + } + public void update24Hour(ArrayList measurement2){ + + ArrayList list = new ArrayList(); + + for(Measurement ms : measurement2) + { + list.add(ms.getInsideHum()); + } + + calculateMaxMinAvg(list); + } + + public void display(){ + super.display(); + GUIboard.writePageToMatrix("Luchtv. Binnen", "Gemiddelde: " + getAvg(), ""); + } + } diff --git a/InsideTemp.java b/InsideTemp.java new file mode 100644 index 0000000..85a1fd7 --- /dev/null +++ b/InsideTemp.java @@ -0,0 +1,32 @@ +import java.util.ArrayList; + +public class InsideTemp extends Grootheid{ + + //constructor + public InsideTemp(Measurement measurement1, ArrayList measurement2){ + updateRecent(measurement1); + update24Hour(measurement2); + } + + + public void updateRecent(Measurement measurement1){ + setCurrent(measurement1.getInsideTemp()); + } + public void update24Hour(ArrayList measurement2){ + + ArrayList list = new ArrayList(); + + for(Measurement ms : measurement2) + { + list.add(ms.getInsideTemp()); + } + + calculateMaxMinAvg(list); + } + + public void display(){ + super.display(); + GUIboard.writePageToMatrix("Binnentemperatuur", "Gemiddelde: " + getAvg(), ""); + } + +} diff --git a/OutsideHum.java b/OutsideHum.java index e3aab36..ea0b4b0 100644 --- a/OutsideHum.java +++ b/OutsideHum.java @@ -1,87 +1,32 @@ -package weerstation; -import java.net.*; import java.util.ArrayList; -/** - * Write a description of class OpdrachtDinges here. - * - * @author (your name) - * @version (a version number or a date) - */ -public class OutsideHum -{ - Measurement meting; //connectie maken met Measurement klasse - ArrayList laatste24uur; //ArrayList om de luchtvochtigheid op te slaan - double vochtigheid; - private Measurement laatsteMeting; - double max; - double min; - double avg; + +public class OutsideHum extends Grootheid{ - public OutsideHum(Measurement measurement1, ArrayList measurement2) - { - updateRecent(measurement1); - update24Hour(measurement2); - } - - public double buitenLuchtvochtigheid() - { - meting.getOutsideHum(); //waardes van buitenluchtvochtigheid ophalen uit de meting klasse - return meting.getOutsideHum(); - } - - public double berekenMaximale() - { - short maximale = 0; - for(int i=0; i < laatste24uur.size();i++) //zolang i kleiner is dan de grootte van de ArrayList laatste24uur voert het de if-statement uit - { - if(laatste24uur.get(i).getRawOutsideHum() > maximale) //plek (i) in de ArrayList laatste24uur vraag je de waarde RawOutsideHum van op. Als die groter is dan huidige maximale, vervang je maximale door dat getal. - { - maximale = laatste24uur.get(i).getRawOutsideHum(); - } - } - return(maximale); - } - - public double berekenMinimale() - { - short minimale = 100; - for(int i=0; i < laatste24uur.size();i++) - { - if(laatste24uur.get(i).getRawOutsideHum() < minimale) - { - minimale = laatste24uur.get(i).getRawOutsideHum(); - } - } - return(minimale); - } - - public double berekenAverage() - { - short average = 0; - for(int i=0; i < laatste24uur.size(); i ++) - { - average += laatste24uur.get(i).getRawOutsideHum(); - } - average /= laatste24uur.size(); - return(average); + //constructor + public OutsideHum(Measurement measurement1, ArrayList measurement2){ + updateRecent(measurement1); + update24Hour(measurement2); } + public void updateRecent(Measurement measurement1){ - this.laatsteMeting = measurement1; - vochtigheid = laatsteMeting.getOutsideHum(); - } - - public void update24Hour(ArrayList measurement2){ - this.laatste24uur = measurement2; - min = berekenMinimale(); - max = berekenMaximale(); - avg = berekenAverage(); - } - - public void display(){ - GUIboard.writeUpperDigits(vochtigheid); - GUIboard.writeLeftDigits(max); - GUIboard.writeRightDigits(min); - GUIboard.writePageToMatrix("Luchtv. Buiten", "Gemiddelde: " + avg, ""); - } + setCurrent(measurement1.getOutsideHum()); + } + public void update24Hour(ArrayList measurement2){ + + ArrayList list = new ArrayList(); + + for(Measurement ms : measurement2) + { + list.add(ms.getOutsideHum()); + } + + calculateMaxMinAvg(list); + } + + public void display(){ + super.display(); + GUIboard.writePageToMatrix("Luchtv. Buiten", "Gemiddelde: " + getAvg(), ""); + } + } diff --git a/OutsideTemp.java b/OutsideTemp.java new file mode 100644 index 0000000..f99570f --- /dev/null +++ b/OutsideTemp.java @@ -0,0 +1,32 @@ +import java.util.ArrayList; + +public class OutsideTemp extends Grootheid{ + + //constructor + public OutsideTemp(Measurement measurement1, ArrayList measurement2){ + updateRecent(measurement1); + update24Hour(measurement2); + } + + + public void updateRecent(Measurement measurement1){ + setCurrent(measurement1.getOutsideTemp()); + } + public void update24Hour(ArrayList measurement2){ + + ArrayList list = new ArrayList(); + + for(Measurement ms : measurement2) + { + list.add(ms.getOutsideTemp()); + } + + calculateMaxMinAvg(list); + } + + public void display(){ + super.display(); + GUIboard.writePageToMatrix("Buitentemperatuur", "Gemiddelde: " + getAvg(), ""); + } + +} diff --git a/RainRate.java b/RainRate.java index a99d4bd..fbee199 100644 --- a/RainRate.java +++ b/RainRate.java @@ -1,96 +1,32 @@ -package weerstation; import java.util.ArrayList; -public class RainRate { - - //fields - private Measurement laatsteMeting; - private ArrayList laatste24Uur; - private double currentRainRate; - private double maxRainRate; - private double minRainRate; - private double avgRainRate; +public class RainRate extends Grootheid{ //constructor public RainRate(Measurement measurement1, ArrayList measurement2){ updateRecent(measurement1); update24Hour(measurement2); } - - //getters & setters - public double getCurrentRainRate() { - return currentRainRate; - } - public void setCurrentRainRate(double currentRainRate) { - if(currentRainRate >= 0){ - this.currentRainRate = currentRainRate; - } - } - - public double getMaxRainRate() { - return maxRainRate; - } - - public void setMaxRainRate(double maxRainRate) { - if(maxRainRate >= 0){ - this.maxRainRate = maxRainRate; - } - } - - public double getMinRainRate() { - return minRainRate; - } - - public void setMinRainRate(double minRainRate) { - if(minRainRate >= 0){ - this.minRainRate = minRainRate; - } - } - - public double getAvgRainRate() { - return avgRainRate; - } - - public void setAvgRainRate(double avgRainRate) { - this.avgRainRate = avgRainRate; - } - - //Methods - public void calculateMaxMinAvgRainRate(){ - int max = 0; - int min = 0; - float avg = 0; - for(Measurement minut : laatste24Uur){ - if(minut.getRawRainRate() > max){ - max = minut.getRawRainRate(); - } - if(minut.getRawRainRate() < min){ - min = minut.getRawRainRate(); - } - avg += minut.getRawRainRate(); - } - avg /= laatste24Uur.size(); - - setAvgRainRate(Calculator.regenmeter((short)avg)); - setMaxRainRate(Calculator.regenmeter((short)max)); - setMinRainRate(Calculator.regenmeter((short)min)); - } public void updateRecent(Measurement measurement1){ - this.laatsteMeting = measurement1; - setCurrentRainRate(laatsteMeting.getRainRate()); + setCurrent(measurement1.getRainRate()); } public void update24Hour(ArrayList measurement2){ - this.laatste24Uur = measurement2; - calculateMaxMinAvgRainRate(); + + ArrayList list = new ArrayList(); + + for(Measurement ms : measurement2) + { + list.add(ms.getRainRate()); + } + + calculateMaxMinAvg(list); } public void display(){ - GUIboard.writeUpperDigits(getCurrentRainRate()); - GUIboard.writeLeftDigits(getMaxRainRate()); - GUIboard.writeRightDigits(getMinRainRate()); - GUIboard.writePageToMatrix("Regenval in mm/h", "Gemiddelde: " + avgRainRate, ""); + super.display(); + GUIboard.writePageToMatrix("Regenval in mm/h", "Gemiddelde: " + getAvg(), ""); } } diff --git a/UVLevel.java b/UVLevel.java index 27fdc28..a2728d9 100644 --- a/UVLevel.java +++ b/UVLevel.java @@ -1,90 +1,32 @@ -import java.io.*; -import java.net.*; import java.util.ArrayList; -/** - * Write a description of class OpdrachtDinges here. - * - * @author (Tim van Lieshout) - * @version (a version number or a date) - */ -public class UVLevel -{ - Weerstation weerstation; - Measurement meting; - ArrayList laatste24uur; - private Measurement laatsteMeting; - double max; - double min; - double avg; - double level; + +public class UVLevel extends Grootheid{ - public UVLevel(Measurement measurement1, ArrayList measurement2) - { + //constructor + public UVLevel(Measurement measurement1, ArrayList measurement2){ updateRecent(measurement1); update24Hour(measurement2); } - - public double buitenLuchtvochtigheid() - { - meting.getUVLevel(); - return meting.getUVLevel(); - } - - public double berekenMaximale() - { - double maximale = 0; - for(int i=0; i < laatste24uur.size();i++) - { - if(laatste24uur.get(i).getRawUVLevel() > maximale) - { - maximale = laatste24uur.get(i).getUVLevel(); - } - } - return(maximale); - } - - public double berekenMinimale() - { - double minimale = 100; - for(int i=0; i < laatste24uur.size();i++) - { - if(laatste24uur.get(i).getRawOutsideHum() < minimale) - { - minimale = laatste24uur.get(i).getUVLevel(); - } - } - return(minimale); - } - - public double berekenAverage() - { - int average = 0; - for(int i=0; i < laatste24uur.size(); i ++) - { - average += laatste24uur.get(i).getUVLevel(); - } - average /= laatste24uur.size(); - return(average); - } + public void updateRecent(Measurement measurement1){ - this.laatsteMeting = measurement1; - level = laatsteMeting.getOutsideHum(); - } - - public void update24Hour(ArrayList measurement2){ - this.laatste24uur = measurement2; - min = berekenMinimale(); - max = berekenMaximale(); - avg = berekenAverage(); - } - - public void display(){ - GUIboard.writeUpperDigits(level); - GUIboard.writeLeftDigits(max); - GUIboard.writeRightDigits(min); - GUIboard.writePageToMatrix("UVLevel Buiten", "Gemiddelde: " + avg, ""); - } - - + setCurrent(measurement1.getUVLevel()); + } + public void update24Hour(ArrayList measurement2){ + + ArrayList list = new ArrayList(); + + for(Measurement ms : measurement2) + { + list.add(ms.getUVLevel()); + } + + calculateMaxMinAvg(list); + } + + public void display(){ + super.display(); + GUIboard.writePageToMatrix("UV Level", "Gemiddelde: " + getAvg(), ""); + } + } diff --git a/Weerstation.java b/Weerstation.java index ffc51e8..00798c3 100644 --- a/Weerstation.java +++ b/Weerstation.java @@ -1,4 +1,4 @@ -package weerstation; + import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; import java.util.List; @@ -23,13 +23,16 @@ public class Weerstation { //All the different screen classes - final List lstScreens = new ArrayList(); + final List lstScreens = new ArrayList(); lstScreens.add(new AvgWindspeed(meting1, meting2)); lstScreens.add(new RainRate(meting1, meting2)); - lstScreens.add(new BinnenTemperatuur(meting1, meting2)); - lstScreens.add(new BuitenTemperatuur(meting1, meting2)); - lstScreens.add(new InsideHum(meting1, meting2)); + lstScreens.add(new OutsideTemp(meting1, meting2)); + lstScreens.add(new InsideTemp(meting1, meting2)); lstScreens.add(new OutsideHum(meting1, meting2)); + lstScreens.add(new InsideHum(meting1, meting2)); + lstScreens.add(new CloudHeight(meting1, meting2)); + lstScreens.add(new WindChill(meting1, meting2)); + lstScreens.add(new UVLevel(meting1, meting2)); //Screen switcher @@ -41,14 +44,8 @@ public class Weerstation { if(currentScreen == lstScreens.size()){ currentScreen = 0; } - Object obj = lstScreens.get(currentScreen); - try { - obj.getClass().getMethod("display").invoke(obj); - } catch (IllegalAccessException | IllegalArgumentException - | InvocationTargetException | NoSuchMethodException - | SecurityException e) { - e.printStackTrace(); - } + Grootheid obj = lstScreens.get(currentScreen); + obj.display(); } }, 0, 5*1000); @@ -57,12 +54,8 @@ public class Weerstation { public void run() { meting1 = weerstation1.getMostRecentMeasurement(); - for(Object obj : lstScreens){ - try { - obj.getClass().getMethod("updateRecent", Measurement.class).invoke(obj, meting1 ); - } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException | SecurityException e) { - e.printStackTrace(); - } + for(Grootheid obj : lstScreens){ + obj.updateRecent(meting1); } } }, 60*1000, 60*1000); @@ -72,12 +65,8 @@ public class Weerstation { timer.scheduleAtFixedRate(new TimerTask() { public void run() { meting2 = weerstation1.getAllMeasurementsLast24h(); - for(Object obj : lstScreens){ - try { - obj.getClass().getMethod("update24Hour", ArrayList.class).invoke(obj, meting2 ); - } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException | SecurityException e) { - e.printStackTrace(); - } + for(Grootheid obj : lstScreens){ + obj.update24Hour(meting2); } } }, 10*60*1000, 10*60*1000); diff --git a/WindChill.java b/WindChill.java index 0058770..e6b0e56 100644 --- a/WindChill.java +++ b/WindChill.java @@ -1,88 +1,32 @@ -package weerstation; - import java.util.ArrayList; -public class WindChill { - - //fields - private double currentWindChill; - private double maxWindChill; - private double minWindChill; - private double avgWindChill; - - //constructor - public WindChill(Measurement measurement1, ArrayList measurement2){ - updateRecent(measurement1); - update24Hour(measurement2); - } - - //getters & setters - public double getCurrentWindChill() { - return currentWindChill; - } +public class WindChill extends Grootheid{ + + //constructor + public WindChill(Measurement measurement1, ArrayList measurement2){ + updateRecent(measurement1); + update24Hour(measurement2); + } - public void setCurrentWindChill(double currentWindChill) { - this.currentWindChill = currentWindChill; - } - - public double getMaxWindChill() { - return maxWindChill; - } - - public void setMaxWindChill(double maxWindChill) { - this.maxWindChill = maxWindChill; - } - - public double getMinWindChill() { - return minWindChill; - } - - public void setMinWindChill(double minWindChill) { - this.minWindChill = minWindChill; - } - - public double getAvgWindChill() { - return avgWindChill; - } - - public void setAvgWindChill(double avgWindChill) { - this.avgWindChill = Math.round(avgWindChill*100)/100; - } - - //Methods - private void calculateMaxMinAvgWindChill(ArrayList laatste24uur){ - double max = 0; - double min = 1000; - float avg = 0; - for(Measurement minut :laatste24uur){ - if(minut.getWindChill() > max){ - max = minut.getWindChill(); - } - if(minut.getWindChill() < min){ - min = minut.getWindChill(); - } - avg += minut.getWindChill(); - } - avg /= laatste24uur.size(); - - setAvgWindChill(avg); - setMaxWindChill(max); - setMinWindChill(min); - } - - - public void updateRecent(Measurement measurement1){ - setCurrentWindChill(measurement1.getWindChill()); - } - public void update24Hour(ArrayList measurement2){ - calculateMaxMinAvgWindChill(measurement2); - } - - public void display(){ - GUIboard.writeUpperDigits(getCurrentWindChill()); - GUIboard.writeLeftDigits(getMaxWindChill()); - GUIboard.writeRightDigits(getMinWindChill()); - GUIboard.writePageToMatrix("Gevoelstemp in C", "Gemiddelde: " + avgWindChill, ""); - } - + + public void updateRecent(Measurement measurement1){ + setCurrent(measurement1.getWindChill()); + } + public void update24Hour(ArrayList measurement2){ + + ArrayList list = new ArrayList(); + + for(Measurement ms : measurement2) + { + list.add(ms.getWindChill()); + } + + calculateMaxMinAvg(list); + } + + public void display(){ + super.display(); + GUIboard.writePageToMatrix("Gevoelstemperatuur", "Gemiddelde: " + getAvg(), ""); + } + }