diff --git a/AvgWindspeed.java b/AvgWindspeed.java new file mode 100644 index 0000000..de33aea --- /dev/null +++ b/AvgWindspeed.java @@ -0,0 +1,101 @@ +package weerstation; + +import java.util.ArrayList; + +public class AvgWindspeed { + + //fields + private Measurement laatsteMeting; + private ArrayList laatste24Uur; + private Calculator calculator; + private int pageNumber; + private double currentWindSpeed; + private double maxWindSpeed; + private double minWindSpeed; + private double avgWindSpeed; + + //constructor + public AvgWindspeed(Measurement measurement1, ArrayList measurement2, int page){ + pageNumber = page; + calculator = new Calculator(); + updateRecent(measurement1); + update24Hour(measurement2); + + } + + //getters & setters + double getCurrentWindSpeed() { + return currentWindSpeed; + } + + void setCurrentWindSpeed(double currentWindSpeed) { + if(currentWindSpeed >= 0){ + this.currentWindSpeed = currentWindSpeed; + } + } + + double getMaxWindSpeed() { + return maxWindSpeed; + } + + void setMaxWindSpeed(double maxWindSpeed) { + if(maxWindSpeed >= 0){ + this.maxWindSpeed = maxWindSpeed; + } + } + + double getMinWindSpeed() { + return minWindSpeed; + } + + public void setMinWindSpeed(double minWindSpeed) { + if(minWindSpeed >= 0){ + this.minWindSpeed = minWindSpeed; + } + } + + double getAvgWindSpeed() { + return avgWindSpeed; + } + + public void setAvgWindSpeed(double avgWindSpeed) { + this.avgWindSpeed = avgWindSpeed; + } + + //Methods + public void calculateMaxMinAvgWindSpeed(){ + int max = 0; + int min = 0; + 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){ + this.laatsteMeting = measurement1; + setCurrentWindSpeed(laatsteMeting.getAvgWindSpeed()); + } + public void update24Hour(ArrayList measurement2){ + this.laatste24Uur = measurement2; + calculateMaxMinAvgWindSpeed(); + } + + public void display(){ + GUIboard.writeUpperDigits(getCurrentWindSpeed()); + GUIboard.writeLeftDigits(getMaxWindSpeed()); + GUIboard.writeRightDigits(getMinWindSpeed()); + } + +}