stella.roof
Class SwitchTrigger

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.SimpleEventTrigger
                              extended by stella.roof.SwitchTrigger
All Implemented Interfaces:
DriverDepending, Cloneable, EventListener, EventTrigger, CacheChangedListener, Parameter, Trigger, ExitCleaning, Initializable, LocalizedSupplying, PropertySupplying, Reloadable, ResourceSupplying

public class SwitchTrigger
extends SimpleEventTrigger
implements CacheChangedListener, DriverDepending

An event trigger that constanly monitors the status of the roof switches. After the normal construction routine with a properties object, this trigger needs a PollingRS485Server assigned to it. This trigger is an event trigger without a run method, so it is not actively looking for changes but is notified if a change occurs. This is done by implementing the CacheChangedListener interface. During assignment of the PollingRS485Server, this trigger registers itself as an cache-changed listener with the KEY_READSWITCH as the monitored value. The CacheChangedEvent passed over to this switch trigger is then interpreted and transformed into a simple true/false decision. If the trigger toggles a waiting object can be notified.


Nested Class Summary
static class SwitchTrigger.Response
          A class to manually test module reads for trigger action.
 
Nested classes/interfaces inherited from class util.PropertyResources
PropertyResources.URLResource
 
Field Summary
private static int CLOSEMASK
          The bits masking to the close-roof switches.
private static int DEFCHANNEL
          The defalt input channel to read.
private static int DEFFAILURE
          The default failure return.
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.
private static int DEFREADLENGTH
          The default number of chars in the retruned read string.
private static String DEFREADSWITCH
          The default read switch string.
private static int DEFSKIP
          The default number of chars to skip on digital input.
static String KEY_CHANNEL
          The key pointing to the digital input word to interpret.
static String KEY_FAILURE
          This is the return integer in case of switch unreadable.
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_READLENGTH
          The key linked to the length of the read string.
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.
private static int OPENMASK
          The bits masking to the open-roof switches.
 
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
SwitchTrigger(Map prop)
          Constructs a new 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 newValue(CacheChangedEvent cce)
          The run method of the switch-trigger thread.
 boolean registerDriver(Driver server)
          Registers the serial server to this switch trigger.
 Boolean setTrigger(Boolean val)
          Sets the switch trigger value.
 
Methods inherited from class stella.parameter.SimpleEventTrigger
getMonitor, registerMonitor, toggleTrigger
 
Methods inherited from class stella.parameter.SimpleTrigger
getLastToggleTime, getTrigger, init, rescanned
 
Methods inherited from class stella.parameter.AbstractTrigger
get, getElapsedToggleTime, isTrue, set
 
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.Parameter
getFormatted, getName, getString
 
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_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_READLENGTH

public static final String KEY_READLENGTH
The key linked to the length of the read string.

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

KEY_FAILURE

public static final String KEY_FAILURE
This is the return integer in case of switch unreadable.

See Also:
Constant Field Values

DEFREADSWITCH

private static final String DEFREADSWITCH
The default read switch string.

See Also:
Constant Field Values

DEFREADLENGTH

private static final int DEFREADLENGTH
The default number of chars in the retruned read 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

DEFFAILURE

private static final int DEFFAILURE
The default failure return.

See Also:
Constant Field Values

OPENMASK

private static final int OPENMASK
The bits masking to the open-roof switches.

See Also:
Constant Field Values

CLOSEMASK

private static final int CLOSEMASK
The bits masking to the close-roof switches.

See Also:
Constant Field Values
Constructor Detail

SwitchTrigger

public SwitchTrigger(Map prop)
Constructs a new switch trigger. Before starting the trigger a PollingRS485Server must be assigned to this trigger.

Method Detail

setTrigger

public Boolean setTrigger(Boolean val)
Sets the switch trigger value. If the value is null do not update the trigger value.

Specified by:
setTrigger in interface Trigger
Overrides:
setTrigger in class SimpleEventTrigger
Returns:
The old value of the trigger.

registerDriver

public boolean registerDriver(Driver server)
Registers the serial server to this switch trigger. Must be called prior to starting this switch trigger. Only works with PollingRS485Server drivers.

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

newValue

public void newValue(CacheChangedEvent cce)
The run method of the switch-trigger thread. Note that it is the thread starter's responsibility to set the switch trigger's run priority to the desired value.

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: