Files
weerstation/AvgWindspeed.java
T
Janco Kock 0b90621e3d Update AvgWindspeed.java
Changed some methodes to private, fixed the minium windspeed
2014-10-07 13:34:45 +02:00

102 lines
2.3 KiB
Java

package weerstation;
import java.util.ArrayList;
public class AvgWindspeed {
//fields
private Measurement laatsteMeting;
private ArrayList<Measurement> 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<Measurement> measurement2, int page){
pageNumber = page;
calculator = new Calculator();
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 = avgWindSpeed;
}
//Methods
private void calculateMaxMinAvgWindSpeed(){
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){
this.laatsteMeting = measurement1;
setCurrentWindSpeed(laatsteMeting.getAvgWindSpeed());
}
public void update24Hour(ArrayList<Measurement> measurement2){
this.laatste24Uur = measurement2;
calculateMaxMinAvgWindSpeed();
}
public void display(){
GUIboard.writeUpperDigits(getCurrentWindSpeed());
GUIboard.writeLeftDigits(getMaxWindSpeed());
GUIboard.writeRightDigits(getMinWindSpeed());
}
}