stella.sensor
Class OneWireADSensor

java.lang.Object
  extended by util.PropertyContainer
      extended by util.PropertyResources
          extended by util.PropertyBundles
              extended by util.rmi.RmiPropertyContainer
                  extended by util.rmi.AbstractRmiCaster
                      extended by stella.sensor.AbstractSensor
                          extended by stella.sensor.TimerTaskSensor
                              extended by stella.sensor.DataSensor
                                  extended by stella.sensor.CumulativeSensor
                                      extended by stella.sensor.PredictiveSensor
                                          extended by stella.sensor.SmoothingSensor
                                              extended by stella.sensor.DerivativeSensor
                                                  extended by stella.sensor.WeatherSensor
                                                      extended by stella.sensor.OneWireADSensor
All Implemented Interfaces:
DriverDepending, Cloneable, Remote, Caster, DataCaster, RmiDataCaster, RmiErrorCaster, Cumulating, Deriving, Predicting, Smoothing, Telemetering, WeatherJudging, WeatherCaster, ExitCleaning, Initializable, LocalizedSupplying, PropertySupplying, ResourceSupplying, RmiCaster, RmiPropertyBearing

public class OneWireADSensor
extends WeatherSensor
implements DriverDepending

A sensor representation of analog input data read with a one-wire A/D converter.


Nested Class Summary
 
Nested classes/interfaces inherited from class stella.sensor.TimerTaskSensor
TimerTaskSensor.SensorRead
 
Nested classes/interfaces inherited from class util.PropertyResources
PropertyResources.URLResource
 
Field Summary
private  int channel
          The integer equivalent of the channel key property.
static String KEY_CHANNEL
          The key for the channel number this sensor link to on the module.
static String KEY_READ
          The key linked to the channel-read command of the Nudam modlue.
static String KEY_SERVER
          The key linked to the polling instance to read from.
private  OneWireDriver serial
          The instance of the polling rs485 server.
private  boolean valid
          True for valid readings, false otherwise.
 
Fields inherited from class stella.sensor.WeatherSensor
KEY_DERIVATIVEINVALID, KEY_DERIVATIVEPARAMETER, KEY_INVERSE, KEY_INVERSEDERIVATIVE, KEY_JUDGEDERIVATIVE, KEY_JUDGEPREDICT, KEY_JUDGERAW, KEY_JUDGESMOOTH, KEY_PREDICTINVALID, KEY_PREDICTPARAMETER, KEY_RAWINVALID, KEY_RAWPARAMETER, KEY_RETARDBADDERIVATIVE, KEY_RETARDBADPREDICT, KEY_RETARDBADRAW, KEY_RETARDBADSMOOTH, KEY_RETARDGOODDERIVATIVE, KEY_RETARDGOODPREDICT, KEY_RETARDGOODRAW, KEY_RETARDGOODSMOOTH, KEY_SMOOTHINVALID, KEY_SMOOTHPARAMETER
 
Fields inherited from class stella.sensor.DerivativeSensor
DEFRAWDERIVATIVE, derive, KEY_DERIVATIVEADVISE, KEY_DERIVE, KEY_PATH, KEY_RAWDERIVATIVE, z
 
Fields inherited from class stella.sensor.SmoothingSensor
f, g, KEY_SMOOTH, KEY_SMOOTHADVISE
 
Fields inherited from class stella.sensor.PredictiveSensor
KEY_BASE, KEY_CHI, KEY_EXTRAPOLATE, KEY_FUTURE, KEY_PREDICTADVISE, predict
 
Fields inherited from class stella.sensor.CumulativeSensor
KEY_AVERAGE, KEY_MEMORY, KEY_PACK
 
Fields inherited from class stella.sensor.DataSensor
DEFRAWFORMAT, DEFREPORT, DEFSIGMAFORMAT, KEY_RAWFORMAT, KEY_REPORT, KEY_SIGMAFORMAT
 
Fields inherited from class stella.sensor.TimerTaskSensor
KEY_RESPAWN
 
Fields inherited from class stella.sensor.AbstractSensor
KEY_BIND, KEY_BINDNAME, KEY_CONVERT, KEY_DESCRIPTION, KEY_SENSORNAME
 
Fields inherited from class util.rmi.AbstractRmiCaster
ALTERNATEHOST, ALTERNATEPORT, KEY_EXPORTPORT, KEY_REGISTRYHOST, KEY_REGISTRYPORT
 
Fields inherited from class util.PropertyBundles
KEY_LOCALECOUNTRY, KEY_LOCALELANGUAGE, KEY_RESOURCEBUNDLES
 
Fields inherited from class util.PropertyResources
KEY_NOINITONCREATE, localurl, locate, POSTFIX_DIR, POSTFIX_EXT, POSTFIX_FILE, POSTFIX_LIST, POSTFIX_URL, urlset
 
Fields inherited from class util.PropertyContainer
KEY_LISTSEPARATOR, KEY_MAPKEYVALUECHAR, KEY_MAPSEPARATOR
 
Fields inherited from interface stella.rmi.RmiDataCaster
NAMING_EXTENSION
 
Fields inherited from interface util.PropertySupplying
CONFIG, KEY_CLASS
 
Fields inherited from interface util.ResourceSupplying
KEY_URLRESOURCES, KEY_URLUSECONFIG, KEY_URLUSECURRENT, KEY_URLUSEHOME
 
Constructor Summary
OneWireADSensor(Map prop)
          Constructs a new RS485 sensor.
 
Method Summary
 String getSensorInitInfo()
          Returns a string description of the sensor.
protected  double readSensor()
          Reads the sensor value.
 boolean registerDriver(Driver poller)
          Registers the serial server to this sensor.
protected  double retrieveValue(String read, int nr)
          Converts the input data string returned by the Nudam-module into a double value.
 boolean validReading()
          Returns true if the sensor reading is valid.
 
Methods inherited from class stella.sensor.WeatherSensor
addWeatherListener, conductOneMeasure, currentlyClear, currentlyRetarding, generateDataEvent, getMinClearUpTime, goodFromDerivative, goodFromPredict, goodFromRaw, goodFromSmooth, isDerivativeRetard, isPredictRetard, isRawRetard, isSmoothRetard, judgeWeather, notifyWeatherListener, removeWeatherListener, status
 
Methods inherited from class stella.sensor.DerivativeSensor
deriveAt, getDerivativeFormat, getDerivativeToggleInfo, getDerivator, getLastDerivative, isDerivativeAdvise, isDeriving, newData, regetDerive, registerDerivator
 
Methods inherited from class stella.sensor.SmoothingSensor
getLastSmooth, getSmoother, getSmoothToggleInfo, isSmoothAdvise, isSmoothing, regetSmooth, registerSmoother, smoothOne
 
Methods inherited from class stella.sensor.PredictiveSensor
getExtrapolation, getLastPredict, getPredictToggleInfo, isPredictAdvise, isPredicting, isReliable, predictFrom, regetPredict
 
Methods inherited from class stella.sensor.CumulativeSensor
cumulateOne, getLastRaw, getLastTime, getMaxSize, getMemory, getSize
 
Methods inherited from class stella.sensor.DataSensor
addDataListener, addRmiDataListener, exit, getRawFormat, getSigmaFormat, removeDataListener, removeRmiDataListener, report
 
Methods inherited from class stella.sensor.TimerTaskSensor
cancel, equals, getRawToggleInfo, getReading, getRespawn, getTimeOfRead, hashCode, initSensorTimerTask, isReady, regetRaw, setTimeOfRead, validReading
 
Methods inherited from class stella.sensor.AbstractSensor
addRmiErrorListener, createSensor, getBindName, getConvert, getSensorDescription, getSensorName, init, notifyErrorListener, removeRmiErrorListener, setConvert, toString
 
Methods inherited from class util.rmi.AbstractRmiCaster
bindAlternate, bindToRegistry, bindToRegistry, bindToRegistry, casterExit, casterExit, getBindName, isValid, unbindFromRegistry, unbindFromRegistry
 
Methods inherited from class util.rmi.RmiPropertyContainer
containsRemoteProperty, getRemoteProperties, getRemoteProperty, setRemoteProperty
 
Methods inherited from class util.PropertyBundles
clone, getLocalized, getLocalized, getLocalizedString, getLocalizedString, loadResource
 
Methods inherited from class util.PropertyResources
createFrom, createFrom, createFrom, getApplet, getAsResources, getLocalClassLoader, getPropertiesToKey, getPropertiesToKey, getResource, getResourceAsStream, getResourceFromKey, getResources, keyCreate, keyCreate, reload, setApplet
 
Methods inherited from class util.PropertyContainer
augment, augment, augment, defaultBoolean, defaultChar, defaultDouble, defaultFloat, defaultInt, defaultLong, defaultObject, defaultObject, defaultProperties, defaultProperty, getAsBoolean, getAsChar, getAsDouble, getAsEnums, getAsFloat, getAsInt, getAsList, getAsLong, getAsMap, getAsMap, getAsObject, getAsObject, getProperties, getProperty, has, isNew, parseObject, reload, removeProperty, rescanned, setObject, setProperties, setProperty, stringProperties
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface stella.sensor.Cumulating
cumulateOne, getLastRaw, getLastTime, getMaxSize, getSize, getTimeOfRead, regetRaw
 
Methods inherited from interface util.rmi.RmiCaster
bindToRegistry, isValid, unbindFromRegistry
 
Methods inherited from interface util.PropertySupplying
defaultBoolean, defaultChar, defaultDouble, defaultFloat, defaultInt, defaultLong, defaultObject, defaultObject, defaultProperties, defaultProperty, getAsBoolean, getAsChar, getAsDouble, getAsFloat, getAsInt, getAsList, getAsLong, getAsMap, getAsObject, getAsObject, getProperties, getProperty, has, parseObject, removeProperty, setObject, setProperty, stringProperties
 
Methods inherited from interface util.ResourceSupplying
getResource, getResourceAsStream, getResources
 

Field Detail

KEY_SERVER

public static final String KEY_SERVER
The key linked to the polling instance to read from.

See Also:
Constant Field Values

KEY_READ

public static final String KEY_READ
The key linked to the channel-read command of the Nudam modlue.

See Also:
Constant Field Values

KEY_CHANNEL

public static final String KEY_CHANNEL
The key for the channel number this sensor link to on the module.

See Also:
Constant Field Values

channel

private int channel
The integer equivalent of the channel key property.


serial

private transient OneWireDriver serial
The instance of the polling rs485 server.


valid

private boolean valid
True for valid readings, false otherwise.

Constructor Detail

OneWireADSensor

public OneWireADSensor(Map prop)
                throws RemoteException
Constructs a new RS485 sensor. The properties are checked for the presence of the KEY_READ and the KEY_CHANNEL keys. Construction fails if these keys are not present.

Throws:
IllegalArgumentException - If the necessary properties are not set.
NumberFormatException - If the channel number is not an int.
RemoteException
Method Detail

registerDriver

public boolean registerDriver(Driver poller)
Registers the serial server to this sensor. This method must be called at least once before data retrieval for an instance of this sensor is possible. Note that a weather station can only register the serial server by checking the sensor for the appropriate type and casting it. Note that this method returns false only if the driver handed over is not of the appropriate type, i.e. a PollingRS485Server.

Specified by:
registerDriver in interface DriverDepending
Returns:
True if registering at the driver was successful.

readSensor

protected double readSensor()
Reads the sensor value. If no serial server was registered to this sensor or the server is not reading the sensor's input, NaN is returned. Otherwise the serial server is queried for the value of its channel, PollingRS485Server#readChannel, whose return value is then fed, along with the channel number, to the retrieveValue(java.lang.String, int) method of the sensor.

Specified by:
readSensor in class TimerTaskSensor
See Also:
ConvertToPhysical

validReading

public boolean validReading()
Returns true if the sensor reading is valid. Shifts the decision to a query to the polling server whether the last polling query was succesful.
Might be flukey if the sensor respawn intervall is much higher than the polling time.

Specified by:
validReading in interface Telemetering

getSensorInitInfo

public String getSensorInitInfo()
Returns a string description of the sensor. The name is returned plus the serial server it listens to. The key properties of the switching behaviour, i.e. the toggling instance is reported, too.

Specified by:
getSensorInitInfo in interface Telemetering
Overrides:
getSensorInitInfo in class WeatherSensor

retrieveValue

protected double retrieveValue(String read,
                               int nr)
Converts the input data string returned by the Nudam-module into a double value. The channel number handed over is used to split the modul's returned string into the correct substring. The format of the string read in from the module always starts with a > character, then, for each channel read, a 7-character long double follows.

Parameters:
read - The string read in from the serial line
nr - The channel number (0-7) of the analog input.
Returns:
The formerly read value, if parsing was insuccessful.