stella.sensor
Class HealthSensor
java.lang.Object
util.PropertyContainer
util.PropertyResources
util.PropertyBundles
util.rmi.RmiPropertyContainer
util.rmi.AbstractRmiCaster
stella.sensor.AbstractSensor
stella.sensor.TimerTaskSensor
stella.sensor.DataSensor
stella.sensor.CumulativeSensor
stella.sensor.PredictiveSensor
stella.sensor.SmoothingSensor
stella.sensor.DerivativeSensor
stella.sensor.WeatherSensor
stella.sensor.HealthSensor
- All Implemented Interfaces:
- Cloneable, Remote, Caster, DataCaster, RmiDataCaster, RmiErrorCaster, Cumulating, Deriving, Predicting, Smoothing, Telemetering, WeatherJudging, WeatherCaster, ExitCleaning, Initializable, LocalizedSupplying, PropertySupplying, ResourceSupplying, RmiCaster, RmiPropertyBearing
public class HealthSensor
- extends WeatherSensor
A class to monitor voltage and temperature of the computer core. To allow
different sensors to be derived from the same base class the value
KEY_SYSTEMSENSOR must be one of the valid /proc-paths used
by the system's chipset. It default to the CPU temperature on a
via686a sensor chipset. On the default system valid proc paths are
(derived from a via686a sensor chip):
- via686a-isa-6000/in0: CPU power supply voltage.
- via686a-isa-6000/in2: I/O power supply voltage.
- via686a-isa-6000/in3: Voltage on the +5 Volts channel.
- via686a-isa-6000/in4: Voltage on the +12 Volts channel.
- via686a-isa-6000/temp1: CPU temperature.
- via686a-isa-6000/temp2: System (mainboard) temperature.
- via686a-isa-6000/fan1: rotation rate of the CPU fan.
- via686a-isa-6000/fan2: rotation rate of the power supply fan.
Not always connected.
All via686a register readings are treated as physical quantities. If you have
to port the class to other systems you may be forced to write your own
conversions if you want to stick to the ConvertToPhysical and/or
PhysicalDerivative functionality.
| 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 |
|
Constructor Summary |
HealthSensor(Map qualify)
Constructs a new health sensor with the specified properties. |
| Methods inherited from class stella.sensor.WeatherSensor |
addWeatherListener, conductOneMeasure, currentlyClear, currentlyRetarding, generateDataEvent, getMinClearUpTime, getSensorInitInfo, goodFromDerivative, goodFromPredict, goodFromRaw, goodFromSmooth, isDerivativeRetard, isPredictRetard, isRawRetard, isSmoothRetard, judgeWeather, notifyWeatherListener, removeWeatherListener, status |
| 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.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 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 |
KEY_SYSTEMSENSOR
public static final String KEY_SYSTEMSENSOR
- The key defining the system sensor to read.
- See Also:
- Constant Field Values
KEY_PROCPATH
public static final String KEY_PROCPATH
- The key defining the proc path to the system sensors.
- See Also:
- Constant Field Values
DEFSYSTEMSENSOR
private static final String DEFSYSTEMSENSOR
- The default sensor, default chipset.
- See Also:
- Constant Field Values
DEFPROCPATH
private static final File DEFPROCPATH
- The system path that should be identical on different linux systems.
HealthSensor
public HealthSensor(Map qualify)
throws RemoteException
- Constructs a new health sensor with the specified properties. Note that
this properties should contain the name of the system sensor to read.
- Throws:
RemoteException
getSystemSensor
public File getSystemSensor()
- Returns the system sensor as a File object. Reading the system sensor can
be done by opening an InputStream on the returned File.
readSensor
protected double readSensor()
- Reads the system sensor specified by the
KEY_SYSTEMSENSOR. The
system sensors are readable via the /proc file system. Each
system sensor corresponds to a File object in the /proc
file system. Note that this file system is very system depended
and porting this health sensor to other OSs may cause problems.
The general contract for reading the sensor information out of the file
is that the last double value read is the actual sensor information.
As an implementation detail it should be noted that on our redhat linux
system the system sensor can only be read if a BufferedReader is
asociated with the input stream. Note also that querrying the stream with
the InputStream.available() or the BufferedReader's
BufferedReader.ready() will return 0 or false,
respectively, independend of the state of the stream. Reading less
information than a whole line at once from the stream blocks further
input and should be avoided.
- Specified by:
readSensor in class TimerTaskSensor
- See Also:
ConvertToPhysical
validReading
public boolean validReading()
- A health sensor is always valid if the proc path and the system sensor
are given.