FROG

FROG Recognizer of Gestures

FilterManager Class Reference

Manages all filtering on the SPOT. More...

Inheritance diagram for FilterManager:
Collaboration diagram for FilterManager:

List of all members.

Public Member Functions

 FilterManager (final FrogSpot frog)
 Creates the FilterManager with a permanent reference back to the FrogSpot for quick access to its facilities.
void addFilter (byte index, String param)
 Adds a new instance of a Filter to the list of active filters.
void giveGesture (Queue gesture)
 Used by the AccelManager to add a new set of accelerations to the FilterManager's job queue.
void kill ()
 Attempt to unconditionally stop all threads and release all resources.
void removeFilters ()
 Clears all active filters in this FilterManager.
void run ()
 Constantly loops through a job queue of acceleration data applying all active filters.

Static Public Attributes

static final Class[] availFilters
 List of filters that can be instantiated and used by the FilterManager.
static final String SPOT1_PORT = "COM14"
static final String SPOT2_PORT = "COM9"
static final String SPOT3_PORT = "COM13"
static final String SPOT4_PORT = "COM15"
static final String SPOT5_PORT = "COM12"
static final String SPOT6_PORT = "COM10"
static final String SPOT7_PORT = "COM11"
static final String SPOT8_PORT = "COM8"
static final String SPOTB1_PORT = "COM4"
static final String SPOTB2_PORT = "COM7"
static final String SPOTB3_PORT = "COM6"
static final String SPOTB4_PORT = "COM5"
static final short PORT_BCAST = 32
static final short PORT_REPLY = 33
static final short PORT_START = 34
static final short PORT_MAX = 254
static final byte MSG_ADD_FILTER = -1
 Messages sent between host and SPOT.
static final byte MSG_REMOVE_FILTERS = -2
static final byte MSG_ALIVE = -3
static final byte MSG_GESTURE = -4
static final byte MSG_END_OF_DATA = -5
static final byte MSG_DISCOVER = -6
static final byte MSG_DISCONNECT = -7
static final byte MSG_ERROR = -8
static final byte MSG_RESEND = -9
static final byte MSG_ACK = -10
static final byte MSG_SAMPLE_RATE = -11
static final double[] END_OF_DATA = { 42.0 }
 Special markers for FilterPipeline on the SPOT.
static final double[] CORRUPT_DATA = { 43.0 }
static final int[] INT_END_OF_DATA = { 42 }
static final int[] INT_CORRUPT_DATA = { 43 }

Static Package Attributes

static final String SPOT1 = "0014.4F01.0000.1BE9"
static final String SPOT2 = "0014.4F01.0000.1E37"
static final String SPOT3 = "0014.4F01.0000.1E98"
static final String SPOT4 = "0014.4F01.0000.2AAE"
static final String SPOT5 = "0014.4F01.0000.3B61"
static final String SPOT6 = "0014.4F01.0000.3B7D"
static final String SPOT7 = "0014.4F01.0000.4118"
static final String SPOT8 = "0014.4F01.0000.4213"
static final String SPOTB1 = "0014.4F01.0000.2C06"
static final String SPOTB2 = "0014.4F01.0000.22F3"
static final String SPOTB3 = "0014.4F01.0000.3122"
static final String SPOTB4 = "0014.4F01.0000.415E"

Detailed Description

Manages all filtering on the SPOT.

Multiple Filters can be active at a time. The purpose of this thread is to apply all active filters to a given acceleration sample, remove an sample that a filter has deemed unnecessary and hands the resulting, presumably smaller, list of samples to the ConnectionManager which will then send these samples to the host.

Author:
Team Better Recognize

Constructor & Destructor Documentation

FilterManager ( final FrogSpot  frog  ) 

Creates the FilterManager with a permanent reference back to the FrogSpot for quick access to its facilities.

Parameters:
frog reference to the FrogSpot object

Member Function Documentation

void addFilter ( byte  index,
String  param 
)

Adds a new instance of a Filter to the list of active filters.

A new filter is added by its index on the array of availFilters and a given parameter String to dictate the Filter's behavior.

Parameters:
index position of this filter in the availFilters array
param a comma separated string of options for the Filter

Here is the call graph for this function:

void giveGesture ( Queue  gesture  ) 

Used by the AccelManager to add a new set of accelerations to the FilterManager's job queue.

The AccelManager hands this queue over before the user is even done with the gesture so processing can take place as the gesture is being made.

Parameters:
gesture the gesture (currently in progress) to be filtered

Here is the caller graph for this function:

void kill (  ) 

Attempt to unconditionally stop all threads and release all resources.

Implements Killable.

Here is the caller graph for this function:

void removeFilters (  ) 

Clears all active filters in this FilterManager.

This is used to wipe the slate clean so that new filters can be used instead.

void run (  ) 

Constantly loops through a job queue of acceleration data applying all active filters.

Here is the call graph for this function:


Member Data Documentation

final Class [] availFilters [static]
Initial value:
   {
      DirectorialEquivalenceFilter.class,
      IdleStateFilter.class
   }

List of filters that can be instantiated and used by the FilterManager.

If future Filters are written, they should be added to this list. The index of a given class is used by MSG_ADD_FILTER in the ConnectionManager to add additional filters to the FilterManager's activeFilter list.

final double [] CORRUPT_DATA = { 43.0 } [static, inherited]
final double [] END_OF_DATA = { 42.0 } [static, inherited]

Special markers for FilterPipeline on the SPOT.

final int [] INT_CORRUPT_DATA = { 43 } [static, inherited]
final int [] INT_END_OF_DATA = { 42 } [static, inherited]
static final byte MSG_ACK = -10 [static, inherited]
static final byte MSG_ADD_FILTER = -1 [static, inherited]

Messages sent between host and SPOT.

static final byte MSG_ALIVE = -3 [static, inherited]
static final byte MSG_DISCONNECT = -7 [static, inherited]
static final byte MSG_DISCOVER = -6 [static, inherited]
static final byte MSG_END_OF_DATA = -5 [static, inherited]
static final byte MSG_ERROR = -8 [static, inherited]
static final byte MSG_GESTURE = -4 [static, inherited]
static final byte MSG_REMOVE_FILTERS = -2 [static, inherited]
static final byte MSG_RESEND = -9 [static, inherited]
static final byte MSG_SAMPLE_RATE = -11 [static, inherited]
static final short PORT_BCAST = 32 [static, inherited]
static final short PORT_MAX = 254 [static, inherited]
static final short PORT_REPLY = 33 [static, inherited]
static final short PORT_START = 34 [static, inherited]
static final String SPOT1 = "0014.4F01.0000.1BE9" [static, package, inherited]
static final String SPOT1_PORT = "COM14" [static, inherited]
static final String SPOT2 = "0014.4F01.0000.1E37" [static, package, inherited]
static final String SPOT2_PORT = "COM9" [static, inherited]
static final String SPOT3 = "0014.4F01.0000.1E98" [static, package, inherited]
static final String SPOT3_PORT = "COM13" [static, inherited]
static final String SPOT4 = "0014.4F01.0000.2AAE" [static, package, inherited]
static final String SPOT4_PORT = "COM15" [static, inherited]
static final String SPOT5 = "0014.4F01.0000.3B61" [static, package, inherited]
static final String SPOT5_PORT = "COM12" [static, inherited]
static final String SPOT6 = "0014.4F01.0000.3B7D" [static, package, inherited]
static final String SPOT6_PORT = "COM10" [static, inherited]
static final String SPOT7 = "0014.4F01.0000.4118" [static, package, inherited]
static final String SPOT7_PORT = "COM11" [static, inherited]
static final String SPOT8 = "0014.4F01.0000.4213" [static, package, inherited]
static final String SPOT8_PORT = "COM8" [static, inherited]
static final String SPOTB1 = "0014.4F01.0000.2C06" [static, package, inherited]
static final String SPOTB1_PORT = "COM4" [static, inherited]
static final String SPOTB2 = "0014.4F01.0000.22F3" [static, package, inherited]
static final String SPOTB2_PORT = "COM7" [static, inherited]
static final String SPOTB3 = "0014.4F01.0000.3122" [static, package, inherited]
static final String SPOTB3_PORT = "COM6" [static, inherited]
static final String SPOTB4 = "0014.4F01.0000.415E" [static, package, inherited]
static final String SPOTB4_PORT = "COM5" [static, inherited]

The documentation for this class was generated from the following file:
  • /Users/dev/Documents/SVN brazos.cs.tcu.edu/trunk/FROG SPOT/src/frog/plugin/spot/onspot/FilterManager.java
 All Classes Namespaces Files Functions Variables