com.dalsemi.onewire.container
Class OneWireContainer1C

java.lang.Object
  |
  +--com.dalsemi.onewire.container.OneWireContainer
        |
        +--com.dalsemi.onewire.container.OneWireContainer1C
All Implemented Interfaces:
OneWireSensor, SwitchContainer

public class OneWireContainer1C
extends OneWireContainer
implements SwitchContainer

1-Wire® container for a Addressable 1-Wire 4K-bit EEPROM, DS28E04. This container encapsulates the functionality of the 1-Wire family type 1C (hex)

Features

Usage

Version:
1.00, 06 Jul 2004
Author:
SKH
See Also:
OneWireSensor, SwitchContainer, OneWireContainer

Field Summary
static byte PIO_ACCESS_PULSE
          Generates a pulse on the selected PIOs
static byte PIO_ACCESS_READ
          Reads the PIO logical status in an endless loops
static byte PIO_ACCESS_WRITE
          Writes the PIO output latch
static byte RESET_ACTIVITY_LATCHES
          Generates a pulse on the selected PIOs
static byte WRITE_REGISTER
          Writes the value to the Conditional Search registers or Control/Status register
 
Constructor Summary
OneWireContainer1C()
          Creates a new OneWireContainer for communication with a DS28E04.
OneWireContainer1C(DSPortAdapter sourceAdapter, byte[] newAddress)
          Creates a new OneWireContainer for communication with a DS28E04.
OneWireContainer1C(DSPortAdapter sourceAdapter, long newAddress)
          Creates a new OneWireContainer for communication with a DS28E04.
OneWireContainer1C(DSPortAdapter sourceAdapter, String newAddress)
          Creates a new OneWireContainer for communication with a DS28E04.
 
Method Summary
 void andConditionalSearch(byte[] register)
          Checks if the 'and' Conditional Search is set and if not sets it.
 void clearActivity()
          Clears the activity latches the next time possible.
 void clearPowerOnReset(byte[] register)
          Checks if the Power On Reset if on and if so clears it.
 String getAlternateNames()
          Retrieves the alternate Dallas Semiconductor part numbers or names.
 boolean getChannelMask(int channel, byte[] register)
          Retrieves the information if the channel is masked for the Conditional Search.
 boolean getChannelPolarity(int channel, byte[] register)
          Retrieves the polarity of the channel for the Conditional Search.
 boolean getDefaultPolarity(byte[] register)
           
 String getDescription()
          Gets a short description of the function of this iButton or 1-Wire Device type.
 boolean getLatchState(int channel, byte[] state)
          Checks the latch state of the indicated channel.
 boolean getLevel(int channel, byte[] state)
          Checks the sensed level on the indicated channel.
 Enumeration getMemoryBanks()
          Gets an enumeration of memory bank instances that implement one or more of the following interfaces: MemoryBank, PagedMemoryBank, and OTPMemoryBank.
 String getName()
          Gets the Dallas Semiconductor part number of the iButton or 1-Wire Device as a java.lang.String.
 int getNumberChannels(byte[] state)
          Gets the number of channels supported by this switch.
 boolean getPowerOnResetLatch(byte[] register)
           
 boolean getSensedActivity(int channel, byte[] state)
          Checks if the indicated channel has experienced activity.
 boolean hasActivitySensing()
          Checks if the channels of this switch support activity sensing.
 boolean hasLevelSensing()
          Checks if the channels of this switch support level sensing.
 boolean hasSmartOn()
          Checks if the channels of this switch support 'smart on'.
 boolean isHighSideSwitch()
          Checks if the channels of this switch are 'high side' switches.
 boolean isVccPowered(byte[] register)
          Retrieves the state of the VCC pin.
 boolean onlySingleChannelOn()
          Checks if the channels of this switch require that only one channel is on at any one time.
 void orConditionalSearch(byte[] register)
          Checks if the 'or' Condition Search is set and if not sets it.
 byte[] readDevice()
          Retrieves the 1-Wire device sensor state.
 byte[] readRegister()
          Retrieves the 1-Wire device register mask.
 void setChannelMask(int channel, boolean set, byte[] register)
          Sets the channel passed to the proper state depending on the set parameter for responding to the Conditional Search.
 void setChannelPolarity(int channel, boolean set, byte[] register)
          Sets the channel passed to the proper state depending on the set parameter for the correct polarity in the Conditional Search.
 void setConditionalSearchActivity(byte[] register)
          Checks if the 'PIO Activity latches' are set for Conditional Search and if not sets it.
 void setConditionalSearchLogicLevel(byte[] register)
          Checks if the 'PIO Level' Conditional Search is set for input and if not sets it.
 void setLatchState(byte set, byte[] state)
          Sets the latch state for all of the channels.
 void setLatchState(int channel, boolean latchState, boolean doSmart, byte[] state)
          Sets the latch state of the indicated channel.
 void writeDevice(byte[] state)
          Updates the latch state for the 2 general purpose PIO pins.
 void writeRegister(byte[] register)
          Writes the 1-Wire device register mask that have been changed by 'set' methods.
 
Methods inherited from class com.dalsemi.onewire.container.OneWireContainer
doSpeed, equals, getAdapter, getAddress, getAddressAsLong, getAddressAsString, getMaxSpeed, hashCode, isAlarming, isPresent, setSpeed, setupContainer, setupContainer, setupContainer, toString
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

PIO_ACCESS_READ

public static final byte PIO_ACCESS_READ
Reads the PIO logical status in an endless loops

PIO_ACCESS_WRITE

public static final byte PIO_ACCESS_WRITE
Writes the PIO output latch

PIO_ACCESS_PULSE

public static final byte PIO_ACCESS_PULSE
Generates a pulse on the selected PIOs

RESET_ACTIVITY_LATCHES

public static final byte RESET_ACTIVITY_LATCHES
Generates a pulse on the selected PIOs

WRITE_REGISTER

public static final byte WRITE_REGISTER
Writes the value to the Conditional Search registers or Control/Status register
Constructor Detail

OneWireContainer1C

public OneWireContainer1C()
Creates a new OneWireContainer for communication with a DS28E04. Note that the method setupContainer(com.dalsemi.onewire.adapter.DSPortAdapter,byte[]) must be called to set the correct DSPortAdapter device address.
See Also:
setupContainer(DSPortAdapter,byte[]), OneWireContainer1C(DSPortAdapter,byte[]), OneWireContainer1C(DSPortAdapter,long), OneWireContainer1C(DSPortAdapter,String)

OneWireContainer1C

public OneWireContainer1C(DSPortAdapter sourceAdapter,
                          byte[] newAddress)
Creates a new OneWireContainer for communication with a DS28E04.
Parameters:
sourceAdapter - adapter object required to communicate with this 1-Wire device
newAddress - address of this DS28E04
See Also:
OneWireContainer1C(), OneWireContainer1C(DSPortAdapter,long), OneWireContainer1C(DSPortAdapter,String)

OneWireContainer1C

public OneWireContainer1C(DSPortAdapter sourceAdapter,
                          long newAddress)
Creates a new OneWireContainer for communication with a DS28E04.
Parameters:
sourceAdapter - adapter object required to communicate with this 1-Wire device
newAddress - address of this DS28E04
See Also:
OneWireContainer1C(), OneWireContainer1C(DSPortAdapter,byte[]), OneWireContainer1C(DSPortAdapter,String)

OneWireContainer1C

public OneWireContainer1C(DSPortAdapter sourceAdapter,
                          String newAddress)
Creates a new OneWireContainer for communication with a DS28E04.
Parameters:
sourceAdapter - adapter object required to communicate with this 1-Wire device
newAddress - address of this DS28E04
See Also:
OneWireContainer1C(), OneWireContainer1C(DSPortAdapter,byte[]), OneWireContainer1C(DSPortAdapter,long)
Method Detail

getName

public String getName()
Gets the Dallas Semiconductor part number of the iButton or 1-Wire Device as a java.lang.String.
Overrides:
getName in class OneWireContainer
Returns:
iButton or 1-Wire device name

getMemoryBanks

public Enumeration 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

getAlternateNames

public String getAlternateNames()
Retrieves the alternate Dallas Semiconductor 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

getNumberChannels

public int getNumberChannels(byte[] state)
Gets the number of channels supported by this switch. Channel specific methods will use a channel number specified by an integer from [0 to (getNumberChannels(byte[]) - 1)]. Note that all devices of the same family will not necessarily have the same number of channels.
Specified by:
getNumberChannels in interface SwitchContainer
Parameters:
state - current state of the device returned from readDevice()
Returns:
the number of channels for this device
See Also:
OneWireSensor.readDevice()

isHighSideSwitch

public boolean isHighSideSwitch()
Checks if the channels of this switch are 'high side' switches. This indicates that when 'on' or true, the switch output is connect to the 1-Wire data. If this method returns false then when the switch is 'on' or true, the switch is connected to ground.
Specified by:
isHighSideSwitch in interface SwitchContainer
Returns:
true if the switch is a 'high side' switch, false if the switch is a 'low side' switch
See Also:
getLatchState(int,byte[])

hasActivitySensing

public boolean hasActivitySensing()
Checks if the channels of this switch support activity sensing. If this method returns true then the method getSensedActivity(int,byte[]) can be used.
Specified by:
hasActivitySensing in interface SwitchContainer
Returns:
true if channels support activity sensing
See Also:
getSensedActivity(int,byte[]), clearActivity()

hasLevelSensing

public boolean hasLevelSensing()
Checks if the channels of this switch support level sensing. If this method returns true then the method getLevel(int,byte[]) can be used.
Specified by:
hasLevelSensing in interface SwitchContainer
Returns:
true if channels support level sensing
See Also:
getLevel(int,byte[])

hasSmartOn

public boolean hasSmartOn()
Checks if the channels of this switch support 'smart on'. Smart on is the ability to turn on a channel such that only 1-Wire device on this channel are awake and ready to do an operation. This greatly reduces the time to discover the device down a branch. If this method returns true then the method setLatchState(int,boolean,boolean,byte[]) can be used with the doSmart parameter true.
Specified by:
hasSmartOn in interface SwitchContainer
Returns:
true if channels support 'smart on'
See Also:
setLatchState(int,boolean,boolean,byte[])

onlySingleChannelOn

public boolean onlySingleChannelOn()
Checks if the channels of this switch require that only one channel is on at any one time. If this method returns true then the method setLatchState(int,boolean,boolean,byte[]) will not only affect the state of the given channel but may affect the state of the other channels as well to insure that only one channel is on at a time.
Specified by:
onlySingleChannelOn in interface SwitchContainer
Returns:
true if only one channel can be on at a time.
See Also:
setLatchState(int,boolean,boolean,byte[])

getLevel

public boolean getLevel(int channel,
                        byte[] state)
Checks the sensed level on the indicated channel. To avoid an exception, verify that this switch has level sensing with the hasLevelSensing(). Level sensing means that the device can sense the logic level on its PIO pin.
Specified by:
getLevel in interface SwitchContainer
Parameters:
channel - channel to execute this operation, in the range [0 to (getNumberChannels(byte[]) - 1)]
state - current state of the device returned from readDevice()
Returns:
true if level sensed is 'high' and false if level sensed is 'low'
See Also:
OneWireSensor.readDevice(), hasLevelSensing()

getLatchState

public boolean getLatchState(int channel,
                             byte[] state)
Checks the latch state of the indicated channel.
Specified by:
getLatchState in interface SwitchContainer
Parameters:
channel - channel to execute this operation, in the range [0 to (getNumberChannels(byte[]) - 1)]
state - current state of the device returned from readDevice()
Returns:
true if channel latch is 'on' or conducting and false if channel latch is 'off' and not conducting. Note that the actual output when the latch is 'on' is returned from the isHighSideSwitch() method.
See Also:
OneWireSensor.readDevice(), isHighSideSwitch(), setLatchState(int,boolean,boolean,byte[])

getSensedActivity

public boolean getSensedActivity(int channel,
                                 byte[] state)
                          throws OneWireException
Checks if the indicated channel has experienced activity. This occurs when the level on the PIO pins changes. To clear the activity that is reported, call clearActivity(). To avoid an exception, verify that this device supports activity sensing by calling the method hasActivitySensing().
Specified by:
getSensedActivity in interface SwitchContainer
Parameters:
channel - channel to execute this operation, in the range [0 to (getNumberChannels(byte[]) - 1)]
state - current state of the device returned from readDevice()
Returns:
true if activity was detected and false if no activity was detected
Throws:
OneWireException - if this device does not have activity sensing
See Also:
hasActivitySensing(), clearActivity()

clearActivity

public void clearActivity()
                   throws OneWireException
Clears the activity latches the next time possible. For example, on a DS2406/07, this happens the next time the status is read with readDevice().
Specified by:
clearActivity in interface SwitchContainer
Throws:
OneWireException - if this device does not support activity sensing
See Also:
OneWireSensor.readDevice(), getSensedActivity(int,byte[])

setLatchState

public void setLatchState(int channel,
                          boolean latchState,
                          boolean doSmart,
                          byte[] state)
Sets the latch state of the indicated 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().
Specified by:
setLatchState in interface SwitchContainer
Parameters:
channel - channel to execute this operation, in the range [0 to (getNumberChannels(byte[]) - 1)]
latchState - true to set the channel latch 'on' (conducting) and false to set the channel latch 'off' (not conducting). Note that the actual output when the latch is 'on' is returned from the isHighSideSwitch() method.
doSmart - If latchState is 'on'/true then doSmart indicates if a 'smart on' is to be done. To avoid an exception check the capabilities of this device using the hasSmartOn() method.
state - current state of the device returned from readDevice()
See Also:
hasSmartOn(), getLatchState(int,byte[]), OneWireSensor.writeDevice(byte[])

setLatchState

public void setLatchState(byte set,
                          byte[] state)
Sets the latch state for all of the channels. 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().
Parameters:
set - the state to set all of the channels, in the range [0 to (getNumberChannels(byte[]) - 1)]
state - current state of the device returned from readDevice()
See Also:
getLatchState(int,byte[]), OneWireSensor.writeDevice(byte[])

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

readRegister

public byte[] readRegister()
                    throws OneWireIOException,
                           OneWireException
Retrieves the 1-Wire device register mask. This register is returned as a byte array. Pass this byte array to the 'get' and 'set' methods. If the device register mask needs to be changed then call the 'writeRegister' to finalize the changes.
Returns:
1-Wire device register mask
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
Updates the latch state for the 2 general purpose PIO pins. This has the side-effect of also sampling the PIO pins level after updating the latch, so the state buffer is updated with this new level information.
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

writeRegister

public void writeRegister(byte[] register)
                   throws OneWireIOException,
                          OneWireException
Writes the 1-Wire device register mask that have been changed by 'set' methods.
Parameters:
register - 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

isVccPowered

public boolean isVccPowered(byte[] register)
                     throws OneWireIOException,
                            OneWireException
Retrieves the state of the VCC pin. If the pin is powered 'TRUE' is returned else 'FALSE' is returned if the pin is grounded.
Returns:
true if VCC is powered and false if it is grounded.
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

getDefaultPolarity

public boolean getDefaultPolarity(byte[] register)

getPowerOnResetLatch

public boolean getPowerOnResetLatch(byte[] register)

clearPowerOnReset

public void clearPowerOnReset(byte[] register)
Checks if the Power On Reset if on and if so clears it.
Parameters:
register - current register for conditional search, which if returned from readRegister()

orConditionalSearch

public void orConditionalSearch(byte[] register)
Checks if the 'or' Condition Search is set and if not sets it.
Parameters:
register - current register for conditional search, which if returned from readRegister()

andConditionalSearch

public void andConditionalSearch(byte[] register)
Checks if the 'and' Conditional Search is set and if not sets it.
Parameters:
register - current register for conditional search, which if returned from readRegister()

setConditionalSearchLogicLevel

public void setConditionalSearchLogicLevel(byte[] register)
Checks if the 'PIO Level' Conditional Search is set for input and if not sets it.
Parameters:
pinActivity - if true, the activity latch for the pin is used for the conditional search. Otherwise, the sensed level of the pin is used for the conditional search.
register - current register for conditional search, which if returned from readRegister()

setConditionalSearchActivity

public void setConditionalSearchActivity(byte[] register)
Checks if the 'PIO Activity latches' are set for Conditional Search and if not sets it.
Parameters:
register - current register for conditional search, which if returned from readRegister()

setChannelMask

public void setChannelMask(int channel,
                           boolean set,
                           byte[] register)
Sets the channel passed to the proper state depending on the set parameter for responding to the Conditional Search.
Parameters:
channel - current channel to set
set - whether to turn the channel on/off for Conditional Search
register - current register for conditional search, which if returned from readRegister()

setChannelPolarity

public void setChannelPolarity(int channel,
                               boolean set,
                               byte[] register)
Sets the channel passed to the proper state depending on the set parameter for the correct polarity in the Conditional Search.
Parameters:
channel - current channel to set
set - whether to turn the channel on/off for polarity Conditional Search
register - current register for conditional search, which if returned from readRegister()

getChannelMask

public boolean getChannelMask(int channel,
                              byte[] register)
Retrieves the information if the channel is masked for the Conditional Search.
Parameters:
channel - current channel to set
register - current register for conditional search, which if returned from readRegister()
Returns:
true if the channel is masked and false other wise.

getChannelPolarity

public boolean getChannelPolarity(int channel,
                                  byte[] register)
Retrieves the polarity of the channel for the Conditional Search.
Parameters:
channel - current channel to set
register - current register for conditional search, which if returned from readRegister()
Returns:
true if the channel is masked and false other wise.


Copyright © 1999-2005 Dallas Semiconductor. All Rights Reserved.