/* ================================================================== * AtmosphericDatum.java - Aug 26, 2014 1:52:01 PM * * Copyright 2007-2014 SolarNetwork.net Dev Team * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of * the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA * 02111-1307 USA * ================================================================== */ package net.solarnetwork.node.domain; import java.math.BigDecimal; /** * Standardized API for atmospheric related datum to implement. * * @author matt * @version 1.2 */ public interface AtmosphericDatum extends Datum { /** * A {@link net.solarnetwork.domain.GeneralNodeDatumSamples} instantaneous * sample key for {@link AtmosphericDatum#getTemperature()} values. */ static final String TEMPERATURE_KEY = "temp"; /** * A {@link net.solarnetwork.domain.GeneralDatumSamples} instantaneous * sample key for {@link AtmosphericDatum#getHumidity()} values. */ static final String HUMIDITY_KEY = "humidity"; /** * A {@link net.solarnetwork.domain.GeneralDatumSamples} instantaneous * sample key for {@link AtmosphericDatum#getDewPoint()} values. */ static final String DEW_POINT_KEY = "dew"; /** * A {@link net.solarnetwork.domain.GeneralDatumSamples} instantaneous * sample key for {@link AtmosphericDatum#getAtmosphericPressure()} values. */ static final String ATMOSPHERIC_PRESSURE_KEY = "atm"; /** * A {@link net.solarnetwork.domain.GeneralDatumSamples} instantaneous * sample key for {@link AtmosphericDatum#getAtmosphericPressure()} values. */ static final String VISIBILITY_KEY = "visibility"; /** * A {@link net.solarnetwork.domain.GeneralDatumSamples} status sample key * for {@link AtmosphericDatum#getSkyConditions()} values. */ static final String SKY_CONDITIONS_KEY = "sky"; /** * A {@link net.solarnetwork.domain.GeneralDatumSamples} status sample key * for {@link AtmosphericDatum#getWindSpeed()} values. * * @since 1.2 */ static final String WIND_SPEED_KEY = "wspeed"; /** * A {@link net.solarnetwork.domain.GeneralDatumSamples} status sample key * for {@link AtmosphericDatum#getWindDirection()} values. * * @since 1.2 */ static final String WIND_DIRECTION_KEY = "wdir"; /** * A {@link net.solarnetwork.domain.GeneralDatumSamples} status sample key * for {@link AtmosphericDatum#getRain()} values. * * @since 1.2 */ static final String RAIN_KEY = "rain"; /** * A {@link net.solarnetwork.domain.GeneralDatumSamples} status sample key * for {@link AtmosphericDatum#getSnow()} values. * * @since 1.2 */ static final String SNOW_KEY = "snow"; /** A tag for an "indoor" atmosphere sample. */ static final String TAG_ATMOSPHERE_INDOOR = "indoor"; /** A tag for an "outdoor" atmosphere sample. */ static final String TAG_ATMOSPHERE_OUTDOOR = "outdoor"; /** * A tag for a forecast atmosphere sample, as opposed to an actual * measurement. * * @since 1.2 */ static final String TAG_FORECAST = "forecast"; /** * Get the instantaneous temperature, in degrees Celsius. * * @return the temperature, in degrees Celsius */ BigDecimal getTemperature(); /** * Get the instantaneous dew point, in degrees Celsius. * * @return the dew point, in degrees celsius */ BigDecimal getDewPoint(); /** * Get the instantaneous humidity, as an integer percentage (where 100 * represents 100%). * * @return the humidity, as an integer percentage */ Integer getHumidity(); /** * Get the instantaneous atmospheric pressure, in pascals. * * @return the atmospheric pressure, in pascals */ Integer getAtmosphericPressure(); /** * Get the instantaneous visibility, in meters. * * @return visibility, in meters */ Integer getVisibility(); /** * Get a textual description of the sky conditions, e.g. "clear", "cloudy", * etc. * * @return general sky conditions */ String getSkyConditions(); /** * Get the wind speed, in meters / second. * * @return wind speed * @since 1.2 */ BigDecimal getWindSpeed(); /** * Get the wind direction, in degrees. * * @return wind direction * @since 1.2 */ Integer getWindDirection(); /** * Get the rain accumulation, in millimeters. * * @return rain accumulation * @since 1.2 */ Integer getRain(); /** * Get the snow accumulation, in millimeters. * * @return snow accumulation * @since 1.2 */ Integer getSnow(); }