Measurement.java 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. import java.math.BigDecimal;
  2. public class Measurement
  3. {
  4. private String stationId;
  5. private java.sql.Timestamp dateStamp;
  6. private short barometer;
  7. private short insideTemp;
  8. private short insideHum;
  9. private short outsideTemp;
  10. private short windSpeed;
  11. private short avgWindSpeed;
  12. private short windDir;
  13. private short outsideHum;
  14. private short rainRate;
  15. private short UVLevel;
  16. private short solarRad;
  17. private short xmitBatt;
  18. private short battLevel;
  19. private short sunrise;
  20. private short sunset;
  21. Calculator calc;
  22. public Measurement()
  23. {
  24. calc = new Calculator();
  25. }
  26. // stationId
  27. public void setStationId (String str) { this.stationId = str;};
  28. public String getStationId () { return stationId; };
  29. // dateStamp
  30. public void setDateStamp (java.sql.Timestamp ts) { this.dateStamp = ts;};
  31. public java.sql.Timestamp getDateStamp () { return dateStamp; };
  32. // barometer
  33. public void setRawBarometer (short val) { this.barometer = val;};
  34. public short getRawBarometer () { return barometer; };
  35. public double getBarometer () { return round(calc.luchtdruk(barometer),0); };
  36. // insideTemp
  37. public void setRawInsideTemp (short val) { this.insideTemp = val;};
  38. public short getRawInsideTemp () { return insideTemp; };
  39. public double getInsideTemp () { return round(calc.temperatuur(insideTemp),2); };
  40. // insideHum
  41. public void setRawInsideHum (short val) { this.insideHum = val;};
  42. public short getRawInsideHum () { return insideHum; };
  43. public double getInsideHum () { return round(calc.luchtVochtigheid(insideHum),0); };
  44. // outsideTemp
  45. public void setRawOutsideTemp (short val) { this.outsideTemp = val;};
  46. public short getRawOutsideTemp () { return outsideTemp; };
  47. public double getOutsideTemp () { return round(calc.temperatuur(outsideTemp),2); };
  48. // windSpeed
  49. public void setRawWindSpeed (short val) { this.windSpeed = val;};
  50. public short getRawWindSpeed () { return windSpeed; };
  51. public double getWindSpeed () { return round(calc.windSnelheid(windSpeed),2); };
  52. // avgWindSpeed
  53. public void setRawAvgWindSpeed (short val) { this.avgWindSpeed = val;};
  54. public short getRawAvgWindSpeed () { return avgWindSpeed; };
  55. public double getAvgWindSpeed () { return round(calc.windSnelheid(avgWindSpeed),2); };
  56. // windDir
  57. public void setRawWindDir (short val) { this.windDir = val;};
  58. public short getRawWindDir () { return windDir; };
  59. public String getWindDir () { return calc.windRichting(windDir); };
  60. // outsideHum
  61. public void setRawOutsideHum (short val) { this.outsideHum = val;};
  62. public short getRawOutsideHum () { return outsideHum; };
  63. public double getOutsideHum () { return round(calc.luchtVochtigheid(outsideHum),0); };
  64. // rainRate
  65. public void setRawRainRate (short val) { this.rainRate = val;};
  66. public short getRawRainRate () { return rainRate; };
  67. public double getRainRate () { return calc.regenmeter(rainRate); };
  68. // UVLevel
  69. public void setRawUVLevel (short val) { this.UVLevel = val;};
  70. public short getRawUVLevel () { return UVLevel; };
  71. public double getUVLevel () { return Math.ceil(calc.uvIndex(UVLevel)); };
  72. // solarRad
  73. public void setRawSolarRad (short val) { this.solarRad = val;};
  74. public short getRawSolarRad () { return solarRad; };
  75. // xmitBatt
  76. public void setRawXmitBatt (short val) { this.xmitBatt = val;};
  77. public short getRawXmitBatt () { return xmitBatt; };
  78. // battLevel
  79. public void setRawBattLevel (short val) { this.battLevel = val;};
  80. public short getRawBattLevel () { return battLevel; };
  81. public double getBattLevel () { return round(calc.batterySpanning(battLevel),2); };
  82. // sunrise
  83. public void setRawSunrise (short val) { this.sunrise = val;};
  84. public short getRawSunrise () { return sunrise; };
  85. public String getSunrise () { return calc.sunRise(sunrise); };
  86. // sunset
  87. public void setRawSunset (short val) { this.sunset = val;};
  88. public short getRawSunset () { return sunset; };
  89. public String getSunset () { return calc.sunSet(sunset); };
  90. // windChill
  91. public double getWindChill () { return round(calc.windChill(outsideTemp, windSpeed),2); };
  92. // heatIndex
  93. public double getHeatIndex () { return round(calc.heatIndex(outsideHum, outsideTemp),0); };
  94. // dewPoint
  95. public double getDewPoint () { return round(calc.dewPoint( getOutsideTemp() , outsideHum),2); };
  96. //wolkHoogte
  97. public double getCloudHeight () { return round(calc.cloudHeight(outsideTemp, outsideHum),1); };
  98. public String toString()
  99. {
  100. String s = "stationId = " + stationId
  101. + ", dateStamp = " + dateStamp
  102. + ", barometer = " + barometer
  103. + ", insideTemp = " + insideTemp
  104. + ", insideHum = " + insideHum
  105. + ", outsideTemp = " + outsideTemp
  106. + ", windSpeed = " + windSpeed
  107. + ", avgWindSpeed = " + avgWindSpeed
  108. + ", windDir = " + windDir
  109. + ", outsideHum = " + outsideHum
  110. + ", rainRate = " + rainRate
  111. + ", UVLevel = " + UVLevel
  112. + ", solarRad = " + solarRad
  113. + ", xmitBatt = " + xmitBatt
  114. + ", battLevel = " + battLevel
  115. + ", sunrise = " + sunrise
  116. + ", sunset = " + sunset;
  117. return s;
  118. }
  119. //afronder
  120. public double round(double unrounded, int precision)
  121. {
  122. BigDecimal bd = new BigDecimal(unrounded);
  123. BigDecimal rounded = bd.setScale(precision, BigDecimal.ROUND_HALF_UP);
  124. return rounded.doubleValue();
  125. }
  126. }