AvgWindspeed.java 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. import java.util.ArrayList;
  2. public class AvgWindspeed {
  3. //fields
  4. private double currentWindSpeed;
  5. private double maxWindSpeed;
  6. private double minWindSpeed;
  7. private double avgWindSpeed;
  8. //constructor
  9. public AvgWindspeed(Measurement measurement1, ArrayList<Measurement> measurement2){
  10. updateRecent(measurement1);
  11. update24Hour(measurement2);
  12. }
  13. //getters & setters
  14. public double getCurrentWindSpeed() {
  15. return currentWindSpeed;
  16. }
  17. public void setCurrentWindSpeed(double currentWindSpeed) {
  18. if(currentWindSpeed >= 0){
  19. this.currentWindSpeed = currentWindSpeed;
  20. }
  21. }
  22. public double getMaxWindSpeed() {
  23. return maxWindSpeed;
  24. }
  25. public void setMaxWindSpeed(double maxWindSpeed) {
  26. if(maxWindSpeed >= 0){
  27. this.maxWindSpeed = maxWindSpeed;
  28. }
  29. }
  30. public double getMinWindSpeed() {
  31. return minWindSpeed;
  32. }
  33. public void setMinWindSpeed(double minWindSpeed) {
  34. if(minWindSpeed >= 0){
  35. this.minWindSpeed = minWindSpeed;
  36. }
  37. }
  38. public double getAvgWindSpeed() {
  39. return avgWindSpeed;
  40. }
  41. public void setAvgWindSpeed(double avgWindSpeed) {
  42. this.avgWindSpeed = avgWindSpeed;
  43. }
  44. //Methods
  45. private void calculateMaxMinAvgWindSpeed(ArrayList<Measurement> laatste24uur){
  46. int max = 0;
  47. int min = 1000;
  48. float avg = 0;
  49. for(Measurement minut :laatste24uur){
  50. if(minut.getRawAvgWindSpeed() > max){
  51. max = minut.getRawAvgWindSpeed();
  52. }
  53. if(minut.getRawAvgWindSpeed() < min){
  54. min = minut.getRawAvgWindSpeed();
  55. }
  56. avg += minut.getRawWindSpeed();
  57. }
  58. avg /= laatste24uur.size();
  59. setAvgWindSpeed(Calculator.windSnelheid((short)avg));
  60. setMaxWindSpeed(Calculator.windSnelheid((short)max));
  61. setMinWindSpeed(Calculator.windSnelheid((short)min));
  62. }
  63. public void updateRecent(Measurement measurement1){
  64. setCurrentWindSpeed(measurement1.getAvgWindSpeed());
  65. }
  66. public void update24Hour(ArrayList<Measurement> measurement2){
  67. calculateMaxMinAvgWindSpeed(measurement2);
  68. }
  69. public void display(){
  70. GUIboard.writeUpperDigits(getCurrentWindSpeed());
  71. GUIboard.writeLeftDigits(getMaxWindSpeed());
  72. GUIboard.writeRightDigits(getMinWindSpeed());
  73. GUIboard.writePageToMatrix("Windsnelheid in m/s", "Gemiddelde: " + avgWindSpeed, "");
  74. }
  75. }