|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Interface class for 1-Wire® switch devices. This class should be implemented for each switch type 1-Wire device.
SwitchContainer
extends OneWireSensor
, so the general usage
model applies to any SwitchContainer
:
SwitchContainer
Consider this interaction with a SwitchContainer
that toggles
all of the switches on the device:
//switchcontainer is a com.dalsemi.onewire.container.SwitchContainer
byte[] state = switchcontainer.readDevice();
int number_of_switches = switchcontainer.getNumberChannels(state);
System.out.println("This device has "+number_of_switches+" switches");
for (int i=0; i < number_of_switches; i++)
{
boolean switch_state = switchcontainer.getLatchState(i, state);
System.out.println("Switch "+i+" is "+(switch_state ? "on" : "off"));
switchcontainer.setLatchState(i,!switch_state,false,state);
}
switchcontainer.writeDevice(state);
OneWireSensor
,
ClockContainer
,
TemperatureContainer
,
PotentiometerContainer
,
ADContainer
Method Summary | |
void |
clearActivity()
Clears the activity latches the next time possible. |
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. |
int |
getNumberChannels(byte[] state)
Gets the number of channels supported by this switch. |
boolean |
getSensedActivity(int channel,
byte[] state)
Checks if the indicated channel has experienced activity. |
boolean |
hasActivitySensing()
Checks to see if the channels of this switch support activity sensing. |
boolean |
hasLevelSensing()
Checks to see if the channels of this switch support level sensing. |
boolean |
hasSmartOn()
Checks to see if the channels of this switch support 'smart on'. |
boolean |
isHighSideSwitch()
Checks to see if the channels of this switch are 'high side' switches. |
boolean |
onlySingleChannelOn()
Checks to see if the channels of this switch require that only one channel is on at any one time. |
void |
setLatchState(int channel,
boolean latchState,
boolean doSmart,
byte[] state)
Sets the latch state of the indicated channel. |
Methods inherited from interface com.dalsemi.onewire.container.OneWireSensor |
readDevice, writeDevice |
Method Detail |
public boolean isHighSideSwitch()
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.true
if the switch is a 'high side' switch,
false
if the switch is a 'low side' switchgetLatchState(int,byte[])
public boolean hasActivitySensing()
true
then the
method getSensedActivity(int,byte[])
can be used.true
if channels support activity sensinggetSensedActivity(int,byte[])
,
clearActivity()
public boolean hasLevelSensing()
true
then the
method getLevel(int,byte[])
can be used.true
if channels support level sensinggetLevel(int,byte[])
public boolean hasSmartOn()
true
then the
method setLatchState(int,boolean,boolean,byte[])
can be used with the doSmart
parameter true
.true
if channels support 'smart on'setLatchState(int,boolean,boolean,byte[])
public boolean onlySingleChannelOn()
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.true
if only one channel can be on at a time.setLatchState(int,boolean,boolean,byte[])
public int getNumberChannels(byte[] state)
getNumberChannels(byte[])
- 1)]. Note that
all devices of the same family will not necessarily have the
same number of channels. The DS2406 comes in two packages--one that
has a single channel, and one that has two channels.state
- current state of the device returned from readDevice()
public boolean getLevel(int channel, byte[] state) throws OneWireException
hasLevelSensing()
.
Level sensing means that the device can sense the logic
level on its PIO pin.channel
- channel to execute this operation, in the range [0 to (getNumberChannels(byte[])
- 1)]state
- current state of the device returned from readDevice()
true
if level sensed is 'high' and false
if level sensed is 'low'OneWireSensor.readDevice()
,
hasLevelSensing()
public boolean getLatchState(int channel, byte[] state)
channel
- channel to execute this operation, in the range [0 to (getNumberChannels(byte[])
- 1)]state
- current state of the device returned from readDevice()
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.OneWireSensor.readDevice()
,
isHighSideSwitch()
,
setLatchState(int,boolean,boolean,byte[])
public boolean getSensedActivity(int channel, byte[] state) throws OneWireException
clearActivity()
.
To avoid an exception, verify that this device supports activity
sensing by calling the method hasActivitySensing()
.channel
- channel to execute this operation, in the range [0 to (getNumberChannels(byte[])
- 1)]state
- current state of the device returned from readDevice()
true
if activity was detected and false
if no activity was detectedOneWireException
- if this device does not have activity sensinghasActivitySensing()
,
clearActivity()
public void setLatchState(int channel, boolean latchState, boolean doSmart, byte[] state)
writeDevice()
must be called to finalize
changes to the device. Note that multiple 'set' methods can
be called before one call to writeDevice()
.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()
hasSmartOn()
,
getLatchState(int,byte[])
,
OneWireSensor.writeDevice(byte[])
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()
.
The activity latches will only be cleared once. With the
DS2406/07, this means that only the first call to readDevice()
will clear the activity latches. Subsequent calls to readDevice()
will leave the activity latch states intact, unless this method has been invoked
since the last call to readDevice()
.
OneWireException
- if this device does not support activity sensingOneWireSensor.readDevice()
,
getSensedActivity(int,byte[])
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |