Class OneWireContainer41

java.lang.Object
com.dalsemi.onewire.container.OneWireContainer
com.dalsemi.onewire.container.OneWireContainer41
All Implemented Interfaces:
ADContainer, ClockContainer, HumidityContainer, MissionContainer, OneWireSensor, PasswordContainer, TemperatureContainer

1-Wire® container for a Temperature and Humidity/A-D Logging iButton, DS1922. This container encapsulates the functionality of the 1-Wire family type 22 (hex).

Features

  • Logs up to 8192 consecutive temperature/humidity/A-D measurements in nonvolatile, read-only memory
  • Real-Time clock
  • Programmable high and low temperature alarms
  • Programmable high and low humidity/A-D alarms
  • Automatically 'wakes up' and logs temperature at user-programmable intervals
  • 4096 bits of general-purpose read/write nonvolatile memory
  • 256-bit scratchpad ensures integrity of data transfer
  • On-chip 16-bit CRC generator to verify read operations

Memory

The memory can be accessed through the objects that are returned from the getMemoryBanks method.

The following is a list of the MemoryBank instances that are returned:
  • Scratchpad with CRC and Password support
    • Implements MemoryBank, PagedMemoryBank
    • Size 32 starting at physical address 0
    • Features Read/Write not-general-purpose volatile
    • Pages 1 page of length 32 bytes
    • Page Features page-device-CRC
    • Extra information for each page Target address, offset, length 3
    • Supports Copy Scratchpad With Password command
  • Main Memory
    • Implements MemoryBank, PagedMemoryBank
    • Size 512 starting at physical address 0
    • Features Read/Write general-purpose non-volatile
    • Pages 16 pages of length 32 bytes giving 29 bytes Packet data payload
    • Page Features page-device-CRC
    • Read-Only and Read/Write password if enabled, passwords are required for reading from and writing to the device.
  • Register control
    • Implements MemoryBank, PagedMemoryBank
    • Size 64 starting at physical address 512
    • Features Read/Write not-general-purpose non-volatile
    • Pages 2 pages of length 32 bytes
    • Page Features page-device-CRC
    • Read-Only and Read/Write password if enabled, passwords are required for reading from and writing to the device.
  • Temperature/Humidity/A-D log
    • Implements MemoryBank, PagedMemoryBank
    • Size 8192 starting at physical address 4096
    • Features Read-only not-general-purpose non-volatile
    • Pages 256 pages of length 32 bytes
    • Page Features page-device-CRC
    • Read-Only and Read/Write password if enabled, passwords are required for reading from and writing to the device.

Usage

The code below starts a mission with the following characteristics:

  • Rollover flag enabled.
  • Sets both channels (temperature and humidity) to low resolution
  • High temperature alarm of 28.0@htmlonly invalid input: '&#176'C @endhtmlonly and a low temperature alarm of 23.0@htmlonly invalid input: '&#176'C @endhtmlonly.
  • High humidity alarm of 70%RH and a low temperature alarm of 20%RH.
  • Sets the Real-Time Clock to the host system's clock.
  • The mission will start in 2 minutes.
  • A sample rate of 1.5 minutes.

 
       // "ID" is a byte array of size 8 with an address of a part we
       // have already found with family code 22 hex
       // "access" is a DSPortAdapter
       OneWireContainer41 ds1922 = (OneWireContainer41)access.getDeviceContainer(ID);
       ds1922.setupContainer(access,ID);
       //  stop the currently running mission, if there is one
       ds1922.stopMission();
       //  clear the previous mission results
       ds1922.clearMemory();
       //  set the high temperature alarm to 28 C
       ds1922.setMissionAlarm(ds1922.TEMPERATURE_CHANNEL, ds1922.ALARM_HIGH, 28);
       ds1922.setMissionAlarmEnable(ds1922.TEMPERATURE_CHANNEL,
          ds1922.ALARM_HIGH, true);
       //  set the low temperature alarm to 23 C
       ds1922.setMissionAlarm(ds1922.TEMPERATURE_CHANNEL, ds1922.ALARM_LOW, 23);
       ds1922.setMissionAlarmEnable(ds1922.TEMPERATURE_CHANNEL,
          ds1922.ALARM_LOW, true);
       //  set the high humidity alarm to 70%RH
       ds1922.setMissionAlarm(ds1922.DATA_CHANNEL, ds1922.ALARM_HIGH, 70);
       ds1922.setMissionAlarmEnable(ds1922.DATA_CHANNEL,
          ds1922.ALARM_HIGH, true);
       //  set the low humidity alarm to 20%RH
       ds1922.setMissionAlarm(ds1922.DATA_CHANNEL, ds1922.ALARM_LOW, 20);
       ds1922.setMissionAlarmEnable(ds1922.DATA_CHANNEL,
          ds1922.ALARM_LOW, true);
       // set both channels to low resolution.
       ds1922.setMissionResolution(ds1922.TEMPERATURE_CHANNEL,
          ds1922.getMissionResolutions()[0]);
       ds1922.setMissionResolution(ds1922.DATA_CHANNEL,
          ds1922.getMissionResolutions()[0]);
       // enable both channels
       boolean[] enableChannel = new boolean[ds1922.getNumberMissionChannels()];
       enableChannel[ds1922.TEMPERATURE_CHANNEL] = true;
       enableChannel[ds1922.DATA_CHANNEL] = true;
       //  now start the mission with a sample rate of 1 minute
       ds1922.startNewMission(90, 2, true, true, enableChannel);
 
 

The following code processes the mission log:

       System.out.println("Temperature Readings");
       if(ds1922.getMissionChannelEnable(owc.TEMPERATURE_CHANNEL))
       {
          int dataCount =
             ds1922.getMissionSampleCount(ds1922.TEMPERATURE_CHANNEL);
          System.out.println("SampleCount = " + dataCount);
          for(int i=0; i<dataCount; i++)
          {
             System.out.println(
                ds1922.getMissionSample(ds1922.TEMPERATURE_CHANNEL, i));
          }
       }
       System.out.println("Humidity Readings");
       if(ds1922.getMissionChannelEnable(owc.DATA_CHANNEL))
       {
          int dataCount =
             ds1922.getMissionSampleCount(ds1922.DATA_CHANNEL);
          System.out.println("SampleCount = " + dataCount);
          for(int i=0; i<dataCount; i++)
          {
             System.out.println(
                ds1922.getMissionSample(ds1922.DATA_CHANNEL, i));
          }
       }
 

Also see the usage examples in the TemperatureContainer and ClockContainer and ADContainer interfaces.

For examples regarding memory operations,

DataSheet

DataSheet link is unavailable at time of publication. Please visit the website and search for DS1922 or DS2422 to find the current datasheet.

Maxim Website
See Also:
  • Field Details

    • TEMPERATURE_CHANNEL

      public static final int TEMPERATURE_CHANNEL
      Refers to the Temperature Channel for this device
      See Also:
    • DATA_CHANNEL

      public static final int DATA_CHANNEL
      Refers to the Humidity/A-D Channel for this device
      See Also:
    • WRITE_SCRATCHPAD_COMMAND

      public static final byte WRITE_SCRATCHPAD_COMMAND
      1-Wire command for Write Scratchpad
      See Also:
    • READ_SCRATCHPAD_COMMAND

      public static final byte READ_SCRATCHPAD_COMMAND
      1-Wire command for Read Scratchpad
      See Also:
    • COPY_SCRATCHPAD_PW_COMMAND

      public static final byte COPY_SCRATCHPAD_PW_COMMAND
      1-Wire command for Copy Scratchpad With Password
      See Also:
    • READ_MEMORY_CRC_PW_COMMAND

      public static final byte READ_MEMORY_CRC_PW_COMMAND
      1-Wire command for Read Memory CRC With Password
      See Also:
    • CLEAR_MEMORY_PW_COMMAND

      public static final byte CLEAR_MEMORY_PW_COMMAND
      1-Wire command for Clear Memory With Password
      See Also:
    • START_MISSION_PW_COMMAND

      public static final byte START_MISSION_PW_COMMAND
      1-Wire command for Start Mission With Password
      See Also:
    • STOP_MISSION_PW_COMMAND

      public static final byte STOP_MISSION_PW_COMMAND
      1-Wire command for Stop Mission With Password
      See Also:
    • FORCED_CONVERSION

      public static final byte FORCED_CONVERSION
      1-Wire command for Forced Conversion
      See Also:
    • RTC_TIME

      public static final int RTC_TIME
      Address of the Real-time Clock Time value
      See Also:
    • RTC_DATE

      public static final int RTC_DATE
      Address of the Real-time Clock Date value
      See Also:
    • SAMPLE_RATE

      public static final int SAMPLE_RATE
      Address of the Sample Rate Register
      See Also:
    • TEMPERATURE_LOW_ALARM_THRESHOLD

      public static final int TEMPERATURE_LOW_ALARM_THRESHOLD
      Address of the Temperature Low Alarm Register
      See Also:
    • TEMPERATURE_HIGH_ALARM_THRESHOLD

      public static final int TEMPERATURE_HIGH_ALARM_THRESHOLD
      Address of the Temperature High Alarm Register
      See Also:
    • DATA_LOW_ALARM_THRESHOLD

      public static final int DATA_LOW_ALARM_THRESHOLD
      Address of the Data Low Alarm Register
      See Also:
    • DATA_HIGH_ALARM_THRESHOLD

      public static final int DATA_HIGH_ALARM_THRESHOLD
      Address of the Data High Alarm Register
      See Also:
    • LAST_TEMPERATURE_CONVERSION_LSB

      public static final int LAST_TEMPERATURE_CONVERSION_LSB
      Address of the last temperature conversion's LSB
      See Also:
    • LAST_TEMPERATURE_CONVERSION_MSB

      public static final int LAST_TEMPERATURE_CONVERSION_MSB
      Address of the last temperature conversion's MSB
      See Also:
    • LAST_DATA_CONVERSION_LSB

      public static final int LAST_DATA_CONVERSION_LSB
      Address of the last data conversion's LSB
      See Also:
    • LAST_DATA_CONVERSION_MSB

      public static final int LAST_DATA_CONVERSION_MSB
      Address of the last data conversion's MSB
      See Also:
    • TEMPERATURE_CONTROL_REGISTER

      public static final int TEMPERATURE_CONTROL_REGISTER
      Address of Temperature Control Register
      See Also:
    • TCR_BIT_ENABLE_TEMPERATURE_LOW_ALARM

      public static final byte TCR_BIT_ENABLE_TEMPERATURE_LOW_ALARM
      Temperature Control Register Bit: Enable Data Low Alarm
      See Also:
    • TCR_BIT_ENABLE_TEMPERATURE_HIGH_ALARM

      public static final byte TCR_BIT_ENABLE_TEMPERATURE_HIGH_ALARM
      Temperature Control Register Bit: Enable Data Low Alarm
      See Also:
    • DATA_CONTROL_REGISTER

      public static final int DATA_CONTROL_REGISTER
      Address of Data Control Register
      See Also:
    • DCR_BIT_ENABLE_DATA_LOW_ALARM

      public static final byte DCR_BIT_ENABLE_DATA_LOW_ALARM
      Data Control Register Bit: Enable Data Low Alarm
      See Also:
    • DCR_BIT_ENABLE_DATA_HIGH_ALARM

      public static final byte DCR_BIT_ENABLE_DATA_HIGH_ALARM
      Data Control Register Bit: Enable Data High Alarm
      See Also:
    • RTC_CONTROL_REGISTER

      public static final int RTC_CONTROL_REGISTER
      Address of Real-Time Clock Control Register
      See Also:
    • RCR_BIT_ENABLE_OSCILLATOR

      public static final byte RCR_BIT_ENABLE_OSCILLATOR
      Real-Time Clock Control Register Bit: Enable Oscillator
      See Also:
    • RCR_BIT_ENABLE_HIGH_SPEED_SAMPLE

      public static final byte RCR_BIT_ENABLE_HIGH_SPEED_SAMPLE
      Real-Time Clock Control Register Bit: Enable High Speed Sample
      See Also:
    • MISSION_CONTROL_REGISTER

      public static final int MISSION_CONTROL_REGISTER
      Address of Mission Control Register
      See Also:
    • MCR_BIT_ENABLE_TEMPERATURE_LOGGING

      public static final byte MCR_BIT_ENABLE_TEMPERATURE_LOGGING
      Mission Control Register Bit: Enable Temperature Logging
      See Also:
    • MCR_BIT_ENABLE_DATA_LOGGING

      public static final byte MCR_BIT_ENABLE_DATA_LOGGING
      Mission Control Register Bit: Enable Data Logging
      See Also:
    • MCR_BIT_TEMPERATURE_RESOLUTION

      public static final byte MCR_BIT_TEMPERATURE_RESOLUTION
      Mission Control Register Bit: Set Temperature Resolution
      See Also:
    • MCR_BIT_DATA_RESOLUTION

      public static final byte MCR_BIT_DATA_RESOLUTION
      Mission Control Register Bit: Set Data Resolution
      See Also:
    • MCR_BIT_ENABLE_ROLLOVER

      public static final byte MCR_BIT_ENABLE_ROLLOVER
      Mission Control Register Bit: Enable Rollover
      See Also:
    • MCR_BIT_START_MISSION_ON_TEMPERATURE_ALARM

      public static final byte MCR_BIT_START_MISSION_ON_TEMPERATURE_ALARM
      Mission Control Register Bit: Start Mission on Temperature Alarm
      See Also:
    • ALARM_STATUS_REGISTER

      public static final int ALARM_STATUS_REGISTER
      Address of Alarm Status Register
      See Also:
    • ASR_BIT_TEMPERATURE_LOW_ALARM

      public static final byte ASR_BIT_TEMPERATURE_LOW_ALARM
      Alarm Status Register Bit: Temperature Low Alarm
      See Also:
    • ASR_BIT_TEMPERATURE_HIGH_ALARM

      public static final byte ASR_BIT_TEMPERATURE_HIGH_ALARM
      Alarm Status Register Bit: Temperature High Alarm
      See Also:
    • ASR_BIT_DATA_LOW_ALARM

      public static final byte ASR_BIT_DATA_LOW_ALARM
      Alarm Status Register Bit: Data Low Alarm
      See Also:
    • ASR_BIT_DATA_HIGH_ALARM

      public static final byte ASR_BIT_DATA_HIGH_ALARM
      Alarm Status Register Bit: Data High Alarm
      See Also:
    • ASR_BIT_BATTERY_ON_RESET

      public static final byte ASR_BIT_BATTERY_ON_RESET
      Alarm Status Register Bit: Battery On Reset
      See Also:
    • GENERAL_STATUS_REGISTER

      public static final int GENERAL_STATUS_REGISTER
      Address of General Status Register
      See Also:
    • GSR_BIT_SAMPLE_IN_PROGRESS

      public static final byte GSR_BIT_SAMPLE_IN_PROGRESS
      General Status Register Bit: Sample In Progress
      See Also:
    • GSR_BIT_MISSION_IN_PROGRESS

      public static final byte GSR_BIT_MISSION_IN_PROGRESS
      General Status Register Bit: Mission In Progress
      See Also:
    • GSR_BIT_CONVERSION_IN_PROGRESS

      public static final byte GSR_BIT_CONVERSION_IN_PROGRESS
      General Status Register Bit: Conversion In Progress
      See Also:
    • GSR_BIT_MEMORY_CLEARED

      public static final byte GSR_BIT_MEMORY_CLEARED
      General Status Register Bit: Memory Cleared
      See Also:
    • GSR_BIT_WAITING_FOR_TEMPERATURE_ALARM

      public static final byte GSR_BIT_WAITING_FOR_TEMPERATURE_ALARM
      General Status Register Bit: Waiting for Temperature Alarm
      See Also:
    • GSR_BIT_FORCED_CONVERSION_IN_PROGRESS

      public static final byte GSR_BIT_FORCED_CONVERSION_IN_PROGRESS
      General Status Register Bit: Forced Conversion In Progress
      See Also:
    • MISSION_START_DELAY

      public static final int MISSION_START_DELAY
      Address of the Mission Start Delay
      See Also:
    • MISSION_TIMESTAMP_TIME

      public static final int MISSION_TIMESTAMP_TIME
      Address of the Mission Timestamp Time value
      See Also:
    • MISSION_TIMESTAMP_DATE

      public static final int MISSION_TIMESTAMP_DATE
      Address of the Mission Timestamp Date value
      See Also:
    • DEVICE_CONFIGURATION_BYTE

      public static final int DEVICE_CONFIGURATION_BYTE
      Address of Device Configuration Register
      See Also:
    • DCB_DS2422

      public static final byte DCB_DS2422
      Value of Device Configuration Register for DS1922S
      See Also:
    • DCB_DS1923

      public static final byte DCB_DS1923
      Value of Device Configuration Register for DS1923
      See Also:
    • DCB_DS1922L

      public static final byte DCB_DS1922L
      Value of Device Configuration Register for DS1922L
      See Also:
    • DCB_DS1922T

      public static final byte DCB_DS1922T
      Value of Device Configuration Register for DS1922T
      See Also:
    • DCB_DS1922E

      public static final byte DCB_DS1922E
      Value of Device Configuration Register for DS1922E
      See Also:
    • DCB_DS1922S

      public static final byte DCB_DS1922S
      Value of Device Configuration Register for DS1922S
      See Also:
    • PASSWORD_CONTROL_REGISTER

      public static final int PASSWORD_CONTROL_REGISTER
      Address of the Password Control Register.
      See Also:
    • READ_ACCESS_PASSWORD

      public static final int READ_ACCESS_PASSWORD
      Address of Read Access Password.
      See Also:
    • READ_WRITE_ACCESS_PASSWORD

      public static final int READ_WRITE_ACCESS_PASSWORD
      Address of the Read Write Access Password.
      See Also:
    • MISSION_SAMPLE_COUNT

      public static final int MISSION_SAMPLE_COUNT
      Address of the Mission Sample Count
      See Also:
    • DEVICE_SAMPLE_COUNT

      public static final int DEVICE_SAMPLE_COUNT
      Address of the Device Sample Count
      See Also:
    • MISSION_LOG_SIZE

      public static final int MISSION_LOG_SIZE
      maximum size of the mission log
      See Also:
    • ODD_MISSION_LOG_SIZE

      public static final int ODD_MISSION_LOG_SIZE
      mission log size for odd combination of resolutions (i.e. 8-bit temperature invalid input: '&' 16-bit data or 16-bit temperature invalid input: '&' 8-bit data
      See Also:
  • Constructor Details

  • Method Details

    • setupContainer

      public void setupContainer(DSPortAdapter sourceAdapter, byte[] newAddress)
      Provides this container with the adapter object used to access this device and the address of the iButton or 1-Wire device.
      Overrides:
      setupContainer in class OneWireContainer
      Parameters:
      sourceAdapter - adapter object required to communicate with this iButton
      newAddress - address of this 1-Wire device
      See Also:
    • setupContainer

      public void setupContainer(DSPortAdapter sourceAdapter, long newAddress)
      Provides this container with the adapter object used to access this device and the address of the iButton or 1-Wire device.
      Overrides:
      setupContainer in class OneWireContainer
      Parameters:
      sourceAdapter - adapter object required to communicate with this iButton
      newAddress - address of this 1-Wire device
      See Also:
    • setupContainer

      public void setupContainer(DSPortAdapter sourceAdapter, String newAddress)
      Provides this container with the adapter object used to access this device and the address of the iButton or 1-Wire device.
      Overrides:
      setupContainer in class OneWireContainer
      Parameters:
      sourceAdapter - adapter object required to communicate with this iButton
      newAddress - address of this 1-Wire device
      See Also:
    • readDevice

      public byte[] readDevice() throws OneWireIOException, OneWireException
      Retrieves the 1-Wire device sensor state. This state is returned as a byte array. Pass this byte array to the 'get' and 'set' methods. If the device state needs to be changed then call the 'writeDevice' to finalize the changes.
      Specified by:
      readDevice in interface OneWireSensor
      Returns:
      1-Wire device sensor state
      Throws:
      OneWireIOException - on a 1-Wire communication error such as reading an incorrect CRC from a 1-Wire device. 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'.
      OneWireException - on a communication or setup error with the 1-Wire adapter
    • writeDevice

      public void writeDevice(byte[] state) throws OneWireIOException, OneWireException
      Writes the 1-Wire device sensor state that have been changed by 'set' methods. Only the state registers that changed are updated. This is done by referencing a field information appended to the state data.
      Specified by:
      writeDevice in interface OneWireSensor
      Parameters:
      state - 1-Wire device sensor state
      Throws:
      OneWireIOException - on a 1-Wire communication error such as reading an incorrect CRC from a 1-Wire device. 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'.
      OneWireException - on a communication or setup error with the 1-Wire adapter
    • readByte

      public byte readByte(int memAddr) throws OneWireIOException, OneWireException
      Reads a single byte from the DS1922. Note that the preferred manner of reading from the DS1922 Thermocron is through the readDevice() method or through the MemoryBank objects returned in the getMemoryBanks() method.
      Parameters:
      memAddr - the address to read from (in the range of 0x200-0x21F)
      Returns:
      the data byte read
      Throws:
      OneWireIOException - on a 1-Wire communication error such as reading an incorrect CRC from a 1-Wire device. 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'.
      OneWireException - on a communication or setup error with the 1-Wire adapter
      See Also:
    • getFlag

      public boolean getFlag(int register, byte bitMask) throws OneWireIOException, OneWireException

      Gets the status of the specified flag from the specified register. This method actually communicates with the DS1922. To improve performance if you intend to make multiple calls to this method, first call readDevice() and use the getFlag(int, byte, byte[]) method instead.

      The DS1922 has several sets of flags.

      • Register: TEMPERATURE_CONTROL_REGISTER
        Flags:
        • TCR_BIT_ENABLE_TEMPERATURE_LOW_ALARM
        • TCR_BIT_ENABLE_TEMPERATURE_HIGH_ALARM
      • Register: DATA_CONTROL_REGISTER
        Flags:
        • DCR_BIT_ENABLE_DATA_LOW_ALARM
        • DCR_BIT_ENABLE_DATA_HIGH_ALARM
      • Register: RTC_CONTROL_REGISTER
        Flags:
        • RCR_BIT_ENABLE_OSCILLATOR
        • RCR_BIT_ENABLE_HIGH_SPEED_SAMPLE
      • Register: MISSION_CONTROL_REGISTER
        Flags:
        • MCR_BIT_ENABLE_TEMPERATURE_LOGGING
        • MCR_BIT_ENABLE_DATA_LOGGING
        • MCR_BIT_TEMPERATURE_RESOLUTION
        • MCR_BIT_DATA_RESOLUTION
        • MCR_BIT_ENABLE_ROLLOVER
        • MCR_BIT_START_MISSION_UPON_TEMPERATURE_ALARM
      • Register: ALARM_STATUS_REGISTER
        Flags:
        • ASR_BIT_TEMPERATURE_LOW_ALARM
        • ASR_BIT_TEMPERATURE_HIGH_ALARM
        • ASR_BIT_DATA_LOW_ALARM
        • ASR_BIT_DATA_HIGH_ALARM
        • ASR_BIT_BATTERY_ON_RESET
      • Register: GENERAL_STATUS_REGISTER
        Flags:
        • GSR_BIT_SAMPLE_IN_PROGRESS
        • GSR_BIT_MISSION_IN_PROGRESS
        • GSR_BIT_MEMORY_CLEARED
        • GSR_BIT_WAITING_FOR_TEMPERATURE_ALARM
      Parameters:
      register - address of register containing the flag (see above for available options)
      bitMask - the flag to read (see above for available options)
      Returns:
      the status of the flag, where true signifies a "1" and false signifies a "0"
      Throws:
      OneWireIOException - on a 1-Wire communication error such as reading an incorrect CRC from a 1-Wire device. 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'.
      OneWireException - on a communication or setup error with the 1-Wire adapter
      See Also:
    • getFlag

      public boolean getFlag(int register, byte bitMask, byte[] state)

      Gets the status of the specified flag from the specified register. This method is the preferred manner of reading the control and status flags.

      For more information on valid values for the bitMask parameter, see the getFlag(int,byte) method.

      Parameters:
      register - address of register containing the flag (see getFlag(int,byte) for available options)
      bitMask - the flag to read (see getFlag(int,byte) for available options)
      state - current state of the device returned from readDevice()
      Returns:
      the status of the flag, where true signifies a "1" and false signifies a "0"
      See Also:
    • setFlag

      public void setFlag(int register, byte bitMask, boolean flagValue) throws OneWireIOException, OneWireException

      Sets the status of the specified flag in the specified register. If a mission is in progress a OneWireIOException will be thrown (one cannot write to the registers while a mission is commencing). This method actually communicates with the DS1922. To improve performance if you intend to make multiple calls to this method, first call readDevice() and use the setFlag(int,byte,boolean,byte[]) method instead.

      For more information on valid values for the bitMask parameter, see the getFlag(int,byte) method.

      Parameters:
      register - address of register containing the flag (see getFlag(int,byte) for available options)
      bitMask - the flag to read (see getFlag(int,byte) for available options)
      flagValue - new value for the flag (true is logic "1")
      Throws:
      OneWireIOException - on a 1-Wire communication error such as reading an incorrect CRC from a 1-Wire device. 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'. In the case of the DS1922, this could also be due to a currently running mission.
      OneWireException - on a communication or setup error with the 1-Wire adapter
      See Also:
    • setFlag

      public void setFlag(int register, byte bitMask, boolean flagValue, byte[] state)

      Sets the status of the specified flag in the specified register. If a mission is in progress a OneWireIOException will be thrown (one cannot write to the registers while a mission is commencing). This method is the preferred manner of setting the DS1922 status and control flags. 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().

      For more information on valid values for the bitMask parameter, see the getFlag(int,byte) method.

      Parameters:
      register - address of register containing the flag (see getFlag(int,byte) for available options)
      bitMask - the flag to read (see getFlag(int,byte) for available options)
      flagValue - new value for the flag (true is logic "1")
      state - current state of the device returned from readDevice()
      See Also:
    • getMemoryBanks

      public Enumeration<MemoryBank> getMemoryBanks()
      Gets an enumeration of memory bank instances that implement one or more of the following interfaces: MemoryBank, PagedMemoryBank, and OTPMemoryBank.
      Overrides:
      getMemoryBanks in class OneWireContainer
      Returns:
      Enumeration of memory banks
      See Also:
    • getScratchpadMemoryBank

      public MemoryBankScratchCRCPW getScratchpadMemoryBank()
      Returns instance of the memory bank representing this device's scratchpad.
      Returns:
      scratchpad memory bank
    • getUserDataMemoryBank

      public MemoryBankNVCRCPW getUserDataMemoryBank()
      Returns instance of the memory bank representing this device's general-purpose user data memory.
      Returns:
      user data memory bank
    • getDataLogMemoryBank

      public MemoryBankNVCRCPW getDataLogMemoryBank()
      Returns instance of the memory bank representing this device's data log.
      Returns:
      data log memory bank
    • getRegisterMemoryBank

      public MemoryBankNVCRCPW getRegisterMemoryBank()
      Returns instance of the memory bank representing this device's special function registers.
      Returns:
      register memory bank
    • getMaxSpeed

      public int getMaxSpeed()
      Returns the maximum speed this iButton device can communicate at.
      Overrides:
      getMaxSpeed in class OneWireContainer
      Returns:
      maximum speed
      See Also:
    • getName

      public String getName()
      Gets the Maxim Integrated Products part number of the iButton or 1-Wire Device as a java.lang.String. For example "DS1992".
      Overrides:
      getName in class OneWireContainer
      Returns:
      iButton or 1-Wire device name
    • getAlternateNames

      public String getAlternateNames()
      Retrieves the alternate Maxim Integrated Products part numbers or names. A 'family' of MicroLAN devices may have more than one part number depending on packaging. There can also be nicknames such as "Crypto iButton".
      Overrides:
      getAlternateNames in class OneWireContainer
      Returns:
      the alternate names for this iButton or 1-Wire device
    • getDescription

      public String getDescription()
      Gets a short description of the function of this iButton or 1-Wire Device type.
      Overrides:
      getDescription in class OneWireContainer
      Returns:
      device description
    • getDeviceConfigByte

      public byte getDeviceConfigByte() throws OneWireIOException, OneWireException
      Returns the Device Configuration Byte, which specifies whether or not this device is a DS1922, DS1923, or DS2422.
      Returns:
      the Device Configuration Byte
      Throws:
      OneWireIOException
      OneWireException
    • setSpeedCheck

      public void setSpeedCheck(boolean doSpeedCheck)
      Directs the container to avoid the calls to doSpeed() in methods that communicate with the DS1922/DS2422. To ensure that all parts can talk to the 1-Wire bus at their desired speed, each method contains a call to doSpeed(). However, this is an expensive operation. If a user manages the bus speed in an application, call this method with doSpeedCheck as false. The default behavior is to call doSpeed().
      Parameters:
      doSpeedCheck - true for doSpeed() to be called before every 1-Wire bus access, false to skip this expensive call
      See Also:
    • stopMission

      public void stopMission() throws OneWireException, OneWireIOException
      Stops the currently running mission.
      Specified by:
      stopMission in interface MissionContainer
      Throws:
      OneWireException
      OneWireIOException
    • startMission

      public void startMission() throws OneWireException, OneWireIOException
      Starts a new mission. Assumes all parameters have been set by either writing directly to the device registers, or by calling other setup methods.
      Throws:
      OneWireException
      OneWireIOException
    • clearMemory

      public void clearMemory() throws OneWireException, OneWireIOException
      Erases the log memory from this missioning device.
      Throws:
      OneWireException
      OneWireIOException
    • getReadOnlyPasswordLength

      public int getReadOnlyPasswordLength() throws OneWireException
      Returns the length in bytes of the Read-Only password.
      Specified by:
      getReadOnlyPasswordLength in interface PasswordContainer
      Returns:
      the length in bytes of the Read-Only password.
      Throws:
      OneWireException
    • getReadWritePasswordLength

      public int getReadWritePasswordLength() throws OneWireException
      Returns the length in bytes of the Read/Write password.
      Specified by:
      getReadWritePasswordLength in interface PasswordContainer
      Returns:
      the length in bytes of the Read/Write password.
      Throws:
      OneWireException
    • getWriteOnlyPasswordLength

      public int getWriteOnlyPasswordLength() throws OneWireException
      Returns the length in bytes of the Write-Only password.
      Specified by:
      getWriteOnlyPasswordLength in interface PasswordContainer
      Returns:
      the length in bytes of the Write-Only password.
      Throws:
      OneWireException
    • getReadOnlyPasswordAddress

      public int getReadOnlyPasswordAddress() throws OneWireException
      Returns the absolute address of the memory location where the Read-Only password is written.
      Specified by:
      getReadOnlyPasswordAddress in interface PasswordContainer
      Returns:
      the absolute address of the memory location where the Read-Only password is written.
      Throws:
      OneWireException
    • getReadWritePasswordAddress

      public int getReadWritePasswordAddress() throws OneWireException
      Returns the absolute address of the memory location where the Read/Write password is written.
      Specified by:
      getReadWritePasswordAddress in interface PasswordContainer
      Returns:
      the absolute address of the memory location where the Read/Write password is written.
      Throws:
      OneWireException
    • getWriteOnlyPasswordAddress

      public int getWriteOnlyPasswordAddress() throws OneWireException
      Returns the absolute address of the memory location where the Write-Only password is written.
      Specified by:
      getWriteOnlyPasswordAddress in interface PasswordContainer
      Returns:
      the absolute address of the memory location where the Write-Only password is written.
      Throws:
      OneWireException
    • hasReadOnlyPassword

      public boolean hasReadOnlyPassword()
      Returns true if this device has a Read-Only password. If false, all other functions dealing with the Read-Only password will throw an exception if called.
      Specified by:
      hasReadOnlyPassword in interface PasswordContainer
      Returns:
      true always, since DS1922 has Read-Only password.
    • hasReadWritePassword

      public boolean hasReadWritePassword()
      Returns true if this device has a Read/Write password. If false, all other functions dealing with the Read/Write password will throw an exception if called.
      Specified by:
      hasReadWritePassword in interface PasswordContainer
      Returns:
      true always, since DS1922 has Read/Write password.
    • hasWriteOnlyPassword

      public boolean hasWriteOnlyPassword()
      Returns true if this device has a Write-Only password. If false, all other functions dealing with the Write-Only password will throw an exception if called.
      Specified by:
      hasWriteOnlyPassword in interface PasswordContainer
      Returns:
      false always, since DS1922 has no Write-Only password.
    • getDeviceReadOnlyPasswordEnable

      public boolean getDeviceReadOnlyPasswordEnable() throws OneWireException
      Returns true if the device's Read-Only password has been enabled.
      Specified by:
      getDeviceReadOnlyPasswordEnable in interface PasswordContainer
      Returns:
      true if the device's Read-Only password has been enabled.
      Throws:
      OneWireException
    • getDeviceReadWritePasswordEnable

      public boolean getDeviceReadWritePasswordEnable() throws OneWireException
      Returns true if the device's Read/Write password has been enabled.
      Specified by:
      getDeviceReadWritePasswordEnable in interface PasswordContainer
      Returns:
      true if the device's Read/Write password has been enabled.
      Throws:
      OneWireException
    • getDeviceWriteOnlyPasswordEnable

      public boolean getDeviceWriteOnlyPasswordEnable() throws OneWireException
      Returns true if the device's Write-Only password has been enabled.
      Specified by:
      getDeviceWriteOnlyPasswordEnable in interface PasswordContainer
      Returns:
      true if the device's Write-Only password has been enabled.
      Throws:
      OneWireException
    • hasSinglePasswordEnable

      public boolean hasSinglePasswordEnable()
      Returns true if this device has the capability to enable one type of password while leaving another type disabled. i.e. if the device has Read-Only password protection and Write-Only password protection, this method indicates whether or not you can enable Read-Only protection while leaving the Write-Only protection disabled.
      Specified by:
      hasSinglePasswordEnable in interface PasswordContainer
      Returns:
      true if the device has the capability to enable one type of password while leaving another type disabled.
    • setDevicePasswordEnable

      public void setDevicePasswordEnable(boolean enableReadOnly, boolean enableReadWrite, boolean enableWriteOnly) throws OneWireException, OneWireIOException

      Enables/Disables passwords for this Device. This method allows you to individually enable the different types of passwords for a particular device. If hasSinglePasswordEnable() returns true, you can selectively enable particular types of passwords. Otherwise, this method will throw an exception if all supported types are not enabled.

      For this to be successful, either write-protect passwords must be disabled, or the write-protect password(s) for this container must be set and must match the value of the write-protect password(s) in the device's register.

      WARNING: Enabling passwords requires that both the read password and the read/write password be re-written to the part. Before calling this method, you should set the container read password and read/write password values. This will ensure that the correct value is written into the part.

      Specified by:
      setDevicePasswordEnable in interface PasswordContainer
      Parameters:
      enableReadOnly - if true Read-Only passwords will be enabled.
      enableReadWrite - if true Read/Write passwords will be enabled.
      enableWriteOnly - if true Write-Only passwords will be enabled.
      Throws:
      OneWireException
      OneWireIOException
    • setDevicePasswordEnableAll

      public void setDevicePasswordEnableAll(boolean enableAll) throws OneWireException, OneWireIOException

      Enables/Disables passwords for this device. If the part has more than one type of password (Read-Only, Write-Only, or Read/Write), all passwords will be enabled. This function is equivalent to the following: owc41.setDevicePasswordEnable( owc41.hasReadOnlyPassword(), owc41.hasReadWritePassword(), owc41.hasWriteOnlyPassword() );

      For this to be successful, either write-protect passwords must be disabled, or the write-protect password(s) for this container must be set and must match the value of the write-protect password(s) in the device's register.

      WARNING: Enabling passwords requires that both the read password and the read/write password be re-written to the part. Before calling this method, you should set the container read password and read/write password values. This will ensure that the correct value is written into the part.

      Specified by:
      setDevicePasswordEnableAll in interface PasswordContainer
      Parameters:
      enableAll - if true, all passwords are enabled. Otherwise, all passwords are disabled.
      Throws:
      OneWireException
      OneWireIOException
    • setDeviceReadOnlyPassword

      public void setDeviceReadOnlyPassword(byte[] password, int offset) throws OneWireException, OneWireIOException

      Writes the given password to the device's Read-Only password register. Note that this function does not enable the password, just writes the value to the appropriate memory location.

      For this to be successful, either write-protect passwords must be disabled, or the write-protect password(s) for this container must be set and must match the value of the write-protect password(s) in the device's register.

      WARNING: Setting the read password requires that both the read password and the read/write password be written to the part. Before calling this method, you should set the container read/write password value. This will ensure that the correct value is written into the part.

      Specified by:
      setDeviceReadOnlyPassword in interface PasswordContainer
      Parameters:
      password - the new password to be written to the device's Read-Only password register. Length must be (offset + getReadOnlyPasswordLength)
      offset - the starting point for copying from the given password array
      Throws:
      OneWireException
      OneWireIOException
    • setDeviceReadWritePassword

      public void setDeviceReadWritePassword(byte[] password, int offset) throws OneWireException, OneWireIOException

      Writes the given password to the device's Read/Write password register. Note that this function does not enable the password, just writes the value to the appropriate memory location.

      For this to be successful, either write-protect passwords must be disabled, or the write-protect password(s) for this container must be set and must match the value of the write-protect password(s) in the device's register.

      Specified by:
      setDeviceReadWritePassword in interface PasswordContainer
      Parameters:
      password - the new password to be written to the device's Read-Write password register. Length must be (offset + getReadWritePasswordLength)
      offset - the starting point for copying from the given password array
      Throws:
      OneWireException
      OneWireIOException
    • setDeviceWriteOnlyPassword

      public void setDeviceWriteOnlyPassword(byte[] password, int offset) throws OneWireException, OneWireIOException

      Writes the given password to the device's Write-Only password register. Note that this function does not enable the password, just writes the value to the appropriate memory location.

      For this to be successful, either write-protect passwords must be disabled, or the write-protect password(s) for this container must be set and must match the value of the write-protect password(s) in the device's register.

      Specified by:
      setDeviceWriteOnlyPassword in interface PasswordContainer
      Parameters:
      password - the new password to be written to the device's Write-Only password register. Length must be (offset + getWriteOnlyPasswordLength)
      offset - the starting point for copying from the given password array
      Throws:
      OneWireException
      OneWireIOException
    • setContainerReadOnlyPassword

      public void setContainerReadOnlyPassword(byte[] password, int offset) throws OneWireException
      Sets the Read-Only password used by the API when reading from the device's memory. This password is not written to the device's Read-Only password register. It is the password used by the software for interacting with the device only.
      Specified by:
      setContainerReadOnlyPassword in interface PasswordContainer
      Parameters:
      password - the new password to be used by the API when reading from the device's memory. Length must be (offset + getReadOnlyPasswordLength)
      offset - the starting point for copying from the given password array
      Throws:
      OneWireException
    • setContainerReadWritePassword

      public void setContainerReadWritePassword(byte[] password, int offset) throws OneWireException
      Sets the Read/Write password used by the API when reading from or writing to the device's memory. This password is not written to the device's Read/Write password register. It is the password used by the software for interacting with the device only.
      Specified by:
      setContainerReadWritePassword in interface PasswordContainer
      Parameters:
      password - the new password to be used by the API when reading from or writing to the device's memory. Length must be (offset + getReadWritePasswordLength)
      offset - the starting point for copying from the given password array
      Throws:
      OneWireException
    • setContainerWriteOnlyPassword

      public void setContainerWriteOnlyPassword(byte[] password, int offset) throws OneWireException
      Sets the Write-Only password used by the API when writing to the device's memory. This password is not written to the device's Write-Only password register. It is the password used by the software for interacting with the device only.
      Specified by:
      setContainerWriteOnlyPassword in interface PasswordContainer
      Parameters:
      password - the new password to be used by the API when writing to the device's memory. Length must be (offset + getWriteOnlyPasswordLength)
      offset - the starting point for copying from the given password array
      Throws:
      OneWireException
    • isContainerReadOnlyPasswordSet

      public boolean isContainerReadOnlyPasswordSet() throws OneWireException
      Returns true if the password used by the API for reading from the device's memory has been set. The return value is not affected by whether or not the read password of the container actually matches the value in the device's password register
      Specified by:
      isContainerReadOnlyPasswordSet in interface PasswordContainer
      Returns:
      true if the password used by the API for reading from the device's memory has been set.
      Throws:
      OneWireException
    • isContainerReadWritePasswordSet

      public boolean isContainerReadWritePasswordSet() throws OneWireException
      Returns true if the password used by the API for reading from or writing to the device's memory has been set. The return value is not affected by whether or not the read/write password of the container actually matches the value in the device's password register.
      Specified by:
      isContainerReadWritePasswordSet in interface PasswordContainer
      Returns:
      true if the password used by the API for reading from or writing to the device's memory has been set.
      Throws:
      OneWireException
    • isContainerWriteOnlyPasswordSet

      public boolean isContainerWriteOnlyPasswordSet() throws OneWireException
      Returns true if the password used by the API for writing to the device's memory has been set. The return value is not affected by whether or not the write password of the container actually matches the value in the device's password register.
      Specified by:
      isContainerWriteOnlyPasswordSet in interface PasswordContainer
      Returns:
      true if the password used by the API for writing to the device's memory has been set.
      Throws:
      OneWireException
    • getContainerReadOnlyPassword

      public void getContainerReadOnlyPassword(byte[] password, int offset) throws OneWireException
      Gets the Read-Only password used by the API when reading from the device's memory. This password is not read from the device's Read-Only password register. It is the password used by the software for interacting with the device only and must have been set using the setContainerReadOnlyPassword method.
      Specified by:
      getContainerReadOnlyPassword in interface PasswordContainer
      Parameters:
      password - array for holding the password that is used by the API when reading from the device's memory. Length must be (offset + getWriteOnlyPasswordLength)
      offset - the starting point for copying into the given password array
      Throws:
      OneWireException
    • getContainerReadWritePassword

      public void getContainerReadWritePassword(byte[] password, int offset) throws OneWireException
      Gets the Read/Write password used by the API when reading from or writing to the device's memory. This password is not read from the device's Read/Write password register. It is the password used by the software for interacting with the device only and must have been set using the setContainerReadWritePassword method.
      Specified by:
      getContainerReadWritePassword in interface PasswordContainer
      Parameters:
      password - array for holding the password that is used by the API when reading from or writing to the device's memory. Length must be (offset + getReadWritePasswordLength)
      offset - the starting point for copying into the given password array
      Throws:
      OneWireException
    • getContainerWriteOnlyPassword

      public void getContainerWriteOnlyPassword(byte[] password, int offset) throws OneWireException
      Gets the Write-Only password used by the API when writing to the device's memory. This password is not read from the device's Write-Only password register. It is the password used by the software for interacting with the device only and must have been set using the setContainerWriteOnlyPassword method.
      Specified by:
      getContainerWriteOnlyPassword in interface PasswordContainer
      Parameters:
      password - array for holding the password that is used by the API when writing to the device's memory. Length must be (offset + getWriteOnlyPasswordLength)
      offset - the starting point for copying into the given password array
      Throws:
      OneWireException
    • getMissionLabel

      public String getMissionLabel(int channel) throws OneWireException, OneWireIOException
      Returns a default friendly label for each channel supported by this Missioning device.
      Specified by:
      getMissionLabel in interface MissionContainer
      Parameters:
      channel - the mission channel, between 0 and (getNumberOfMissionChannels()-1)
      Returns:
      friendly label for the specified channel
      Throws:
      OneWireException
      OneWireIOException
    • setStartUponTemperatureAlarmEnable

      public void setStartUponTemperatureAlarmEnable(boolean enable) throws OneWireException, OneWireIOException
      Sets the SUTA (Start Upon Temperature Alarm) bit in the Mission Control register. This method will communicate with the device directly.
      Parameters:
      enable - sets/clears the SUTA bit in the Mission Control register.
      Throws:
      OneWireException
      OneWireIOException
    • setStartUponTemperatureAlarmEnable

      public void setStartUponTemperatureAlarmEnable(boolean enable, byte[] state) throws OneWireException, OneWireIOException
      Sets the SUTA (Start Upon Temperature Alarm) bit in the Mission Control register. This method will set the bit in the provided 'state' array, which should be acquired through a call to readDevice(). After updating the 'state', the method writeDevice(byte[]) should be called to commit your changes.
      Parameters:
      enable - sets/clears the SUTA bit in the Mission Control register.
      state - current state of the device returned from readDevice()
      Throws:
      OneWireException
      OneWireIOException
    • isStartUponTemperatureAlarmEnabled

      public boolean isStartUponTemperatureAlarmEnabled() throws OneWireException, OneWireIOException
      Returns true if the SUTA (Start Upon Temperature Alarm) bit in the Mission Control register is set. This method will communicate with the device to read the status of the SUTA bit.
      Returns:
      true if the SUTA bit in the Mission Control register is set.
      Throws:
      OneWireException
      OneWireIOException
    • isStartUponTemperatureAlarmEnabled

      public boolean isStartUponTemperatureAlarmEnabled(byte[] state) throws OneWireException, OneWireIOException
      Returns true if the SUTA (Start Upon Temperature Alarm) bit in the Mission Control register is set. This method will check for the bit in the provided 'state' array, which should be acquired through a call to readDevice().
      Parameters:
      state - current state of the device returned from readDevice()
      Returns:
      true if the SUTA bit in the Mission Control register is set.
      Throws:
      OneWireException
      OneWireIOException
    • isMissionSUTA

      public boolean isMissionSUTA() throws OneWireException, OneWireIOException
      Returns true if the currently loaded mission results indicate that this mission has the SUTA bit enabled.
      Returns:
      true if the currently loaded mission results indicate that this mission has the SUTA bit enabled.
      Throws:
      OneWireException
      OneWireIOException
    • isMissionWFTA

      public boolean isMissionWFTA() throws OneWireException, OneWireIOException
      Returns true if the currently loaded mission results indicate that this mission has the SUTA bit enabled and is still Waiting For Temperature Alarm (WFTA).
      Returns:
      true if the currently loaded mission results indicate that this mission has the SUTA bit enabled and is still Waiting For Temperature Alarm (WFTA).
      Throws:
      OneWireException
      OneWireIOException
    • startNewMission

      public void startNewMission(int sampleRate, int missionStartDelay, boolean rolloverEnabled, boolean syncClock, boolean[] channelEnabled) throws OneWireException, OneWireIOException
      Begins a new mission on this missioning device.
      Specified by:
      startNewMission in interface MissionContainer
      Parameters:
      sampleRate - indicates the sampling rate, in seconds, that this missioning device should log samples.
      missionStartDelay - indicates the amount of time, in minutes, that should pass before the mission begins.
      rolloverEnabled - if false, this device will stop recording new samples after the data log is full. Otherwise, it will replace samples starting at the beginning.
      syncClock - if true, the real-time clock of this missioning device will be synchronized with the current time according to this java.util.Date.
      Throws:
      OneWireException
      OneWireIOException
    • loadMissionResults

      public void loadMissionResults() throws OneWireException, OneWireIOException
      Loads the results of the currently running mission. Must be called before all mission result/status methods.
      Specified by:
      loadMissionResults in interface MissionContainer
      Throws:
      OneWireException
      OneWireIOException
    • isMissionLoaded

      public boolean isMissionLoaded()
      Returns true if the mission results have been loaded from the device.
      Specified by:
      isMissionLoaded in interface MissionContainer
      Returns:
      true if the mission results have been loaded.
    • getNumberMissionChannels

      public int getNumberMissionChannels()
      Gets the number of channels supported by this Missioning device. Channel specific methods will use a channel number specified by an integer from [0 to (getNumberOfMissionChannels() - 1)].
      Specified by:
      getNumberMissionChannels in interface MissionContainer
      Returns:
      the number of channels
    • setMissionChannelEnable

      public void setMissionChannelEnable(int channel, boolean enable) throws OneWireException, OneWireIOException
      Enables/disables the specified mission channel, indicating whether or not the channel's readings will be recorded in the mission log.
      Specified by:
      setMissionChannelEnable in interface MissionContainer
      Parameters:
      channel - the channel to enable/disable
      enable - if true, the channel is enabled
      Throws:
      OneWireException
      OneWireIOException
    • setMissionChannelEnable

      public void setMissionChannelEnable(int channel, boolean enable, byte[] state) throws OneWireException, OneWireIOException
      Enables/disables the specified mission channel, indicating whether or not the channel's readings will be recorded in the mission log.
      Parameters:
      channel - the channel to enable/disable
      enable - if true, the channel is enabled
      state - the state as returned from readDevice, for cached writes
      Throws:
      OneWireException
      OneWireIOException
    • getMissionChannelEnable

      public boolean getMissionChannelEnable(int channel) throws OneWireException, OneWireIOException
      Returns true if the specified mission channel is enabled, indicating that the channel's readings will be recorded in the mission log.
      Specified by:
      getMissionChannelEnable in interface MissionContainer
      Parameters:
      channel - the channel to enable/disable
      enable - if true, the channel is enabled
      Throws:
      OneWireException
      OneWireIOException
    • getMissionChannelEnable

      public boolean getMissionChannelEnable(int channel, byte[] state) throws OneWireException, OneWireIOException
      Returns true if the specified mission channel is enabled, indicating that the channel's readings will be recorded in the mission log.
      Parameters:
      channel - the channel to enable/disable
      enable - if true, the channel is enabled
      Throws:
      OneWireException
      OneWireIOException
    • getMissionSampleRate

      public int getMissionSampleRate(int channel) throws OneWireException, OneWireIOException
      Returns the amount of time, in seconds, between samples taken by this missioning device.
      Specified by:
      getMissionSampleRate in interface MissionContainer
      Parameters:
      channel - the mission channel, between 0 and (getNumberOfMissionChannels()-1)
      Returns:
      time, in seconds, between sampling
      Throws:
      OneWireException
      OneWireIOException
    • getMissionSampleCount

      public int getMissionSampleCount(int channel) throws OneWireException, OneWireIOException
      Returns the number of samples available for the specified channel during the current mission.
      Specified by:
      getMissionSampleCount in interface MissionContainer
      Parameters:
      channel - the mission channel, between 0 and (getNumberOfMissionChannels()-1)
      Returns:
      number of samples available for the specified channel
      Throws:
      OneWireException
      OneWireIOException
    • getDeviceSampleCount

      public int getDeviceSampleCount() throws OneWireException, OneWireIOException
      Reads the device and returns the total number of samples logged since the first power-on of this device.
      Returns:
      the total number of samples logged since the first power-on of this device.
      Throws:
      OneWireException
      OneWireIOException
    • getDeviceSampleCount

      public int getDeviceSampleCount(byte[] state) throws OneWireException, OneWireIOException
      Returns the total number of samples logged since the first power-on of this device.
      Parameters:
      state - The current state of the device as return from readDevice()
      Returns:
      the total number of samples logged since the first power-on of this device.
      Throws:
      OneWireException
      OneWireIOException
    • getMissionSampleCountTotal

      public int getMissionSampleCountTotal(int channel) throws OneWireException, OneWireIOException
      Returns the total number of samples taken for the specified channel during the current mission. This number can be more than the actual sample count if rollover is enabled and the log has been filled.
      Specified by:
      getMissionSampleCountTotal in interface MissionContainer
      Parameters:
      channel - the mission channel, between 0 and (getNumberOfMissionChannels()-1)
      Returns:
      number of samples taken for the specified channel
      Throws:
      OneWireException
      OneWireIOException
    • getMissionSample

      public double getMissionSample(int channel, int sampleNum) throws OneWireException, OneWireIOException
      Returns the sample as degrees celsius if temperature channel is specified or as percent relative humidity if data channel is specified. If the device is a DS2422 configuration (or A-D results are forced on the DS1923), the data channel will return samples as the voltage measured.
      Specified by:
      getMissionSample in interface MissionContainer
      Parameters:
      channel - the mission channel, between 0 and (getNumberOfMissionChannels()-1)
      sampleNum - the sample number to return, between 0 and (getMissionSampleCount(channel)-1)
      Returns:
      the sample's value in degrees Celsius or percent RH.
      Throws:
      OneWireException
      OneWireIOException
    • getMissionSampleAsInteger

      public int getMissionSampleAsInteger(int channel, int sampleNum) throws OneWireException, OneWireIOException
      Returns the sample as an integer value. This value is not converted to degrees Celsius for temperature or to percent RH for Humidity. It is simply the 8 or 16 bits of digital data written in the mission log for this sample entry. It is up to the user to mask off the unused bits and convert this value to it's proper units. This method is primarily for users of the DS2422 who are using an input device which is not an A-D or have an A-D wholly dissimilar to the one specified in the datasheet.
      Specified by:
      getMissionSampleAsInteger in interface MissionContainer
      Parameters:
      channel - the mission channel, between 0 and (getNumberOfMissionChannels()-1)
      sampleNum - the sample number to return, between 0 and (getMissionSampleCount(channel)-1)
      Returns:
      the sample as a whole integer
      Throws:
      OneWireException
      OneWireIOException
    • getMissionSampleTimeStamp

      public long getMissionSampleTimeStamp(int channel, int sampleNum) throws OneWireException, OneWireIOException
      Returns the time, in milliseconds, that each sample was taken by the current mission.
      Specified by:
      getMissionSampleTimeStamp in interface MissionContainer
      Parameters:
      channel - the mission channel, between 0 and (getNumberOfMissionChannels()-1)
      sampleNum - the sample number to return, between 0 and (getMissionSampleCount(channel)-1)
      Returns:
      the sample's timestamp, in milliseconds
      Throws:
      OneWireException
      OneWireIOException
    • isMissionRunning

      public boolean isMissionRunning() throws OneWireException, OneWireIOException
      Returns true if a mission is currently running.
      Specified by:
      isMissionRunning in interface MissionContainer
      Returns:
      true if a mission is currently running.
      Throws:
      OneWireException
      OneWireIOException
    • isMissionRolloverEnabled

      public boolean isMissionRolloverEnabled() throws OneWireException, OneWireIOException
      Returns true if a rollover is enabled.
      Specified by:
      isMissionRolloverEnabled in interface MissionContainer
      Returns:
      true if a rollover is enabled.
      Throws:
      OneWireException
      OneWireIOException
    • hasMissionRolloverOccurred

      public boolean hasMissionRolloverOccurred() throws OneWireException, OneWireIOException
      Returns true if a mission has rolled over.
      Specified by:
      hasMissionRolloverOccurred in interface MissionContainer
      Returns:
      true if a mission has rolled over.
      Throws:
      OneWireException
      OneWireIOException
    • clearMissionResults

      public void clearMissionResults() throws OneWireException, OneWireIOException
      Clears the mission results and erases the log memory from this missioning device.
      Specified by:
      clearMissionResults in interface MissionContainer
      Throws:
      OneWireException
      OneWireIOException
    • getMissionTimeStamp

      public long getMissionTimeStamp(int channel) throws OneWireException, OneWireIOException
      Returns the time, in milliseconds, that the mission began.
      Specified by:
      getMissionTimeStamp in interface MissionContainer
      Parameters:
      channel - the mission channel, between 0 and (getNumberOfMissionChannels()-1)
      Returns:
      time, in milliseconds, that the mission began
      Throws:
      OneWireException
      OneWireIOException
    • getFirstSampleOffset

      public long getFirstSampleOffset(int channel) throws OneWireException, OneWireIOException
      Returns the amount of time, in milliseconds, before the first sample occurred. If rollover disabled, or datalog didn't fill up, this will be 0.
      Specified by:
      getFirstSampleOffset in interface MissionContainer
      Parameters:
      channel - the mission channel, between 0 and (getNumberOfMissionChannels()-1)
      Returns:
      time, in milliseconds, before first sample occurred
      Throws:
      OneWireException
      OneWireIOException
    • getMissionResolutions

      public double[] getMissionResolutions(int channel) throws OneWireException, OneWireIOException
      Returns all available resolutions for the specified mission channel.
      Specified by:
      getMissionResolutions in interface MissionContainer
      Parameters:
      channel - the mission channel, between 0 and (getNumberOfMissionChannels()-1)
      Returns:
      all available resolutions for the specified mission channel.
      Throws:
      OneWireException
      OneWireIOException
    • getMissionResolution

      public double getMissionResolution(int channel) throws OneWireException, OneWireIOException
      Returns the currently selected resolution for the specified channel.
      Specified by:
      getMissionResolution in interface MissionContainer
      Parameters:
      channel - the mission channel, between 0 and (getNumberOfMissionChannels()-1)
      Returns:
      the currently selected resolution for the specified channel.
      Throws:
      OneWireException
      OneWireIOException
    • setMissionResolution

      public void setMissionResolution(int channel, double resolution) throws OneWireException, OneWireIOException
      Sets the selected resolution for the specified channel.
      Specified by:
      setMissionResolution in interface MissionContainer
      Parameters:
      channel - the mission channel, between 0 and (getNumberOfMissionChannels()-1)
      resolution - the new resolution for the specified channel.
      Throws:
      OneWireException
      OneWireIOException
    • setTemperatureCalibrationRegisterUsage

      public void setTemperatureCalibrationRegisterUsage(boolean use)
      Enables/Disables the usage of calibration registers. Only applies to the DS1923 configuration. The calibration depends on an average error at 3 known reference points. This average error is written to 3 registers on the DS1922. The container use these values to calibrate the recorded humidity values and improve the accuracy of the device. This method allows you to turn off calibration so that you may download the actual data recorded to the device's memory and perform a manual calibration.
      Parameters:
      use - if true, all humidity values read from device will be calibrated.
    • setHumidityCalibrationRegisterUsage

      public void setHumidityCalibrationRegisterUsage(boolean use)
      Enables/Disables the usage of the humidity calibration registers. Only applies to the DS1923 configuration. The calibration depends on an average error at 3 known reference points. This average error is written to 3 registers on the DS1922. The container use these values to calibrate the recorded humidity values and improve the accuracy of the device. This method allows you to turn off calibration so that you may download the actual data recorded to the device's memory and perform a manual calibration.
      Parameters:
      use - if true, all humidity values read from device will be calibrated.
    • setTemperatureCompensationUsage

      public void setTemperatureCompensationUsage(boolean use)
      Enables/Disables the usage of temperature compensation. Only applies to the DS1923 configuration. The temperature compensation adjusts the humidity values based on the known effects of temperature on the humidity sensor. If this is a joint humidity and temperature mission, the temperature values used could (should?) come from the temperature log itself. If, however, there is no temperature log the default temperature value can be set for the mission using the setDefaultTemperatureCompensationValue method.
      Parameters:
      use - if true, all humidity values read from device will be compensated for temperature.
      See Also:
    • setDefaultTemperatureCompensationValue

      public void setDefaultTemperatureCompensationValue(double temperatureValue, boolean override)
      Sets the default temperature value for temperature compensation. This value will be used if there is no temperature log data or if the override parameter is true.
      Parameters:
      temperatureValue - the default temperature value for temperature compensation.
      override - if true, the default temperature value will always be used (instead of the temperature log data).
      See Also:
    • hasMissionAlarms

      public boolean hasMissionAlarms(int channel)
      Indicates whether or not the specified channel of this missioning device has mission alarm capabilities.
      Specified by:
      hasMissionAlarms in interface MissionContainer
      Parameters:
      channel - the mission channel, between 0 and (getNumberOfMissionChannels()-1)
      Returns:
      true if the device has mission alarms for the specified channel.
    • hasMissionAlarmed

      public boolean hasMissionAlarmed(int channel, int alarmType) throws OneWireException, OneWireIOException
      Returns true if the specified channel's alarm value of the specified type has been triggered during the mission.
      Specified by:
      hasMissionAlarmed in interface MissionContainer
      Parameters:
      channel - the mission channel, between 0 and (getNumberOfMissionChannels()-1)
      alarmType - valid value: ALARM_HIGH or ALARM_LOW
      Returns:
      true if the alarm was triggered.
      Throws:
      OneWireException
      OneWireIOException
    • getMissionAlarmEnable

      public boolean getMissionAlarmEnable(int channel, int alarmType) throws OneWireException, OneWireIOException
      Returns true if the alarm of the specified type has been enabled for the specified channel.
      Specified by:
      getMissionAlarmEnable in interface MissionContainer
      Parameters:
      channel - the mission channel, between 0 and (getNumberOfMissionChannels()-1)
      alarmType - valid value: ALARM_HIGH or ALARM_LOW
      Returns:
      true if the alarm of the specified type has been enabled for the specified channel.
      Throws:
      OneWireException
      OneWireIOException
    • setMissionAlarmEnable

      public void setMissionAlarmEnable(int channel, int alarmType, boolean enable) throws OneWireException, OneWireIOException
      Enables/disables the alarm of the specified type for the specified channel
      Specified by:
      setMissionAlarmEnable in interface MissionContainer
      Parameters:
      channel - the mission channel, between 0 and (getNumberOfMissionChannels()-1)
      alarmType - valid value: ALARM_HIGH or ALARM_LOW
      enable - if true, alarm is enabled.
      Throws:
      OneWireException
      OneWireIOException
    • getMissionAlarm

      public double getMissionAlarm(int channel, int alarmType) throws OneWireException, OneWireIOException
      Returns the threshold value which will trigger the alarm of the specified type on the specified channel.
      Specified by:
      getMissionAlarm in interface MissionContainer
      Parameters:
      channel - the mission channel, between 0 and (getNumberOfMissionChannels()-1)
      alarmType - valid value: ALARM_HIGH or ALARM_LOW
      Returns:
      the threshold value which will trigger the alarm
      Throws:
      OneWireException
      OneWireIOException
    • setMissionAlarm

      public void setMissionAlarm(int channel, int alarmType, double threshold) throws OneWireException, OneWireIOException
      Sets the threshold value which will trigger the alarm of the specified type on the specified channel.
      Specified by:
      setMissionAlarm in interface MissionContainer
      Parameters:
      channel - the mission channel, between 0 and (getNumberOfMissionChannels()-1)
      alarmType - valid value: ALARM_HIGH or ALARM_LOW
      threshold - the threshold value which will trigger the alarm
      Throws:
      OneWireException
      OneWireIOException
    • hasTemperatureAlarms

      public boolean hasTemperatureAlarms()
      Checks to see if this temperature measuring device has high/low trip alarms.
      Specified by:
      hasTemperatureAlarms in interface TemperatureContainer
      Returns:
      true if this TemperatureContainer has high/low trip alarms
      See Also:
    • hasSelectableTemperatureResolution

      public boolean hasSelectableTemperatureResolution()
      Checks to see if this device has selectable temperature resolution.
      Specified by:
      hasSelectableTemperatureResolution in interface TemperatureContainer
      Returns:
      true if this TemperatureContainer has selectable temperature resolution
      See Also:
    • getTemperatureResolutions

      public double[] getTemperatureResolutions()
      Get an array of available temperature resolutions in Celsius.
      Specified by:
      getTemperatureResolutions in interface TemperatureContainer
      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

      public double getTemperatureAlarmResolution()
      Gets the temperature alarm resolution in Celsius.
      Specified by:
      getTemperatureAlarmResolution in interface TemperatureContainer
      Returns:
      temperature alarm resolution in Celsius for this 1-wire device
      See Also:
    • getMaxTemperature

      public double getMaxTemperature()
      Gets the maximum temperature in Celsius.
      Specified by:
      getMaxTemperature in interface TemperatureContainer
      Returns:
      maximum temperature in Celsius for this 1-wire device
      See Also:
    • getMinTemperature

      public double getMinTemperature()
      Gets the minimum temperature in Celsius.
      Specified by:
      getMinTemperature in interface TemperatureContainer
      Returns:
      minimum temperature in Celsius for this 1-wire device
      See Also:
    • doTemperatureConvert

      public void doTemperatureConvert(byte[] state) throws OneWireIOException, OneWireException
      Performs a temperature conversion. Use the state information to calculate the conversion time.
      Specified by:
      doTemperatureConvert in interface TemperatureContainer
      Parameters:
      state - byte array with device state information
      Throws:
      OneWireIOException - on a 1-Wire communication error such as reading an incorrect CRC from a 1-Wire device. 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'. In the case of the DS1922 Thermocron, this could also be due to a currently running mission.
      OneWireException - on a communication or setup error with the 1-Wire adapter
    • getTemperature

      public double getTemperature(byte[] state)
      Gets the temperature value in Celsius from the state data retrieved from the readDevice() method.
      Specified by:
      getTemperature in interface TemperatureContainer
      Parameters:
      state - byte array with device state information
      Returns:
      temperature in Celsius from the last doTemperatureConvert()
    • getTemperatureAlarm

      public double getTemperatureAlarm(int alarmType, byte[] state)
      Gets the specified temperature alarm value in Celsius from the state data retrieved from the readDevice() method.
      Specified by:
      getTemperatureAlarm in interface TemperatureContainer
      Parameters:
      alarmType - valid value: ALARM_HIGH or ALARM_LOW
      state - byte array with device state information
      Returns:
      temperature alarm trip values in Celsius for this 1-wire device
      See Also:
    • getTemperatureResolution

      public double getTemperatureResolution(byte[] state)
      Gets the current temperature resolution in Celsius from the state data retrieved from the readDevice() method.
      Specified by:
      getTemperatureResolution in interface TemperatureContainer
      Parameters:
      state - byte array with device state information
      Returns:
      temperature resolution in Celsius for this 1-wire device
      See Also:
    • setTemperatureAlarm

      public void setTemperatureAlarm(int alarmType, double alarmValue, byte[] state)
      Sets the temperature alarm value in Celsius in the provided state data. Use the method writeDevice() with this data to finalize the change to the device.
      Specified by:
      setTemperatureAlarm in interface TemperatureContainer
      Parameters:
      alarmType - valid value: ALARM_HIGH or ALARM_LOW
      alarmValue - alarm trip value in Celsius
      state - byte array with device state information
      See Also:
    • setTemperatureResolution

      public void setTemperatureResolution(double resolution, byte[] state) throws OneWireException
      Sets the current temperature resolution in Celsius in the provided state data. Use the method writeDevice() with this data to finalize the change to the device.
      Specified by:
      setTemperatureResolution in interface TemperatureContainer
      Parameters:
      resolution - temperature resolution in Celsius
      state - byte array with device state information
      Throws:
      OneWireException - if the device does not support selectable temperature resolution
      See Also:
    • isRelative

      public boolean isRelative()
      Checks to see if humidity value given is a 'relative' humidity value.
      Specified by:
      isRelative in interface HumidityContainer
      Returns:
      true if this HumidityContainer provides a relative humidity reading
      See Also:
    • hasHumidityAlarms

      public boolean hasHumidityAlarms()
      Checks to see if this Humidity measuring device has high/low trip alarms.
      Specified by:
      hasHumidityAlarms in interface HumidityContainer
      Returns:
      true if this HumidityContainer has high/low trip alarms
      See Also:
    • hasSelectableHumidityResolution

      public boolean hasSelectableHumidityResolution()
      Checks to see if this device has selectable Humidity resolution.
      Specified by:
      hasSelectableHumidityResolution in interface HumidityContainer
      Returns:
      true if this HumidityContainer has selectable Humidity resolution
      See Also:
    • getHumidityResolutions

      public double[] getHumidityResolutions()
      Get an array of available Humidity resolutions in percent humidity (0 to 100).
      Specified by:
      getHumidityResolutions in interface HumidityContainer
      Returns:
      byte array of available Humidity resolutions in percent with minimum resolution as the first element and maximum resolution as the last element.
      See Also:
    • getHumidityAlarmResolution

      public double getHumidityAlarmResolution() throws OneWireException
      Gets the Humidity alarm resolution in percent.
      Specified by:
      getHumidityAlarmResolution in interface HumidityContainer
      Returns:
      Humidity alarm resolution in percent for this 1-wire device
      Throws:
      OneWireException - Device does not support Humidity alarms
      See Also:
    • doHumidityConvert

      public void doHumidityConvert(byte[] state) throws OneWireIOException, OneWireException
      Performs a Humidity conversion.
      Specified by:
      doHumidityConvert in interface HumidityContainer
      Parameters:
      state - byte array with device state information
      Throws:
      OneWireIOException - on a 1-Wire communication error such as reading an incorrect CRC from a 1-Wire device. 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'.
      OneWireException - on a communication or setup error with the 1-Wire adapter
    • getHumidity

      public double getHumidity(byte[] state)
      Gets the humidity expressed as a percent value (0.0 to 100.0) of humidity.
      Specified by:
      getHumidity in interface HumidityContainer
      Parameters:
      state - byte array with device state information
      Returns:
      humidity expressed as a percent
      See Also:
    • getHumidityResolution

      public double getHumidityResolution(byte[] state)
      Gets the current Humidity resolution in percent from the state data retrieved from the readDevice() method.
      Specified by:
      getHumidityResolution in interface HumidityContainer
      Parameters:
      state - byte array with device state information
      Returns:
      Humidity resolution in percent for this 1-wire device
      See Also:
    • getHumidityAlarm

      public double getHumidityAlarm(int alarmType, byte[] state) throws OneWireException
      Gets the specified Humidity alarm value in percent from the state data retrieved from the readDevice() method.
      Specified by:
      getHumidityAlarm in interface HumidityContainer
      Parameters:
      alarmType - valid value: ALARM_HIGH or ALARM_LOW
      state - byte array with device state information
      Returns:
      Humidity alarm trip values in percent for this 1-wire device
      Throws:
      OneWireException - Device does not support Humidity alarms
      See Also:
    • setHumidityAlarm

      public void setHumidityAlarm(int alarmType, double alarmValue, byte[] state) throws OneWireException
      Sets the Humidity alarm value in percent in the provided state data. Use the method writeDevice() with this data to finalize the change to the device.
      Specified by:
      setHumidityAlarm in interface HumidityContainer
      Parameters:
      alarmType - valid value: ALARM_HIGH or ALARM_LOW
      alarmValue - alarm trip value in percent
      state - byte array with device state information
      Throws:
      OneWireException - Device does not support Humidity alarms
      See Also:
    • setHumidityResolution

      public void setHumidityResolution(double resolution, byte[] state) throws OneWireException
      Sets the current Humidity resolution in percent in the provided state data. Use the method writeDevice() with this data to finalize the change to the device.
      Specified by:
      setHumidityResolution in interface HumidityContainer
      Parameters:
      resolution - Humidity resolution in percent
      state - byte array with device state information
      Throws:
      OneWireException - Device does not support selectable Humidity resolution
      See Also:
    • getNumberADChannels

      public 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)].
      Specified by:
      getNumberADChannels in interface ADContainer
      Returns:
      the number of channels
    • hasADAlarms

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

      public double[] getADRanges(int channel)
      Gets an array of available ranges for the specified A/D channel.
      Specified by:
      getADRanges in interface ADContainer
      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

      public double[] getADResolutions(int channel, double range)
      Gets an array of available resolutions based on the specified range on the specified A/D channel.
      Specified by:
      getADResolutions in interface ADContainer
      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

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

      public 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.
      Specified by:
      doADConvert in interface ADContainer
      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

      public 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.
      Specified by:
      doADConvert in interface ADContainer
      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

      public 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().
      Specified by:
      getADVoltage in interface ADContainer
      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

      public 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.
      Specified by:
      getADVoltage in interface ADContainer
      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

      public 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.
      Specified by:
      getADAlarm in interface ADContainer
      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

      public 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.
      Specified by:
      getADAlarmEnable in interface ADContainer
      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

      public 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.
      Specified by:
      hasADAlarmed in interface ADContainer
      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

      public 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.
      Specified by:
      getADResolution in interface ADContainer
      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

      public 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.
      Specified by:
      getADRange in interface ADContainer
      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

      public 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.
      Specified by:
      setADAlarm in interface ADContainer
      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

      public 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.
      Specified by:
      setADAlarmEnable in interface ADContainer
      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

      public 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.
      Specified by:
      setADResolution in interface ADContainer
      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

      public 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.
      Specified by:
      setADRange in interface ADContainer
      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:
    • setADReferenceVoltage

      public void setADReferenceVoltage(double referenceVoltage)
    • getADReferenceVoltage

      public double getADReferenceVoltage()
    • setADDeviceBitCount

      public void setADDeviceBitCount(int bits)
    • getADDeviceBitCount

      public int getADDeviceBitCount()
    • setForceADResults

      public void setForceADResults(boolean force)
    • getForceADResults

      public boolean getForceADResults()
    • hasClockAlarm

      public boolean hasClockAlarm()
      Checks to see if the clock has an alarm feature.
      Specified by:
      hasClockAlarm in interface ClockContainer
      Returns:
      false, since this device does not have clock alarms
      See Also:
    • canDisableClock

      public boolean canDisableClock()
      Checks to see if the clock can be disabled.
      Specified by:
      canDisableClock in interface ClockContainer
      Returns:
      true if the clock can be enabled and disabled
      See Also:
    • getClockResolution

      public long getClockResolution()
      Gets the clock resolution in milliseconds
      Specified by:
      getClockResolution in interface ClockContainer
      Returns:
      the clock resolution in milliseconds
    • getClock

      public long getClock(byte[] state)
      Extracts the Real-Time clock value in milliseconds.
      Specified by:
      getClock in interface ClockContainer
      Parameters:
      state - current state of the device returned from readDevice()
      Returns:
      the time represented in this clock in milliseconds since 1970
      See Also:
    • getClockAlarm

      public long getClockAlarm(byte[] state) throws OneWireException
      Extracts the clock alarm value for the Real-Time clock.
      Specified by:
      getClockAlarm in interface ClockContainer
      Parameters:
      state - current state of the device returned from readDevice()
      Returns:
      milliseconds since 1970 that the clock alarm is set to
      Throws:
      OneWireException - if this device does not have clock alarms
      See Also:
    • isClockAlarming

      public boolean isClockAlarming(byte[] state)
      Checks if the clock alarm flag has been set. This will occur when the value of the Real-Time clock equals the value of the clock alarm.
      Specified by:
      isClockAlarming in interface ClockContainer
      Parameters:
      state - current state of the device returned from readDevice()
      Returns:
      true if the Real-Time clock is alarming
      See Also:
    • isClockAlarmEnabled

      public boolean isClockAlarmEnabled(byte[] state)
      Checks if the clock alarm is enabled.
      Specified by:
      isClockAlarmEnabled in interface ClockContainer
      Parameters:
      state - current state of the device returned from readDevice()
      Returns:
      true if clock alarm is enabled
      See Also:
    • isClockRunning

      public boolean isClockRunning(byte[] state)
      Checks if the device's oscillator is enabled. The clock will not increment if the clock oscillator is not enabled.
      Specified by:
      isClockRunning in interface ClockContainer
      Parameters:
      state - current state of the device returned from readDevice()
      Returns:
      true if the clock is running
      See Also:
    • setClock

      public void setClock(long time, byte[] state)
      Sets the Real-Time clock. 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().
      Specified by:
      setClock in interface ClockContainer
      Parameters:
      time - new value for the Real-Time clock, in milliseconds since January 1, 1970
      state - current state of the device returned from readDevice()
      See Also:
    • setClockAlarm

      public void setClockAlarm(long time, byte[] state) throws OneWireException
      Sets the clock alarm. 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 clock devices have alarms. Check to see if this device has alarms first by calling the hasClockAlarm() method.
      Specified by:
      setClockAlarm in interface ClockContainer
      Parameters:
      time - - new value for the Real-Time clock alarm, in milliseconds since January 1, 1970
      state - current state of the device returned from readDevice()
      Throws:
      OneWireException - if this device does not have clock alarms
      See Also:
    • setClockRunEnable

      public void setClockRunEnable(boolean runEnable, byte[] state)
      Enables or disables the oscillator, turning the clock 'on' and 'off'. 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 clock devices can disable their oscillators. Check to see if this device can disable its oscillator first by calling the canDisableClock() method.
      Specified by:
      setClockRunEnable in interface ClockContainer
      Parameters:
      runEnable - true to enable the clock oscillator
      state - current state of the device returned from readDevice()
      See Also:
    • setClockAlarmEnable

      public void setClockAlarmEnable(boolean alarmEnable, byte[] state) throws OneWireException
      Enables or disables the clock alarm. 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 clock devices have alarms. Check to see if this device has alarms first by calling the hasClockAlarm() method.
      Specified by:
      setClockAlarmEnable in interface ClockContainer
      Parameters:
      alarmEnable - true to enable the clock alarm
      state - current state of the device returned from readDevice()
      Throws:
      OneWireException - if this device does not have clock alarms
      See Also: