Class OneWireContainer04

    • Field Detail

      • BITMAP_OFFSET

        protected static final int BITMAP_OFFSET
        Offset of BITMAP in array returned from read registers
        See Also:
        Constant Field Values
      • STATUS_OFFSET

        protected static final int STATUS_OFFSET
        Offset of status register from read registers
        See Also:
        Constant Field Values
      • CONTROL_OFFSET

        protected static final int CONTROL_OFFSET
        Offset of control register from read registers
        See Also:
        Constant Field Values
      • RTC_OFFSET

        protected static final int RTC_OFFSET
        Offset of real-time-clock in array returned from read registers
        See Also:
        Constant Field Values
      • INTERVAL_OFFSET

        protected static final int INTERVAL_OFFSET
        Offset of inverval-counter in array returned from read registers
        See Also:
        Constant Field Values
      • COUNTER_OFFSET

        protected static final int COUNTER_OFFSET
        Offset of counter in array returned from read registers
        See Also:
        Constant Field Values
      • RTC_ALARM_OFFSET

        protected static final int RTC_ALARM_OFFSET
        Offset of real-time-clock-alarm in array returned from read registers
        See Also:
        Constant Field Values
      • INTERVAL_ALARM_OFFSET

        protected static final int INTERVAL_ALARM_OFFSET
        Offset of inverval-counter-alarm in array returned from read registers
        See Also:
        Constant Field Values
      • COUNTER_ALARM_OFFSET

        protected static final int COUNTER_ALARM_OFFSET
        Offset of counter-alarm in array returned from read registers
        See Also:
        Constant Field Values
    • Constructor Detail

      • OneWireContainer04

        public OneWireContainer04()
        Create an empty container that is not complete until after a call to setupContainer.

        This is one of the methods to construct a container. The others are through creating a OneWireContainer with parameters.

        See Also:
        super.setupContainer()
      • OneWireContainer04

        public OneWireContainer04​(DSPortAdapter sourceAdapter,
                                  byte[] newAddress)
        Create a container with the provided adapter instance and the address of the iButton or 1-Wire device.

        This is one of the methods to construct a container. The other is through creating a OneWireContainer with NO parameters.

        Parameters:
        sourceAdapter - adapter instance used to communicate with this iButton
        newAddress - Address of this 1-Wire device
        See Also:
        OneWireContainer04, utils.Address
      • OneWireContainer04

        public OneWireContainer04​(DSPortAdapter sourceAdapter,
                                  long newAddress)
        Create a container with the provided adapter instance and the address of the iButton or 1-Wire device.

        This is one of the methods to construct a container. The other is through creating a OneWireContainer with NO parameters.

        Parameters:
        sourceAdapter - adapter instance used to communicate with this 1-Wire device
        newAddress - Address of this 1-Wire device
        See Also:
        OneWireContainer04, utils.Address
      • OneWireContainer04

        public OneWireContainer04​(DSPortAdapter sourceAdapter,
                                  java.lang.String newAddress)
        Create a container with the provided adapter instance and the address of the iButton or 1-Wire device.

        This is one of the methods to construct a container. The other is through creating a OneWireContainer with NO parameters.

        Parameters:
        sourceAdapter - adapter instance used to communicate with this 1-Wire device
        newAddress - Address of this 1-Wire device
        See Also:
        OneWireContainer04, utils.Address
    • Method Detail

      • getName

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

        public java.lang.String getAlternateNames()
        Get the alternate Maxim Integrated Products part numbers or names. A 'family' of 1-Wire Network 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:
        1-Wire device alternate names
      • getDescription

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

        public long getClockResolution()
        Query to get the clock resolution in milliseconds
        Specified by:
        getClockResolution in interface ClockContainer
        Returns:
        the clock resolution in milliseconds
      • 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
      • 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:
        OneWireSensor.readDevice(), setClock(long,byte[])
      • getIntervalTimer

        public long getIntervalTimer​(byte[] state)
        Get the Interval Timer Value in milliseconds.
        Parameters:
        state - current state of the device returned from readDevice()
        Returns:
        time in milliseconds that have occurred since the interval counter was started
        See Also:
        OneWireSensor.readDevice(), setIntervalTimer(long,byte[])
      • getCycleCounter

        public long getCycleCounter​(byte[] state)
        Get the power cycle count value. This is the total number of power cycles that the DS1994 has seen since the counter was reset.
        Parameters:
        state - current state of the device returned from readDevice()
        Returns:
        power cycle count
        See Also:
        OneWireSensor.readDevice(), setCycleCounter
      • getIntervalTimerAlarm

        public long getIntervalTimerAlarm​(byte[] state)
        Get the Interval Timer Alarm Value.
        Parameters:
        state - current state of the device returned from readDevice()
        Returns:
        time in milliseconds that have the interval timer alarm is set to
        See Also:
        OneWireSensor.readDevice(), setIntervalTimerAlarm
      • getCycleCounterAlarm

        public long getCycleCounterAlarm​(byte[] state)
        Get the cycle count Alarm Value.
        Parameters:
        state - current state of the device returned from readDevice()
        Returns:
        total number of power cycles that the DS1994 has to to see before the alarm will be triggered
        See Also:
        OneWireSensor.readDevice(), setCycleCounterAlarm
      • isClockWriteProtected

        public boolean isClockWriteProtected​(byte[] state)
        Check if the Real-Time clock/Alarm is write protected.
        Parameters:
        state - current state of the device returned from readDevice()
        Returns:
        true if real time clock/alarm is write protected
        See Also:
        OneWireSensor.readDevice(), writeProtectClock
      • isIntervalTimerWriteProtected

        public boolean isIntervalTimerWriteProtected​(byte[] state)
        Check if the Interval Timer and Interval Timer Alarm register is write protected.
        Parameters:
        state - current state of the device returned from readDevice()
        Returns:
        true if interval timer and interval timer alarm is write protected
        See Also:
        OneWireSensor.readDevice(), writeProtectIntervalTimer
      • isCycleCounterWriteProtected

        public boolean isCycleCounterWriteProtected​(byte[] state)
        Check if the Cycle Counter and Alarm is write protected.
        Parameters:
        state - current state of the device returned from readDevice()
        Returns:
        true if cycle counter/alarm is write protected
        See Also:
        OneWireSensor.readDevice(), writeProtectCycleCounter
      • canReadAfterExpire

        public boolean canReadAfterExpire​(byte[] state)
        Check if the device can be read after a write protected alarm has occurred.
        Parameters:
        state - current state of the device returned from readDevice()
        Returns:
        true if the device can be read after a write protected alarm has occurred
        See Also:
        OneWireSensor.readDevice(), setReadAfterExpire
      • isIntervalTimerAutomatic

        public boolean isIntervalTimerAutomatic​(byte[] state)
        Checks if the Interval timer is automatic or manual. If it is automatic then the interval counter will increment while the devices I/O line is high after the delay select period has elapsed (either 3.5 or 123 ms, see the isAutomaticDelayLong() method).
        Parameters:
        state - current state of the device returned from readDevice()
        Returns:
        true if the interval timer is set to automatic mode
        See Also:
        OneWireSensor.readDevice(), setIntervalTimerAutomatic
      • isAutomaticDelayLong

        public boolean isAutomaticDelayLong​(byte[] state)
        Checks if the automatic delay for the Interval Timer and the Cycle counter is either 3.5ms (regular) or 123ms (long).
        Parameters:
        state - current state of the device returned from readDevice()
        Returns:
        true if the automatic interval/cycle counter delay is in the long (123ms) mode, else it is 3.5ms
        See Also:
        OneWireSensor.readDevice(), setAutomaticDelayLong
      • setClock

        public void setClock​(long time,
                             byte[] state)
        Sets the Real-Time clock. The method writeDevice(byte[]) must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice(byte[]).
        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:
        OneWireSensor.writeDevice(byte[]), getClock(byte[])
      • setClockRunEnable

        public void setClockRunEnable​(boolean runEnable,
                                      byte[] state)
                               throws OneWireException
        Enables or disables the oscillator, turning the clock 'on' and 'off'. The method writeDevice(byte[]) must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice(byte[]). 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()
        Throws:
        OneWireException - if the clock oscillator cannot be disabled
        See Also:
        OneWireSensor.writeDevice(byte[]), canDisableClock(), isClockRunning(byte[])
      • setIntervalTimer

        public void setIntervalTimer​(long time,
                                     byte[] state)
        Sets the Interval Timer. The method writeDevice(byte[]) must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice(byte[]).
        Parameters:
        time - interval in milliseconds to set (truncated to 1/256th of second)
        state - current state of the device returned from readDevice()
        See Also:
        OneWireSensor.writeDevice(byte[]), getIntervalTimer
      • setCycleCounter

        public void setCycleCounter​(long cycles,
                                    byte[] state)
        Sets power Cycle Counter. The method writeDevice(byte[]) must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice(byte[]).
        Parameters:
        cycles - initialize cycle counter value
        state - current state of the device returned from readDevice()
        See Also:
        OneWireSensor.writeDevice(byte[]), getCycleCounter
      • setIntervalTimerAlarm

        public void setIntervalTimerAlarm​(long time,
                                          byte[] state)
        Sets the Interval Timer Alarm. The method writeDevice(byte[]) must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice(byte[]).
        Parameters:
        time - in milliseconds to set the interval timer
        state - current state of the device returned from readDevice()
        See Also:
        OneWireSensor.writeDevice(byte[]), getIntervalTimerAlarm
      • setCycleCounterAlarm

        public void setCycleCounterAlarm​(long cycles,
                                         byte[] state)
        Sets the power Cycle Count Alarm. This counter holds the number of times the DS1994 must experience power cycles before it generates an alarm. The method writeDevice(byte[]) must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice(byte[]).
        Parameters:
        cycles - power Cycle Count alarm
        state - current state of the device returned from readDevice()
        See Also:
        OneWireSensor.writeDevice(byte[]), getCycleCounterAlarm
      • writeProtectClock

        public void writeProtectClock​(byte[] state)
        Sets the write protect options for the Real-Time clock/Alarm. The method writeDevice(byte[]) must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice(byte[]).

        WARNING: after calling this method and then writeDevice the device will be permanently write protected.


        Parameters:
        state - current state of the device returned from readDevice()
        See Also:
        OneWireSensor.writeDevice(byte[]), isClockWriteProtected
      • writeProtectIntervalTimer

        public void writeProtectIntervalTimer​(byte[] state)
        Sets the write protect options for Interval Timer and Interval Timer Alarm register. The method writeDevice(byte[]) must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice(byte[]).

        WARNING: after calling this method and then writeDevice the device will be permanently write protected.


        Parameters:
        state - current state of the device returned from readDevice()
        See Also:
        OneWireSensor.writeDevice(byte[]), isIntervalTimerWriteProtected
      • writeProtectCycleCounter

        public void writeProtectCycleCounter​(byte[] state)
        Sets the write protect options for the Cycle Counter and Alarm register. The method writeDevice(byte[]) must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice(byte[]).

        WARNING: after calling this method and then writeDevice the device will be permanently write protected.


        Parameters:
        state - current state of the device returned from readDevice()
        See Also:
        OneWireSensor.writeDevice(byte[]), isCycleCounterWriteProtected
      • setReadAfterExpire

        public void setReadAfterExpire​(boolean readAfter,
                                       byte[] state)
        Sets the read state of the device after a write protected alarm has occurred. The method writeDevice(byte[]) must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice(byte[]).
        Parameters:
        readAfter - true to read device after it expires from a write protected alarm event
        state - current state of the device returned from readDevice()
        See Also:
        OneWireSensor.writeDevice(byte[]), canReadAfterExpire
      • setIntervalTimerAutomatic

        public void setIntervalTimerAutomatic​(boolean autoTimer,
                                              byte[] state)
        Sets the Interval timer to automatic or manual mode. When in automatic mode, the interval counter will increment while the devices I/O line is high after the delay select period has elapsed (either 3.5 or 123 ms, see the isAutomaticDelayLong() method). The method writeDevice(byte[]) must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice(byte[]).
        Parameters:
        autoTimer - true for the interval timer to operate in automatic mode
        state - current state of the device returned from readDevice()
        See Also:
        OneWireSensor.writeDevice(byte[]), isIntervalTimerAutomatic
      • setIntervalTimerRunState

        public void setIntervalTimerRunState​(boolean runState,
                                             byte[] state)
        Sets the Interval timer run/stop mode. This only has meaning if the interval timer is in manual mode (not isIntervalTimerAutomatic()). The method writeDevice(byte[]) must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice(byte[]).
        Parameters:
        runState - true to set the interval timer to run
        state - current state of the device returned from readDevice()
        See Also:
        OneWireSensor.writeDevice(byte[]), isIntervalTimerAutomatic, isIntervalTimerStopped
      • setAutomaticDelayLong

        public void setAutomaticDelayLong​(boolean delayLong,
                                          byte[] state)
        Sets the automatic delay for the Interval Timer and the Cycle counter to either 123ms (long) or 3.5ms (regular). The method writeDevice(byte[]) must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice(byte[]).
        Parameters:
        delayLong - true to set the interval timer to cycle counter to increment after 123ms or false for 3.5ms
        state - current state of the device returned from readDevice()
        See Also:
        OneWireSensor.writeDevice(byte[]), isAutomaticDelayLong
      • setIntervalTimerAlarmEnable

        public void setIntervalTimerAlarmEnable​(boolean alarmEnable,
                                                byte[] state)
        Sets the Interval Timer Alarm enable. The method writeDevice(byte[]) must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice(byte[]).
        Parameters:
        alarmEnable - true to enable the interval timer alarm
        state - current state of the device returned from readDevice()
        See Also:
        OneWireSensor.writeDevice(byte[]), isIntervalTimerAlarmEnabled
      • setCycleCounterAlarmEnable

        public void setCycleCounterAlarmEnable​(boolean alarmEnable,
                                               byte[] state)
        Sets the Cycle counter Alarm enable. The method writeDevice(byte[]) must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice(byte[]).
        Parameters:
        alarmEnable - true to enable the cycle counter alarm
        state - current state of the device returned from readDevice()
        See Also:
        OneWireSensor.writeDevice(byte[]), isCycleCounterAlarmEnabled