Measurement.java 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. import java.sql.Timestamp;
  2. import java.math.BigDecimal;
  3. /**
  4. * Klasse die per instantie alle meetgegevens van één meetpunt opslaat.
  5. *
  6. * @author Kenneth van Ewijk
  7. */
  8. public class Measurement
  9. {
  10. private String stationId;
  11. private Timestamp dateStamp;
  12. private short barometer;
  13. private short insideTemp;
  14. private short insideHum;
  15. private short outsideTemp;
  16. private short windSpeed;
  17. private short avgWindSpeed;
  18. private short windDir;
  19. private short outsideHum;
  20. private short rainRate;
  21. private short UVLevel;
  22. private short solarRad;
  23. private short xmitBatt;
  24. private short battLevel;
  25. private short sunrise;
  26. private short sunset;
  27. public Measurement()
  28. {
  29. }
  30. // stationId
  31. public void setStationId (String str) { this.stationId = str;};
  32. public String getStationId () { return stationId; };
  33. // dateStamp
  34. public void setDateStamp (Timestamp ts) { this.dateStamp = ts;};
  35. public Timestamp getDateStamp () { return dateStamp; };
  36. // barometer
  37. public void setRawBarometer (short val) { this.barometer = val;};
  38. public short getRawBarometer () { return barometer; };
  39. public double getBarometer () { return round(Calculator.luchtdruk(barometer),0); };
  40. // insideTemp
  41. public void setRawInsideTemp (short val) { this.insideTemp = val;};
  42. public short getRawInsideTemp () { return insideTemp; };
  43. public double getInsideTemp () { return round(Calculator.temperatuur(insideTemp),2); };
  44. // insideHum
  45. public void setRawInsideHum (short val) { this.insideHum = val;};
  46. public short getRawInsideHum () { return insideHum; };
  47. public double getInsideHum () { return round(Calculator.luchtVochtigheid(insideHum),0); };
  48. // outsideTemp
  49. public void setRawOutsideTemp (short val) { this.outsideTemp = val;};
  50. public short getRawOutsideTemp () { return outsideTemp; };
  51. public double getOutsideTemp () { return round(Calculator.temperatuur(outsideTemp),2); };
  52. // windSpeed
  53. public void setRawWindSpeed (short val) { this.windSpeed = val;};
  54. public short getRawWindSpeed () { return windSpeed; };
  55. public double getWindSpeed () { return round(Calculator.windSnelheid(windSpeed),2); };
  56. // avgWindSpeed
  57. public void setRawAvgWindSpeed (short val) { this.avgWindSpeed = val;};
  58. public short getRawAvgWindSpeed () { return avgWindSpeed; };
  59. public double getAvgWindSpeed () { return round(Calculator.windSnelheid(avgWindSpeed),2); };
  60. // windDir
  61. public void setRawWindDir (short val) { this.windDir = val;};
  62. public short getRawWindDir () { return windDir; };
  63. public String getWindDir () { return Calculator.windRichting(windDir); };
  64. // outsideHum
  65. public void setRawOutsideHum (short val) { this.outsideHum = val;};
  66. public short getRawOutsideHum () { return outsideHum; };
  67. public double getOutsideHum () { return round(Calculator.luchtVochtigheid(outsideHum),0); };
  68. // rainRate
  69. public void setRawRainRate (short val) { this.rainRate = val;};
  70. public short getRawRainRate () { return rainRate; };
  71. public double getRainRate () { return Calculator.regenmeter(rainRate); };
  72. // UVLevel
  73. public void setRawUVLevel (short val) { this.UVLevel = val;};
  74. public short getRawUVLevel () { return UVLevel; };
  75. public double getUVLevel () { return Math.ceil(Calculator.uvIndex(UVLevel)); };
  76. // solarRad
  77. public void setRawSolarRad (short val) { this.solarRad = val;};
  78. public short getRawSolarRad () { return solarRad; };
  79. public double getSolarRad () { return Calculator.solarRad(solarRad); };
  80. // xmitBatt
  81. public void setRawXmitBatt (short val) { this.xmitBatt = val;};
  82. public short getRawXmitBatt () { return xmitBatt; };
  83. // battLevel
  84. public void setRawBattLevel (short val) { this.battLevel = val;};
  85. public short getRawBattLevel () { return battLevel; };
  86. public double getBattLevel () { return round(Calculator.batterySpanning(battLevel),2); };
  87. // sunrise
  88. public void setRawSunrise (short val) { this.sunrise = val;};
  89. public short getRawSunrise () { return sunrise; };
  90. public String getSunrise () { return Calculator.sunRise(sunrise); };
  91. // sunset
  92. public void setRawSunset (short val) { this.sunset = val;};
  93. public short getRawSunset () { return sunset; };
  94. public String getSunset () { return Calculator.sunSet(sunset); };
  95. // windChill
  96. public double getWindChill () { return round(Calculator.windChill(outsideTemp, avgWindSpeed),2); };
  97. // heatIndex
  98. public double getHeatIndex () { return round(Calculator.heatIndex(outsideHum, outsideTemp),0); };
  99. // dewPoint
  100. public double getDewPoint () { return round(Calculator.dewPoint( getOutsideTemp() , outsideHum),2); };
  101. //wolkHoogte
  102. public double getCloudHeight () { return round(Calculator.cloudHeight(outsideTemp, outsideHum),1); };
  103. /**
  104. * Zet alle data in een Measurement om naar een string
  105. *
  106. * @return Alle waarden in een string
  107. */
  108. public String toString()
  109. {
  110. String s = "stationId = " + stationId
  111. + ", dateStamp = " + dateStamp
  112. + ", barometer = " + barometer
  113. + ", insideTemp = " + insideTemp
  114. + ", insideHum = " + insideHum
  115. + ", outsideTemp = " + outsideTemp
  116. + ", windSpeed = " + windSpeed
  117. + ", avgWindSpeed = " + avgWindSpeed
  118. + ", windDir = " + windDir
  119. + ", outsideHum = " + outsideHum
  120. + ", rainRate = " + rainRate
  121. + ", UVLevel = " + UVLevel
  122. + ", solarRad = " + solarRad
  123. + ", xmitBatt = " + xmitBatt
  124. + ", battLevel = " + battLevel
  125. + ", sunrise = " + sunrise
  126. + ", sunset = " + sunset;
  127. return s;
  128. }
  129. /**
  130. * Rond een waarde af op een aangegeven aantal getallen achter de komma
  131. *
  132. * @param unrounded Het getal dat afgerond moet worden
  133. * @param precision Het aantal getallen dat achter de komma moet blijven staan
  134. *
  135. * @return Het afgeronde getal
  136. */
  137. private double round(double unrounded, int precision)
  138. {
  139. BigDecimal bd = new BigDecimal(unrounded);
  140. BigDecimal rounded = bd.setScale(precision, BigDecimal.ROUND_HALF_UP);
  141. return rounded.doubleValue();
  142. }
  143. }