From 8a3708e012becfedc245fa64e278841add6506e8 Mon Sep 17 00:00:00 2001 From: Kenneth van Ewijk Date: Tue, 7 Oct 2014 13:25:48 +0200 Subject: [PATCH] Added class for RainRate --- RainRate.java | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 RainRate.java diff --git a/RainRate.java b/RainRate.java new file mode 100644 index 0000000..7b94492 --- /dev/null +++ b/RainRate.java @@ -0,0 +1,97 @@ +import java.util.ArrayList; + +public class RainRate { + + //fields + private Measurement laatsteMeting; + private ArrayList laatste24Uur; + private Calculator calculator; + private double currentRainRate; + private double maxRainRate; + private double minRainRate; + private double avgRainRate; + + //constructor + public RainRate(Measurement measurement1, ArrayList measurement2){ + calculator = new Calculator(); + 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()); + } + public void update24Hour(ArrayList measurement2){ + this.laatste24Uur = measurement2; + calculateMaxMinAvgRainRate(); + } + + public void display(){ + GUIboard.writeUpperDigits(getCurrentRainRate()); + GUIboard.writeLeftDigits(getMaxRainRate()); + GUIboard.writeRightDigits(getMinRainRate()); + } + +}