AvgWindspeed.java 2.2 KB

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