|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
1-Wire temperature interface class for basic temperature measuring operations. This class should be implemented for each temperature type 1-Wire device.
The TemperatureContainer methods can be organized into the following categories:
tc
':
// Read High and Low Alarms
if (!tc.hasTemperatureAlarms())
System.out.println("Temperature alarms not supported");
else
{
byte[] state = tc.readDevice();
double alarmLow = tc.getTemperatureAlarm(TemperatureContainer.ALARM_LOW, state);
double alarmHigh = tc.getTemperatureAlarm(TemperatureContainer.ALARM_HIGH, state);
System.out.println("Alarm: High = " + alarmHigh + ", Low = " + alarmLow);
} }
tc
':
double lastTemperature;
// get the current resolution and other settings of the device (done only once)
byte[] state = tc.readDevice();
do // loop to read the temp
{
// perform a temperature conversion
tc.doTemperatureConvert(state);
// read the result of the conversion
state = tc.readDevice();
// extract the result out of state
lastTemperature = tc.getTemperature(state);
...
}while (!done);
The reason the conversion and the reading are separated
is that one may want to do a conversion without reading
the result. One could take advantage of the alarm features
of a device by setting a threshold and doing conversions
until the device is alarming. For example:
// get the current resolution of the device
byte [] state = tc.readDevice();
// set the trips
tc.setTemperatureAlarm(TemperatureContainer.ALARM_HIGH, 50, state);
tc.setTemperatureAlarm(TemperatureContainer.ALARM_LOW, 20, state);
tc.writeDevice(state);
do // loop on conversions until an alarm occurs
{
tc.doTemperatureConvert(state);
} while (!tc.isAlarming());
tc
':
byte[] state = tc.readDevice();
if (tc.hasSelectableTemperatureResolution())
{
double[] resolution = tc.getTemperatureResolutions();
tc.setTemperatureResolution(resolution [resolution.length - 1], state);
tc.writeDevice(state);
}
OneWireContainer10
,
OneWireContainer21
,
OneWireContainer26
,
OneWireContainer28
,
OneWireContainer30
Field Summary | |
static int |
ALARM_HIGH
high temperature alarm |
static int |
ALARM_LOW
low temperature alarm |
Method Summary | |
void |
doTemperatureConvert(byte[] state)
Performs a temperature conversion. |
double |
getMaxTemperature()
Gets the maximum temperature in Celsius. |
double |
getMinTemperature()
Gets the minimum temperature in Celsius. |
double |
getTemperature(byte[] state)
Gets the temperature value in Celsius from the state
data retrieved from the readDevice() method. |
double |
getTemperatureAlarm(int alarmType,
byte[] state)
Gets the specified temperature alarm value in Celsius from the state data retrieved from the
readDevice() method. |
double |
getTemperatureAlarmResolution()
Gets the temperature alarm resolution in Celsius. |
double |
getTemperatureResolution(byte[] state)
Gets the current temperature resolution in Celsius from the state data retrieved from the readDevice()
method. |
double[] |
getTemperatureResolutions()
Get an array of available temperature resolutions in Celsius. |
boolean |
hasSelectableTemperatureResolution()
Checks to see if this device has selectable temperature resolution. |
boolean |
hasTemperatureAlarms()
Checks to see if this temperature measuring device has high/low trip alarms. |
void |
setTemperatureAlarm(int alarmType,
double alarmValue,
byte[] state)
Sets the temperature alarm value in Celsius in the provided state data. |
void |
setTemperatureResolution(double resolution,
byte[] state)
Sets the current temperature resolution in Celsius in the provided state data. |
Methods inherited from interface com.dalsemi.onewire.container.OneWireSensor |
readDevice, writeDevice |
Field Detail |
public static final int ALARM_HIGH
public static final int ALARM_LOW
Method Detail |
public boolean hasTemperatureAlarms()
true
if this TemperatureContainer
has high/low trip alarmsgetTemperatureAlarm(int, byte[])
,
setTemperatureAlarm(int, double, byte[])
public boolean hasSelectableTemperatureResolution()
true
if this TemperatureContainer
has selectable temperature resolutiongetTemperatureResolution(byte[])
,
getTemperatureResolutions()
,
setTemperatureResolution(double, byte[])
public double[] getTemperatureResolutions()
hasSelectableTemperatureResolution()
,
getTemperatureResolution(byte[])
,
setTemperatureResolution(double, byte[])
public double getTemperatureAlarmResolution() throws OneWireException
OneWireException
- Device does not support temperature
alarmshasTemperatureAlarms()
,
getTemperatureAlarm(int, byte[])
,
setTemperatureAlarm(int, double, byte[])
public double getMaxTemperature()
public double getMinTemperature()
public void doTemperatureConvert(byte[] state) throws OneWireIOException, OneWireException
state
- byte array with device state informationOneWireException
- Part could not be found [ fatal ]OneWireIOException
- Data wasn't transferred properly [ recoverable ]public double getTemperature(byte[] state) throws OneWireIOException
state
data retrieved from the readDevice()
method.state
- byte array with device state informationdoTemperatureConvert()
OneWireIOException
- In the case of invalid temperature datapublic double getTemperatureAlarm(int alarmType, byte[] state) throws OneWireException
state
data retrieved from the
readDevice()
method.alarmType
- valid value: ALARM_HIGH
or
ALARM_LOW
state
- byte array with device state informationOneWireException
- Device does not support temperature
alarmshasTemperatureAlarms()
,
setTemperatureAlarm(int, double, byte[])
public double getTemperatureResolution(byte[] state)
state
data retrieved from the readDevice()
method.state
- byte array with device state informationhasSelectableTemperatureResolution()
,
getTemperatureResolutions()
,
setTemperatureResolution(double, byte[])
public void setTemperatureAlarm(int alarmType, double alarmValue, byte[] state) throws OneWireException
state
data.
Use the method writeDevice()
with
this data to finalize the change to the device.alarmType
- valid value: ALARM_HIGH
or
ALARM_LOW
alarmValue
- alarm trip value in Celsiusstate
- byte array with device state informationOneWireException
- Device does not support temperature
alarmshasTemperatureAlarms()
,
getTemperatureAlarm(int, byte[])
public void setTemperatureResolution(double resolution, byte[] state) throws OneWireException
state
data. Use the method writeDevice()
with this data to finalize the change to the device.resolution
- temperature resolution in Celsiusstate
- byte array with device state informationOneWireException
- Device does not support selectable
temperature resolutionhasSelectableTemperatureResolution()
,
getTemperatureResolution(byte[])
,
getTemperatureResolutions()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |