Interface TemperatureContainer

All Superinterfaces:
OneWireSensor
All Known Implementing Classes:
OneWireContainer10, OneWireContainer21, OneWireContainer22, OneWireContainer26, OneWireContainer28, OneWireContainer30, OneWireContainer41, OneWireContainer42

public interface TemperatureContainer extends OneWireSensor
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:

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);
 
 
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());
   
 

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);
   }
 
 
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    high temperature alarm
    static final int
    low temperature alarm
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    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 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
    Gets the temperature alarm resolution in Celsius.
    double
    Gets the current temperature resolution in Celsius from the state data retrieved from the readDevice() 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 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