WindChill.java 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. package weerstation;
  2. import java.util.ArrayList;
  3. public class WindChill {
  4. //fields
  5. private double currentWindChill;
  6. private double maxWindChill;
  7. private double minWindChill;
  8. private double avgWindChill;
  9. //constructor
  10. public WindChill(Measurement measurement1, ArrayList<Measurement> measurement2){
  11. updateRecent(measurement1);
  12. update24Hour(measurement2);
  13. }
  14. //getters & setters
  15. public double getCurrentWindChill() {
  16. return currentWindChill;
  17. }
  18. public void setCurrentWindChill(double currentWindChill) {
  19. this.currentWindChill = currentWindChill;
  20. }
  21. public double getMaxWindChill() {
  22. return maxWindChill;
  23. }
  24. public void setMaxWindChill(double maxWindChill) {
  25. this.maxWindChill = maxWindChill;
  26. }
  27. public double getMinWindChill() {
  28. return minWindChill;
  29. }
  30. public void setMinWindChill(double minWindChill) {
  31. this.minWindChill = minWindChill;
  32. }
  33. public double getAvgWindChill() {
  34. return avgWindChill;
  35. }
  36. public void setAvgWindChill(double avgWindChill) {
  37. this.avgWindChill = Math.round(avgWindChill*100)/100;
  38. }
  39. //Methods
  40. private void calculateMaxMinAvgWindChill(ArrayList<Measurement> laatste24uur){
  41. double max = 0;
  42. double min = 1000;
  43. float avg = 0;
  44. for(Measurement minut :laatste24uur){
  45. if(minut.getWindChill() > max){
  46. max = minut.getWindChill();
  47. }
  48. if(minut.getWindChill() < min){
  49. min = minut.getWindChill();
  50. }
  51. avg += minut.getWindChill();
  52. }
  53. avg /= laatste24uur.size();
  54. setAvgWindChill(avg);
  55. setMaxWindChill(max);
  56. setMinWindChill(min);
  57. }
  58. public void updateRecent(Measurement measurement1){
  59. setCurrentWindChill(measurement1.getWindChill());
  60. }
  61. public void update24Hour(ArrayList<Measurement> measurement2){
  62. calculateMaxMinAvgWindChill(measurement2);
  63. }
  64. public void display(){
  65. GUIboard.writeUpperDigits(getCurrentWindChill());
  66. GUIboard.writeLeftDigits(getMaxWindChill());
  67. GUIboard.writeRightDigits(getMinWindChill());
  68. GUIboard.writePageToMatrix("Gevoelstemp in C", "Gemiddelde: " + avgWindChill, "");
  69. }
  70. }