AvgWindspeed.java 2.2 KB

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