Interface ADContainer

All Superinterfaces:
OneWireSensor
All Known Implementing Classes:
OneWireContainer20, OneWireContainer26, OneWireContainer30, OneWireContainer41

public interface ADContainer extends OneWireSensor

Interface class for 1-Wire® devices that perform analog measuring operations. This class should be implemented for each A/D type 1-Wire device.

Features

  • Allows multi-channel voltage readings
  • Supports A/D Alarm enabling on devices with A/D Alarms
  • Supports selectable A/D ranges on devices with selectable ranges
  • Supports selectable A/D resolutions on devices with selectable resolutions

Usage

ADContainer extends OneWireSensor, so the general usage model applies to any ADContainer:

  1. readDevice()
  2. perform operations on the ADContainer
  3. writeDevice(byte[])

Consider this interaction with an ADContainer that reads from all of its A/D channels, then tries to set its high alarm on its first channel (channel 0):

 
     //adcontainer is a com.dalsemi.onewire.container.ADContainer
     byte[] state = adcontainer.readDevice();
     double[] voltages = new double[adcontainer.getNumberADChannels()];
     for (int i=0; i < adcontainer.getNumberADChannels(); i++)
     {
          adcontainer.doADConvert(i, state);
          voltages[i] = adc.getADVoltage(i, state);
     }
     if (adcontainer.hasADAlarms())
     {
          double highalarm = adcontainer.getADAlarm(0, ADContainer.ALARM_HIGH, state);
          adcontainer.setADAlarm(0, ADContainer.ALARM_HIGH, highalarm + 1.0, state);
          adcontainer.writeDevice(state);
     }

 
 
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    Indicates the high AD alarm.
    static final int
    Indicates the low AD alarm.
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    Checks to see if this A/D supports doing multiple voltage conversions at the same time.
    void
    doADConvert(boolean[] doConvert, byte[] state)
    Performs voltage conversion on one or more specified channels.
    void
    doADConvert(int channel, byte[] state)
    Performs a voltage conversion on one specified channel.
    double
    getADAlarm(int channel, int alarmType, byte[] state)
    Reads the value of the specified A/D alarm on the specified channel.
    boolean
    getADAlarmEnable(int channel, int alarmType, byte[] state)
    Checks to see if the specified alarm on the specified channel is enabled.
    double
    getADRange(int channel, byte[] state)
    Returns the currently selected range for the specified channel.
    double[]
    getADRanges(int channel)
    Gets an array of available ranges for the specified A/D channel.
    double
    getADResolution(int channel, byte[] state)
    Returns the currently selected resolution for the specified channel.
    double[]
    getADResolutions(int channel, double range)
    Gets an array of available resolutions based on the specified range on the specified A/D channel.
    double[]
    getADVoltage(byte[] state)
    Reads the value of the voltages after a doADConvert(boolean[],byte[]) method call.
    double
    getADVoltage(int channel, byte[] state)
    Reads the value of the voltages after a doADConvert(int,byte[]) method call.
    int
    Gets the number of channels supported by this A/D.
    boolean
    hasADAlarmed(int channel, int alarmType, byte[] state)
    Checks the state of the specified alarm on the specified channel.
    boolean
    Checks to see if this A/D measuring device has high/low alarms.
    void
    setADAlarm(int channel, int alarmType, double alarm, byte[] state)
    Sets the voltage value of the specified alarm on the specified channel.
    void
    setADAlarmEnable(int channel, int alarmType, boolean alarmEnable, byte[] state)
    Enables or disables the specified alarm on the specified channel.
    void
    setADRange(int channel, double range, byte[] state)
    Sets the input range for the specified channel.
    void
    setADResolution(int channel, double resolution, byte[] state)
    Sets the conversion resolution value for the specified channel.

    Methods inherited from interface com.dalsemi.onewire.container.OneWireSensor

    readDevice, writeDevice
  • Field Details

  • Method Details

    • getNumberADChannels

      int getNumberADChannels()
      Gets the number of channels supported by this A/D. Channel specific methods will use a channel number specified by an integer from [0 to (getNumberADChannels() - 1)].
      Returns:
      the number of channels
    • hasADAlarms

      boolean hasADAlarms()
      Checks to see if this A/D measuring device has high/low alarms.
      Returns:
      true if this device has high/low trip alarms
    • getADRanges

      double[] getADRanges(int channel)
      Gets an array of available ranges for the specified A/D channel.
      Parameters:
      channel - channel number in the range [0 to (getNumberADChannels() - 1)]
      Returns:
      array indicating the available ranges starting from the largest range to the smallest range
      See Also:
    • getADResolutions

      double[] getADResolutions(int channel, double range)
      Gets an array of available resolutions based on the specified range on the specified A/D channel.
      Parameters:
      channel - channel number in the range [0 to (getNumberADChannels() - 1)]
      range - A/D range setting from the getADRanges(int) method
      Returns:
      array indicating the available resolutions on this channel for this range
      See Also:
    • canADMultiChannelRead

      boolean canADMultiChannelRead()
      Checks to see if this A/D supports doing multiple voltage conversions at the same time.
      Returns:
      true if the device can do multi-channel voltage reads
      See Also:
    • doADConvert

      void doADConvert(int channel, byte[] state) throws OneWireIOException, OneWireException
      Performs a voltage conversion on one specified channel. Use the method getADVoltage(int,byte[]) to read the result of this conversion, using the same channel argument as this method uses.
      Parameters:
      channel - channel number in the range [0 to (getNumberADChannels() - 1)]
      state - current state of the device returned from readDevice()
      Throws:
      OneWireIOException - on a 1-Wire communication error such as no 1-Wire device present. This could be caused by a physical interruption in the 1-Wire Network due to shorts or a newly arriving 1-Wire device issuing a 'presence pulse'. This is usually a recoverable error.
      OneWireException - on a communication or setup error with the 1-Wire adapter. This is usually a non-recoverable error.
      See Also:
    • doADConvert

      void doADConvert(boolean[] doConvert, byte[] state) throws OneWireIOException, OneWireException
      Performs voltage conversion on one or more specified channels. The method getADVoltage(byte[]) can be used to read the result of the conversion(s). This A/D must support multi-channel read, reported by canADMultiChannelRead(), if more then 1 channel is specified.
      Parameters:
      doConvert - array of size getNumberADChannels() representing which channels should perform conversions
      state - current state of the device returned from readDevice()
      Throws:
      OneWireIOException - on a 1-Wire communication error such as no 1-Wire device present. This could be caused by a physical interruption in the 1-Wire Network due to shorts or a newly arriving 1-Wire device issuing a 'presence pulse'. This is usually a recoverable error.
      OneWireException - on a communication or setup error with the 1-Wire adapter. This is usually a non-recoverable error.
      See Also:
    • getADVoltage

      double[] getADVoltage(byte[] state) throws OneWireIOException, OneWireException
      Reads the value of the voltages after a doADConvert(boolean[],byte[]) method call. This A/D device must support multi-channel reading, reported by canADMultiChannelRead(), if more than 1 channel conversion was attempted by doADConvert().
      Parameters:
      state - current state of the device returned from readDevice()
      Returns:
      array with the voltage values for all channels
      Throws:
      OneWireIOException - on a 1-Wire communication error such as no 1-Wire device present. This could be caused by a physical interruption in the 1-Wire Network due to shorts or a newly arriving 1-Wire device issuing a 'presence pulse'. This is usually a recoverable error.
      OneWireException - on a communication or setup error with the 1-Wire adapter. This is usually a non-recoverable error.
      See Also:
    • getADVoltage

      double getADVoltage(int channel, byte[] state) throws OneWireIOException, OneWireException
      Reads the value of the voltages after a doADConvert(int,byte[]) method call. If more than one channel has been read it is more efficient to use the getADVoltage(byte[]) method that returns all channel voltage values.
      Parameters:
      channel - channel number in the range [0 to (getNumberADChannels() - 1)]
      state - current state of the device returned from readDevice()
      Returns:
      the voltage value for the specified channel
      Throws:
      OneWireIOException - on a 1-Wire communication error such as no 1-Wire device present. This could be caused by a physical interruption in the 1-Wire Network due to shorts or a newly arriving 1-Wire device issuing a 'presence pulse'. This is usually a recoverable error.
      OneWireException - on a communication or setup error with the 1-Wire adapter. This is usually a non-recoverable error.
      See Also:
    • getADAlarm

      double getADAlarm(int channel, int alarmType, byte[] state) throws OneWireException
      Reads the value of the specified A/D alarm on the specified channel. Not all A/D devices have alarms. Check to see if this device has alarms first by calling the hasADAlarms() method.
      Parameters:
      channel - channel number in the range [0 to (getNumberADChannels() - 1)]
      alarmType - the desired alarm, ALARM_HIGH or ALARM_LOW
      state - current state of the device returned from readDevice()
      Returns:
      the alarm value in volts
      Throws:
      OneWireException - if this device does not have A/D alarms
      See Also:
    • getADAlarmEnable

      boolean getADAlarmEnable(int channel, int alarmType, byte[] state) throws OneWireException
      Checks to see if the specified alarm on the specified channel is enabled. Not all A/D devices have alarms. Check to see if this device has alarms first by calling the hasADAlarms() method.
      Parameters:
      channel - channel number in the range [0 to (getNumberADChannels() - 1)]
      alarmType - the desired alarm, ALARM_HIGH or ALARM_LOW
      state - current state of the device returned from readDevice()
      Returns:
      true if specified alarm is enabled
      Throws:
      OneWireException - if this device does not have A/D alarms
      See Also:
    • hasADAlarmed

      boolean hasADAlarmed(int channel, int alarmType, byte[] state) throws OneWireException
      Checks the state of the specified alarm on the specified channel. Not all A/D devices have alarms. Check to see if this device has alarms first by calling the hasADAlarms() method.
      Parameters:
      channel - channel number in the range [0 to (getNumberADChannels() - 1)]
      alarmType - the desired alarm, ALARM_HIGH or ALARM_LOW
      state - current state of the device returned from readDevice()
      Returns:
      true if specified alarm occurred
      Throws:
      OneWireException - if this device does not have A/D alarms
      See Also:
    • getADResolution

      double getADResolution(int channel, byte[] state)
      Returns the currently selected resolution for the specified channel. This device may not have selectable resolutions, though this method will return a valid value.
      Parameters:
      channel - channel number in the range [0 to (getNumberADChannels() - 1)]
      state - current state of the device returned from readDevice()
      Returns:
      the current resolution of channel in volts
      See Also:
    • getADRange

      double getADRange(int channel, byte[] state)
      Returns the currently selected range for the specified channel. This device may not have selectable ranges, though this method will return a valid value.
      Parameters:
      channel - channel number in the range [0 to (getNumberADChannels() - 1)]
      state - current state of the device returned from readDevice()
      Returns:
      the input voltage range
      See Also:
    • setADAlarm

      void setADAlarm(int channel, int alarmType, double alarm, byte[] state) throws OneWireException
      Sets the voltage value of the specified alarm on the specified channel. The method writeDevice() must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice(). Also note that not all A/D devices have alarms. Check to see if this device has alarms first by calling the hasADAlarms() method.
      Parameters:
      channel - channel number in the range [0 to (getNumberADChannels() - 1)]
      alarmType - the desired alarm, ALARM_HIGH or ALARM_LOW
      alarm - new alarm value
      state - current state of the device returned from readDevice()
      Throws:
      OneWireException - if this device does not have A/D alarms
      See Also:
    • setADAlarmEnable

      void setADAlarmEnable(int channel, int alarmType, boolean alarmEnable, byte[] state) throws OneWireException
      Enables or disables the specified alarm on the specified channel. The method writeDevice() must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice(). Also note that not all A/D devices have alarms. Check to see if this device has alarms first by calling the hasADAlarms() method.
      Parameters:
      channel - channel number in the range [0 to (getNumberADChannels() - 1)]
      alarmType - the desired alarm, ALARM_HIGH or ALARM_LOW
      alarmEnable - true to enable the alarm, false to disable
      state - current state of the device returned from readDevice()
      Throws:
      OneWireException - if this device does not have A/D alarms
      See Also:
    • setADResolution

      void setADResolution(int channel, double resolution, byte[] state)
      Sets the conversion resolution value for the specified channel. The method writeDevice() must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice(). Also note that not all A/D devices have alarms. Check to see if this device has alarms first by calling the hasADAlarms() method.
      Parameters:
      channel - channel number in the range [0 to (getNumberADChannels() - 1)]
      resolution - one of the resolutions returned by getADResolutions(int,double)
      state - current state of the device returned from readDevice()
      See Also:
    • setADRange

      void setADRange(int channel, double range, byte[] state)
      Sets the input range for the specified channel. The method writeDevice() must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice(). Also note that not all A/D devices have alarms. Check to see if this device has alarms first by calling the hasADAlarms() method.
      Parameters:
      channel - channel number in the range [0 to (getNumberADChannels() - 1)]
      range - one of the ranges returned by getADRanges(int)
      state - current state of the device returned from readDevice()
      See Also: