Prechádzať zdrojové kódy

Janco's klasse van de windspeed, nog geen grafiek & matrixscherm

jancoow 11 rokov pred
rodič
commit
b5ff7198e4
1 zmenil súbory, kde vykonal 101 pridanie a 0 odobranie
  1. 101 0
      AvgWindspeed.java

+ 101 - 0
AvgWindspeed.java

@@ -0,0 +1,101 @@
+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
+	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<Measurement> measurement2){
+		this.laatste24Uur = measurement2;
+		calculateMaxMinAvgWindSpeed();
+	}
+	
+	public void display(){
+		GUIboard.writeUpperDigits(getCurrentWindSpeed());
+		GUIboard.writeLeftDigits(getMaxWindSpeed());
+		GUIboard.writeRightDigits(getMinWindSpeed());
+	}
+	
+}