RainRate.java 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. import java.util.ArrayList;
  2. public class RainRate {
  3. //fields
  4. private Measurement laatsteMeting;
  5. private ArrayList<Measurement> laatste24Uur;
  6. private Calculator calculator;
  7. private double currentRainRate;
  8. private double maxRainRate;
  9. private double minRainRate;
  10. private double avgRainRate;
  11. //constructor
  12. public RainRate(Measurement measurement1, ArrayList<Measurement> measurement2){
  13. calculator = new Calculator();
  14. updateRecent(measurement1);
  15. update24Hour(measurement2);
  16. }
  17. //getters & setters
  18. public double getCurrentRainRate() {
  19. return currentRainRate;
  20. }
  21. public void setCurrentRainRate(double currentRainRate) {
  22. if(currentRainRate >= 0){
  23. this.currentRainRate = currentRainRate;
  24. }
  25. }
  26. public double getMaxRainRate() {
  27. return maxRainRate;
  28. }
  29. public void setMaxRainRate(double maxRainRate) {
  30. if(maxRainRate >= 0){
  31. this.maxRainRate = maxRainRate;
  32. }
  33. }
  34. public double getMinRainRate() {
  35. return minRainRate;
  36. }
  37. public void setMinRainRate(double minRainRate) {
  38. if(minRainRate >= 0){
  39. this.minRainRate = minRainRate;
  40. }
  41. }
  42. public double getAvgRainRate() {
  43. return avgRainRate;
  44. }
  45. public void setAvgRainRate(double avgRainRate) {
  46. this.avgRainRate = avgRainRate;
  47. }
  48. //Methods
  49. public void calculateMaxMinAvgRainRate(){
  50. int max = 0;
  51. int min = 0;
  52. float avg = 0;
  53. for(Measurement minut : laatste24Uur){
  54. if(minut.getRawRainRate() > max){
  55. max = minut.getRawRainRate();
  56. }
  57. if(minut.getRawRainRate() < min){
  58. min = minut.getRawRainRate();
  59. }
  60. avg += minut.getRawRainRate();
  61. }
  62. avg /= laatste24Uur.size();
  63. setAvgRainRate(calculator.regenmeter((short)avg));
  64. setMaxRainRate(calculator.regenmeter((short)max));
  65. setMinRainRate(calculator.regenmeter((short)min));
  66. }
  67. public void updateRecent(Measurement measurement1){
  68. this.laatsteMeting = measurement1;
  69. setCurrentRainRate(laatsteMeting.getRainRate());
  70. }
  71. public void update24Hour(ArrayList<Measurement> measurement2){
  72. this.laatste24Uur = measurement2;
  73. calculateMaxMinAvgRainRate();
  74. }
  75. public void display(){
  76. GUIboard.writeUpperDigits(getCurrentRainRate());
  77. GUIboard.writeLeftDigits(getMaxRainRate());
  78. GUIboard.writeRightDigits(getMinRainRate());
  79. }
  80. }