AvgWindspeed.java 2.3 KB

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