AvgWindspeed.java 2.2 KB

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