stella.roof
Class LightSwitch

java.lang.Object
  extended by util.PropertyContainer
      extended by util.PropertyResources
          extended by util.PropertyBundles
              extended by stella.parameter.AbstractParameter
                  extended by stella.parameter.AbstractTrigger
                      extended by stella.parameter.SimpleTrigger
                          extended by stella.parameter.AbstractSwitch
                              extended by stella.parameter.RS485Switch
                                  extended by stella.roof.LightSwitch
All Implemented Interfaces:
DriverDepending, Cloneable, EventListener, CacheChangedListener, Parameter, ParameterDepending, Switch, Trigger, ExitCleaning, Initializable, LocalizedSupplying, PropertySupplying, Reloadable, ResourceSupplying

public class LightSwitch
extends RS485Switch
implements ParameterDepending, CacheChangedListener

A class providing access to a RS485-enabled light switch. This means the following:


Nested Class Summary
 
Nested classes/interfaces inherited from class util.PropertyResources
PropertyResources.URLResource
 
Field Summary
private static boolean DEFALLOWONCLEAR
          The default allowance to switch on light during night.
private static int DEFCHANNEL
          The defalt input channel to read.
private static boolean DEFINVERSE
          The default inverse mask interpretation (false).
private static int DEFMASK
          The bits masking to the open-roof switches, used as default.
static String DEFNAME
          The default parameter name.
private static String DEFREADSWITCH
          The default read switch string.
private static String DEFSERIAL
          The default serial driver name.
private static int DEFSKIP
          The default number of chars to skip on digital input.
private static String DEFSWITCHOFF
          The default serial command to switch on the light.
private static String DEFSWITCHON
          The default serial command to switch on the light.
private static long DEFTIMEOUT
          The default time out after witch light is turned off again.
private  Trigger forced
          Monitors forced switches.
static String KEY_ALLOWONCLEAR
          If true, light may also be switched on during roof open.
static String KEY_CHANNEL
          The key pointing to the digital input word to interpret.
static String KEY_INVERSE
          The key for interpreting the mask inversely, true or false.
static String KEY_MASK
          The key for interpreting the return bitmask as true or false.
static String KEY_READSWITCH
          The key linked to the string sent to the serial port before reading.
static String KEY_SKIP
          The key for skiping leading bytes on digital input.
static String KEY_TIMEOUT
          The default time out for light switch off.
private  Trigger open
          The roof-open trigger.
 
Fields inherited from class stella.parameter.RS485Switch
KEY_INITOFF, KEY_SERIAL, KEY_SWITCHOFF, KEY_SWITCHON
 
Fields inherited from class stella.parameter.SimpleTrigger
KEY_INITBOOLEAN
 
Fields inherited from class stella.parameter.AbstractParameter
KEY_FORMAT, KEY_NAME, KEY_PRESERVE, UNKNOWN
 
Fields inherited from class util.PropertyBundles
KEY_LOCALECOUNTRY, KEY_LOCALELANGUAGE, KEY_RESOURCEBUNDLES
 
Fields inherited from class util.PropertyResources
KEY_NOINITONCREATE, localurl, locate, POSTFIX_DIR, POSTFIX_EXT, POSTFIX_FILE, POSTFIX_LIST, POSTFIX_URL, urlset
 
Fields inherited from class util.PropertyContainer
KEY_LISTSEPARATOR, KEY_MAPKEYVALUECHAR, KEY_MAPSEPARATOR
 
Fields inherited from interface util.PropertySupplying
CONFIG, KEY_CLASS
 
Fields inherited from interface util.ResourceSupplying
KEY_URLRESOURCES, KEY_URLUSECONFIG, KEY_URLUSECURRENT, KEY_URLUSEHOME
 
Constructor Summary
LightSwitch(Map prop)
          Constructs a new light switch trigger.
 
Method Summary
protected  Boolean getBooleanFromResponse(String read)
          This method transforms the output of the switches into a single information whether the roof-switches are down.
protected  int getDigiatlIOChannelsFromResponse(String read)
          The string read in from the serial port has the following format:
 void init()
          Initializes the light switch.
 void newValue(CacheChangedEvent cce)
          First, get the current state of the trigger.
 boolean registerDriver(Driver server)
          Additionally registers the light switch as a cache-changed listener to the polling server.
 void registerParameter(Parameter roof)
          Registers the weather station.
 
Methods inherited from class stella.parameter.RS485Switch
off, on, rescanned
 
Methods inherited from class stella.parameter.AbstractSwitch
turnOff, turnOn
 
Methods inherited from class stella.parameter.SimpleTrigger
getLastToggleTime, getTrigger, setTrigger
 
Methods inherited from class stella.parameter.AbstractTrigger
get, getElapsedToggleTime, isTrue, set, toggleTrigger
 
Methods inherited from class stella.parameter.AbstractParameter
createParameter, delivers, exit, getFormatted, getFormatted, getName, getPreserveFile, getString, getString, register, setName, toString
 
Methods inherited from class util.PropertyBundles
clone, getLocalized, getLocalized, getLocalizedString, getLocalizedString, loadResource
 
Methods inherited from class util.PropertyResources
createFrom, createFrom, createFrom, getApplet, getAsResources, getLocalClassLoader, getPropertiesToKey, getPropertiesToKey, getResource, getResourceAsStream, getResourceFromKey, getResources, keyCreate, keyCreate, reload, setApplet
 
Methods inherited from class util.PropertyContainer
augment, augment, augment, defaultBoolean, defaultChar, defaultDouble, defaultFloat, defaultInt, defaultLong, defaultObject, defaultObject, defaultProperties, defaultProperty, getAsBoolean, getAsChar, getAsDouble, getAsEnums, getAsFloat, getAsInt, getAsList, getAsLong, getAsMap, getAsMap, getAsObject, getAsObject, getProperties, getProperty, has, isNew, parseObject, reload, removeProperty, setObject, setProperties, setProperty, stringProperties
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface util.Reloadable
reload
 
Methods inherited from interface stella.Trigger
getElapsedToggleTime, getLastToggleTime, getTrigger, isTrue, setTrigger, toggleTrigger
 
Methods inherited from interface stella.Parameter
get, getFormatted, getName, getString, set
 
Methods inherited from interface util.PropertySupplying
defaultBoolean, defaultChar, defaultDouble, defaultFloat, defaultInt, defaultLong, defaultObject, defaultObject, defaultProperties, defaultProperty, getAsBoolean, getAsChar, getAsDouble, getAsFloat, getAsInt, getAsList, getAsLong, getAsMap, getAsObject, getAsObject, getProperties, getProperty, has, parseObject, removeProperty, setObject, setProperty, stringProperties
 
Methods inherited from interface util.ResourceSupplying
getResource, getResourceAsStream, getResources
 

Field Detail

KEY_ALLOWONCLEAR

public static final String KEY_ALLOWONCLEAR
If true, light may also be switched on during roof open.

See Also:
Constant Field Values

KEY_TIMEOUT

public static final String KEY_TIMEOUT
The default time out for light switch off.

See Also:
Constant Field Values

KEY_READSWITCH

public static final String KEY_READSWITCH
The key linked to the string sent to the serial port before reading.

See Also:
Constant Field Values

KEY_SKIP

public static final String KEY_SKIP
The key for skiping leading bytes on digital input.

See Also:
Constant Field Values

KEY_CHANNEL

public static final String KEY_CHANNEL
The key pointing to the digital input word to interpret.

See Also:
Constant Field Values

KEY_MASK

public static final String KEY_MASK
The key for interpreting the return bitmask as true or false.

See Also:
Constant Field Values

KEY_INVERSE

public static final String KEY_INVERSE
The key for interpreting the mask inversely, true or false.

See Also:
Constant Field Values

DEFNAME

public static final String DEFNAME
The default parameter name.

See Also:
Constant Field Values

DEFSERIAL

private static final String DEFSERIAL
The default serial driver name.

See Also:
Constant Field Values

DEFREADSWITCH

private static final String DEFREADSWITCH
The default read switch string.

See Also:
Constant Field Values

DEFSKIP

private static final int DEFSKIP
The default number of chars to skip on digital input.

See Also:
Constant Field Values

DEFCHANNEL

private static final int DEFCHANNEL
The defalt input channel to read.

See Also:
Constant Field Values

DEFMASK

private static final int DEFMASK
The bits masking to the open-roof switches, used as default.

See Also:
Constant Field Values

DEFINVERSE

private static final boolean DEFINVERSE
The default inverse mask interpretation (false).

See Also:
Constant Field Values

DEFALLOWONCLEAR

private static final boolean DEFALLOWONCLEAR
The default allowance to switch on light during night.

See Also:
Constant Field Values

DEFSWITCHON

private static final String DEFSWITCHON
The default serial command to switch on the light.

See Also:
Constant Field Values

DEFSWITCHOFF

private static final String DEFSWITCHOFF
The default serial command to switch on the light.

See Also:
Constant Field Values

DEFTIMEOUT

private static final long DEFTIMEOUT
The default time out after witch light is turned off again.

See Also:
Constant Field Values

open

private Trigger open
The roof-open trigger.


forced

private Trigger forced
Monitors forced switches.

Constructor Detail

LightSwitch

public LightSwitch(Map prop)
Constructs a new light switch trigger. As a monitor for notification of cache-cahnged events, this trigger registers itself in the init section.
All additional properties have default values.

Method Detail

init

public void init()
Initializes the light switch.

Specified by:
init in interface Initializable
Overrides:
init in class RS485Switch

registerDriver

public boolean registerDriver(Driver server)
Additionally registers the light switch as a cache-changed listener to the polling server.

Specified by:
registerDriver in interface DriverDepending
Overrides:
registerDriver in class RS485Switch
Returns:
True if registering at the driver was successful.

registerParameter

public void registerParameter(Parameter roof)
Registers the weather station. The station is queried for the current weather if we have a switch-signal to turn the light on. Only if the current weather conditions are bad, the light is turned on. This restriction can be overruled by setting the KEY_ALLOWONCLEAR to true. Note that direct switches of the light via the remote methods are not affected by the current weather.

Specified by:
registerParameter in interface ParameterDepending

newValue

public void newValue(CacheChangedEvent cce)
First, get the current state of the trigger. If the trigger value has changed, then switch the light

Specified by:
newValue in interface CacheChangedListener

getBooleanFromResponse

protected Boolean getBooleanFromResponse(String read)
This method transforms the output of the switches into a single information whether the roof-switches are down. This method logical ANDs the digital output channels with this trigger's KEY_MASK and returns true if the result is equal to the trigger mask.


getDigiatlIOChannelsFromResponse

protected int getDigiatlIOChannelsFromResponse(String read)
The string read in from the serial port has the following format:
                 CH#0[CH#1]...[CH#N]
       
Where skip isthe number of chars to ignore at the start of the string. The following channels are all iun 2-char format, each representing a single byte. It depends on the module used how many channels will be available on the returned string. Depending on the values given in the required properties KEY_SKIP and KEY_CHANNEL, the returned integer represents the byte as deduced from a two-char hex-string.

Examples: