Package com.dalsemi.onewire.container
Interface TemperatureContainer
- All Superinterfaces:
OneWireSensor
- All Known Implementing Classes:
OneWireContainer10
,OneWireContainer21
,OneWireContainer22
,OneWireContainer26
,OneWireContainer28
,OneWireContainer30
,OneWireContainer41
,OneWireContainer42
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:
- Information
- Options
- I/O
Usage
-
Example 1
Display some features of TemperatureContainer instance '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); } }
Example 2
Gets temperature reading from a TemperatureContainer instance '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);
// 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());
Example 3
Sets the temperature resolution of a TemperatureContainer instance 'tc
':byte[] state = tc.readDevice(); if (tc.hasSelectableTemperatureResolution()) { double[] resolution = tc.getTemperatureResolutions(); tc.setTemperatureResolution(resolution [resolution.length - 1], state); tc.writeDevice(state); }
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int
high temperature alarmstatic final int
low temperature alarm -
Method Summary
Modifier and TypeMethodDescriptionvoid
doTemperatureConvert
(byte[] state) Performs a temperature conversion.double
Gets the maximum temperature in Celsius.double
Gets the minimum temperature in Celsius.double
getTemperature
(byte[] state) Gets the temperature value in Celsius from thestate
data retrieved from thereadDevice()
method.double
getTemperatureAlarm
(int alarmType, byte[] state) Gets the specified temperature alarm value in Celsius from thestate
data retrieved from thereadDevice()
method.double
Gets the temperature alarm resolution in Celsius.double
getTemperatureResolution
(byte[] state) Gets the current temperature resolution in Celsius from thestate
data retrieved from thereadDevice()
method.double[]
Get an array of available temperature resolutions in Celsius.boolean
Checks to see if this device has selectable temperature resolution.boolean
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 providedstate
data.void
setTemperatureResolution
(double resolution, byte[] state) Sets the current temperature resolution in Celsius in the providedstate
data.Methods inherited from interface com.dalsemi.onewire.container.OneWireSensor
readDevice, writeDevice
-
Field Details
-
ALARM_HIGH
static final int ALARM_HIGHhigh temperature alarm- See Also:
-
ALARM_LOW
static final int ALARM_LOWlow temperature alarm- See Also:
-
-
Method Details
-
hasTemperatureAlarms
boolean hasTemperatureAlarms()Checks to see if this temperature measuring device has high/low trip alarms.- Returns:
true
if thisTemperatureContainer
has high/low trip alarms- See Also:
-
hasSelectableTemperatureResolution
boolean hasSelectableTemperatureResolution()Checks to see if this device has selectable temperature resolution.- Returns:
true
if thisTemperatureContainer
has selectable temperature resolution- See Also:
-
getTemperatureResolutions
double[] getTemperatureResolutions()Get an array of available temperature resolutions in Celsius.- Returns:
- byte array of available temperature resolutions in Celsius with minimum resolution as the first element and maximum resolution as the last element.
- See Also:
-
getTemperatureAlarmResolution
Gets the temperature alarm resolution in Celsius.- Returns:
- temperature alarm resolution in Celsius for this 1-wire device
- Throws:
OneWireException
- Device does not support temperature alarms- See Also:
-
getMaxTemperature
double getMaxTemperature()Gets the maximum temperature in Celsius.- Returns:
- maximum temperature in Celsius for this 1-wire device
-
getMinTemperature
double getMinTemperature()Gets the minimum temperature in Celsius.- Returns:
- minimum temperature in Celsius for this 1-wire device
-
doTemperatureConvert
Performs a temperature conversion.- Parameters:
state
- byte array with device state information- Throws:
OneWireException
- Part could not be found [ fatal ]OneWireIOException
- Data wasn't transferred properly [ recoverable ]
-
getTemperature
Gets the temperature value in Celsius from thestate
data retrieved from thereadDevice()
method.- Parameters:
state
- byte array with device state information- Returns:
- temperature in Celsius from the last
doTemperatureConvert()
- Throws:
OneWireIOException
- In the case of invalid temperature data
-
getTemperatureAlarm
Gets the specified temperature alarm value in Celsius from thestate
data retrieved from thereadDevice()
method.- Parameters:
alarmType
- valid value:ALARM_HIGH
orALARM_LOW
state
- byte array with device state information- Returns:
- temperature alarm trip values in Celsius for this 1-wire device
- Throws:
OneWireException
- Device does not support temperature alarms- See Also:
-
getTemperatureResolution
double getTemperatureResolution(byte[] state) Gets the current temperature resolution in Celsius from thestate
data retrieved from thereadDevice()
method.- Parameters:
state
- byte array with device state information- Returns:
- temperature resolution in Celsius for this 1-wire device
- See Also:
-
setTemperatureAlarm
Sets the temperature alarm value in Celsius in the providedstate
data. Use the methodwriteDevice()
with this data to finalize the change to the device.- Parameters:
alarmType
- valid value:ALARM_HIGH
orALARM_LOW
alarmValue
- alarm trip value in Celsiusstate
- byte array with device state information- Throws:
OneWireException
- Device does not support temperature alarms- See Also:
-
setTemperatureResolution
Sets the current temperature resolution in Celsius in the providedstate
data. Use the methodwriteDevice()
with this data to finalize the change to the device.- Parameters:
resolution
- temperature resolution in Celsiusstate
- byte array with device state information- Throws:
OneWireException
- Device does not support selectable temperature resolution- See Also:
-