Tekkotsu Homepage
Demos
Overview
Downloads
Dev. Resources
Reference
Credits

ProjectInterface Namespace Reference


Detailed Description

A collection of the global variables which should be set by a project to use the Tekkotsu framework.

This namespace a few variables needed for initialization of the framework, but mainly declares variables which are used by demo behaviors. Although the variables are declared here, and some default values provided, it is up to your project to define the actual values used for your own project. This provides a way to reassign conflicts between values provided by the framework vs. those you might wish to add to your project.

Currently, all required members are references (so they can't be set to NULL and you'll get errors if you leave them out) and all optional settings are pointers so you can ignore them if you want.

The "optional" variables are used by demo behaviors, and thus if you remove all of the demo behaviors, you won't need to define the corresponding interface values here.

If you want to add new ID values for your project, create a new 'globals.h' or some such in your project -- you don't need to add them here since this file is shared by all projects which use the framework, you shouldn't need to modify it for each project.


Vision Setup

A collection of the various stages of vision processing. None of these are absolutely required, but are needed to run included demo behaviors and TekkotsuMon modules

FilterBankGeneratordefRawCameraGenerator = NULL
 pointer to generator
FilterBankGeneratordefInterleavedYUVGenerator = NULL
 pointer to generator
JPEGGeneratordefColorJPEGGenerator = NULL
 pointer to generator
JPEGGeneratordefGrayscaleJPEGGenerator = NULL
 pointer to generator
PNGGeneratordefColorPNGGenerator = NULL
 pointer to generator
PNGGeneratordefGrayscalePNGGenerator = NULL
 pointer to generator
SegmentedColorGeneratordefSegmentedColorGenerator = NULL
 pointer to generator
RLEGeneratordefRLEGenerator = NULL
 pointer to generator
RegionGeneratordefRegionGenerator = NULL
 pointer to generator

Vision SIDs

Default source IDs for the various generators; These are given default values, but you can reassign them if you like.

unsigned int visRawCameraSID = 0
 source id for event
unsigned int visInterleaveSID = 0
 source id for event
unsigned int visColorJPEGSID = 0
 source id for event
unsigned int visGrayscaleJPEGSID = 1
 source id for event
unsigned int visColorPNGSID = 0
 source id for event
unsigned int visGrayscalePNGSID = 1
 source id for event
unsigned int visSegmentSID = 0
 source id for event
unsigned int visRLESID = 0
 source id for event
unsigned int visRegionSID = 0
 source id for event
unsigned int visPinkBallSID = 0
 source id for event
unsigned int visBlueBallSID = 1
 source id for event
unsigned int visGreenBallSID = 2
 source id for event
unsigned int visYellowBallSID = 3
 source id for event
unsigned int visHandSID = 4
 source id for event

Layer Resolutions

Allows you to request a particular layer abstractly - this isn't used by the framework, just a suggestion for clarity

unsigned int doubleLayer = 5
 ERS-2xx: 352*288; ERS-7 416*320 (requires non-trivial computation).
unsigned int fullLayer = 4
 ERS-2xx: 176*144; ERS-7 208*160.
unsigned int halfLayer = 3
 ERS-2xx: 88*72; ERS-7 104*80.
unsigned int quarterLayer = 2
 ERS-2xx: 44*36; ERS-7 52*40.
unsigned int eighthLayer = 1
 ERS-2xx: 22*18; ERS-7 26*20 (simply a bigger interleave referencing quarterLayer).
unsigned int sixteenthLayer = 0
 ERS-2xx: 11*9; ERS-7 13*10 (simply a bigger interleave referencing quarterLayer).

Vision Setup

A collection of the various stages of vision processing. None of these are absolutely required, but are needed to run included demo behaviors and TekkotsuMon modules

FilterBankGeneratordefRawCameraGenerator
 pointer to generator
FilterBankGeneratordefInterleavedYUVGenerator
 pointer to generator
JPEGGeneratordefColorJPEGGenerator
 pointer to generator
JPEGGeneratordefGrayscaleJPEGGenerator
 pointer to generator
PNGGeneratordefColorPNGGenerator
 pointer to generator
PNGGeneratordefGrayscalePNGGenerator
 pointer to generator
SegmentedColorGeneratordefSegmentedColorGenerator
 pointer to generator
RLEGeneratordefRLEGenerator
 pointer to generator
RegionGeneratordefRegionGenerator
 pointer to generator

Vision SIDs

Default source IDs for the various generators; These are given default values, but you can reassign them if you like.

unsigned int visRawCameraSID
 source id for event
unsigned int visInterleaveSID
 source id for event
unsigned int visColorJPEGSID
 source id for event
unsigned int visGrayscaleJPEGSID
 source id for event
unsigned int visColorPNGSID
 source id for event
unsigned int visGrayscalePNGSID
 source id for event
unsigned int visSegmentSID
 source id for event
unsigned int visRLESID
 source id for event
unsigned int visRegionSID
 source id for event
unsigned int visPinkBallSID
 source id for event
unsigned int visBlueBallSID
 source id for event
unsigned int visGreenBallSID
 source id for event
unsigned int visYellowBallSID
 source id for event
unsigned int visHandSID
 source id for event

Layer Resolutions

Allows you to request a particular layer abstractly - this isn't used by the framework, just a suggestion for clarity

unsigned int doubleLayer
 ERS-2xx: 352*288; ERS-7 416*320 (requires non-trivial computation).
unsigned int fullLayer
 ERS-2xx: 176*144; ERS-7 208*160.
unsigned int halfLayer
 ERS-2xx: 88*72; ERS-7 104*80.
unsigned int quarterLayer
 ERS-2xx: 44*36; ERS-7 52*40.
unsigned int eighthLayer
 ERS-2xx: 22*18; ERS-7 26*20 (simply a bigger interleave referencing quarterLayer).
unsigned int sixteenthLayer
 ERS-2xx: 11*9; ERS-7 13*10 (simply a bigger interleave referencing quarterLayer).

Functions

bool displayException (const char *file, int line, const char *message, const std::exception *ex)
 Displays information about an exception on serr, provides a default value for uncaughtException.
unsigned int defLookupColorIndexByName (const std::string &name)
 default implementation assigned to lookupColorIndexByName(); checks that defSegmentedColorGenerator is non-NULL and returns getColorIndex on it
unsigned int defLookupColorIndexByRgb (const rgb rgbval)
 default value initially assigned to lookupColorIndexByRgb(); checks that defSegmentedColorGenerator is non-NULL and returns getColorIndex on it
rgb defLookupColorRGB (unsigned int index)
 default implementation assigned to lookupColorRGB(); checks that defSegmentedColorGenerator is non-NULL and returns getColorRGB on it
unsigned int defLookupNumColors ()
 default value initially assigned to lookupNumColors(); checks that defSegmentedColorGenerator is non-NULL and returns getNumColors on it
std::ostream & operator<< (std::ostream &os, const rgb &rgbval)
 displays an rgb value in the form '[r,g,b]'
std::string toString (const rgb &rgbval)
 returns rgbval in the form 'r g b'
BehaviorBasestartupBehavior ()
 REQUIRED: you must define a behavior which will be started when the boot is complete.
unsigned int getColorIndex (const std::string &name)
 Returns the index corresponding to a color of specified name by calling lookupColorIndexByName().
unsigned int getColorIndex (const rgb rgbval)
 Returns the index corresponding to an rgb value by calling lookupColorIndexByRgb().
rgb getColorRGB (const std::string &name)
 Returns rgb value corresponding to a color of specified name by calling lookupColorRGB(lookupColorIndexByName()).
rgb getColorRGB (unsigned int index)
 Returns rgb value corresponding to a color of specified name by calling lookupColorRGB().
unsigned int getNumColors ()
 Returns the number of colors, obtained from defSegmentedColorGenerator.

Variables

bool(*) uncaughtException (const char *file, int line, const char *message, const std::exception *ex) = &displayException
 The exception handler for exceptions which have fallen through to base Tekkotsu functions.
unsigned int(*) lookupColorIndexByName (const std::string &name) = &defLookupColorIndexByName
 allows you to override how colors are defined -- by default, this will be set to a function which passes the call to defSegmentedColorGenerator
unsigned int(*) lookupColorIndexByRgb (const rgb rgbval) = &defLookupColorIndexByRgb
 allows you to override how colors are defined -- by default, this will be set to a function which passes the call to defSegmentedColorGenerator
rgb(*) lookupColorRGB (unsigned int index) = &defLookupColorRGB
 allows you to override how colors are defined -- by default, this will be set to a function which passes the call to defSegmentedColorGenerator
unsigned int(*) lookupNumColors () = &defLookupNumColors
 returns the number of indexed colors which are currently defined
bool(*) uncaughtException (const char *file, int line, const char *message, const std::exception *ex)
 The exception handler for exceptions which have fallen through to base Tekkotsu functions.
unsigned int(*) lookupColorIndexByName (const std::string &name)
 allows you to override how colors are defined -- by default, this will be set to a function which passes the call to defSegmentedColorGenerator
unsigned int(*) lookupColorIndexByRgb (const rgb rgbval)
 allows you to override how colors are defined -- by default, this will be set to a function which passes the call to defSegmentedColorGenerator
rgb(*) lookupColorRGB (unsigned int index)
 allows you to override how colors are defined -- by default, this will be set to a function which passes the call to defSegmentedColorGenerator
unsigned int(*) lookupNumColors ()
 returns the number of indexed colors which are currently defined


Function Documentation

bool ProjectInterface::displayException ( const char *  file,
int  line,
const char *  message,
const std::exception *  ex 
)

Displays information about an exception on serr, provides a default value for uncaughtException.

You can call this directly from your own code any time you would like an exception error message.

Parameters:
file The file where the exception was caught (usually just pass __FILE__), or NULL
line The line number where the exception was caught (usually just pass __LINE__), if file is NULL, line is ignored
message An addition message, or NULL
ex The exception which was caught, or NULL if it is was not a std::exception subclass
Returns:
true, indicating the exception was handled adequately

Definition at line 9 of file ProjectInterface.cc.

unsigned int ProjectInterface::defLookupColorIndexByName ( const std::string &  name  ) 

default implementation assigned to lookupColorIndexByName(); checks that defSegmentedColorGenerator is non-NULL and returns getColorIndex on it

Definition at line 33 of file ProjectInterface.cc.

unsigned int ProjectInterface::defLookupColorIndexByRgb ( const rgb  rgbval  ) 

default value initially assigned to lookupColorIndexByRgb(); checks that defSegmentedColorGenerator is non-NULL and returns getColorIndex on it

Definition at line 41 of file ProjectInterface.cc.

rgb ProjectInterface::defLookupColorRGB ( unsigned int  index  ) 

default implementation assigned to lookupColorRGB(); checks that defSegmentedColorGenerator is non-NULL and returns getColorRGB on it

Definition at line 50 of file ProjectInterface.cc.

unsigned int ProjectInterface::defLookupNumColors (  ) 

default value initially assigned to lookupNumColors(); checks that defSegmentedColorGenerator is non-NULL and returns getNumColors on it

Definition at line 58 of file ProjectInterface.cc.

std::ostream & ProjectInterface::operator<< ( std::ostream &  os,
const rgb rgbval 
)

displays an rgb value in the form '[r,g,b]'

Definition at line 67 of file ProjectInterface.cc.

std::string ProjectInterface::toString ( const rgb rgbval  ) 

returns rgbval in the form 'r g b'

Definition at line 76 of file ProjectInterface.cc.

BehaviorBase& ProjectInterface::startupBehavior (  ) 

REQUIRED: you must define a behavior which will be started when the boot is complete.

This is similar in idea to the Linux init process - it should do some basic initialization and then launch any other behavior you would like to run at boot. To avoid static initialization ordering issues, this is a function which will be called after environment setup is complete, which should then return a behavior to use as the startup behavior. This behavior should not be reference counted, and probably makes most sense to implement as a static local variable of the function. (Each call should return the same behavior)

unsigned int ProjectInterface::getColorIndex ( const std::string &  name  )  [inline]

Returns the index corresponding to a color of specified name by calling lookupColorIndexByName().

As per SegmentedColorGenerator::getColorIndex(), if name is not valid, return -1U

Definition at line 88 of file ProjectInterface.h.

unsigned int ProjectInterface::getColorIndex ( const rgb  rgbval  )  [inline]

Returns the index corresponding to an rgb value by calling lookupColorIndexByRgb().

Definition at line 90 of file ProjectInterface.h.

rgb ProjectInterface::getColorRGB ( const std::string &  name  )  [inline]

Returns rgb value corresponding to a color of specified name by calling lookupColorRGB(lookupColorIndexByName()).

As per SegmentedColorGenerator::getColorRGB(), if name is not valid, return black (rgb())

Definition at line 93 of file ProjectInterface.h.

rgb ProjectInterface::getColorRGB ( unsigned int  index  )  [inline]

Returns rgb value corresponding to a color of specified name by calling lookupColorRGB().

As per SegmentedColorGenerator::getColorRGB(), if index is not valid, return black (rgb())

Definition at line 96 of file ProjectInterface.h.

unsigned int ProjectInterface::getNumColors (  )  [inline]

Returns the number of colors, obtained from defSegmentedColorGenerator.

Definition at line 100 of file ProjectInterface.h.


Variable Documentation

bool(*) ProjectInterface::uncaughtException(const char *file, int line, const char *message, const std::exception *ex) = &displayException

The exception handler for exceptions which have fallen through to base Tekkotsu functions.

You can override this to install your own handler by assigning a new function. This defaults to displayException(), which does not call abort() (which would otherwise be the default if the exception fell through).

Parameters:
file The file where the exception was caught (usually just pass __FILE__), or NULL
line The line number where the exception was caught (usually just pass __LINE__), if file is NULL, line is ignored
message An addition message, or NULL
ex The exception which was caught, or NULL if it is was not a std::exception subclass
Returns:
true if the exception was handled, false if the exception should be rethrown

Definition at line 30 of file ProjectInterface.cc.

Referenced by Wireless::BindCont(), Wireless::CloseCont(), Wireless::ConnectCont(), MotionManager::doAddMotion(), MotionManager::getOutputs(), Wireless::ListenCont(), IPCEventTranslator::post(), EventRouter::PostingStatus::process(), MotionManager::processMsg(), EventRouter::processTimers(), Wireless::ReceiveCont(), and Wireless::SendCont().

unsigned int(*) ProjectInterface::lookupColorIndexByName(const std::string &name) = &defLookupColorIndexByName

allows you to override how colors are defined -- by default, this will be set to a function which passes the call to defSegmentedColorGenerator

As per SegmentedColorGenerator::getColorIndex(), if name is not valid, return -1U

Definition at line 38 of file ProjectInterface.cc.

Referenced by getColorIndex(), and getColorRGB().

unsigned int(*) ProjectInterface::lookupColorIndexByRgb(const rgb rgbval) = &defLookupColorIndexByRgb

allows you to override how colors are defined -- by default, this will be set to a function which passes the call to defSegmentedColorGenerator

Definition at line 47 of file ProjectInterface.cc.

Referenced by getColorIndex().

rgb(*) ProjectInterface::lookupColorRGB(unsigned int index) = &defLookupColorRGB

allows you to override how colors are defined -- by default, this will be set to a function which passes the call to defSegmentedColorGenerator

As per SegmentedColorGenerator::getColorRGB(), if index is not valid, return black (rgb())

Definition at line 55 of file ProjectInterface.cc.

Referenced by getColorRGB().

unsigned int(*) ProjectInterface::lookupNumColors() = &defLookupNumColors

returns the number of indexed colors which are currently defined

Definition at line 64 of file ProjectInterface.cc.

Referenced by getNumColors().

pointer to generator

Definition at line 87 of file ProjectInterface.cc.

Referenced by Config::setValue().

pointer to generator

Definition at line 88 of file ProjectInterface.cc.

pointer to generator

Definition at line 89 of file ProjectInterface.cc.

Referenced by LGmixin::uploadCameraImage().

pointer to generator

Definition at line 90 of file ProjectInterface.cc.

pointer to generator

Definition at line 91 of file ProjectInterface.cc.

pointer to generator

Definition at line 92 of file ProjectInterface.cc.

pointer to generator

Definition at line 94 of file ProjectInterface.cc.

pointer to generator

Definition at line 95 of file ProjectInterface.cc.

source id for event

Definition at line 101 of file ProjectInterface.cc.

Referenced by RawCamBehavior::DoStart().

source id for event

Definition at line 103 of file ProjectInterface.cc.

source id for event

Definition at line 105 of file ProjectInterface.cc.

Referenced by RawCamBehavior::DoStart().

source id for event

Definition at line 106 of file ProjectInterface.cc.

Referenced by RawCamBehavior::DoStart().

source id for event

Definition at line 108 of file ProjectInterface.cc.

source id for event

Definition at line 109 of file ProjectInterface.cc.

source id for event

Definition at line 111 of file ProjectInterface.cc.

Referenced by SegCamBehavior::DoStart().

unsigned int ProjectInterface::visRLESID = 0

source id for event

Definition at line 113 of file ProjectInterface.cc.

Referenced by SegCamBehavior::DoStart().

source id for event

Definition at line 115 of file ProjectInterface.cc.

Referenced by RegionCamBehavior::DoStart().

source id for event

Definition at line 117 of file ProjectInterface.cc.

source id for event

Definition at line 118 of file ProjectInterface.cc.

source id for event

Definition at line 119 of file ProjectInterface.cc.

source id for event

Definition at line 120 of file ProjectInterface.cc.

unsigned int ProjectInterface::visHandSID = 4

source id for event

Definition at line 121 of file ProjectInterface.cc.

ERS-2xx: 352*288; ERS-7 416*320 (requires non-trivial computation).

Definition at line 126 of file ProjectInterface.cc.

unsigned int ProjectInterface::fullLayer = 4

ERS-2xx: 176*144; ERS-7 208*160.

Definition at line 127 of file ProjectInterface.cc.

Referenced by LGmixin::uploadCameraImage().

unsigned int ProjectInterface::halfLayer = 3

ERS-2xx: 88*72; ERS-7 104*80.

Definition at line 128 of file ProjectInterface.cc.

ERS-2xx: 44*36; ERS-7 52*40.

Definition at line 129 of file ProjectInterface.cc.

ERS-2xx: 22*18; ERS-7 26*20 (simply a bigger interleave referencing quarterLayer).

Definition at line 130 of file ProjectInterface.cc.

ERS-2xx: 11*9; ERS-7 13*10 (simply a bigger interleave referencing quarterLayer).

Definition at line 131 of file ProjectInterface.cc.

bool(*) ProjectInterface::uncaughtException(const char *file, int line, const char *message, const std::exception *ex)

The exception handler for exceptions which have fallen through to base Tekkotsu functions.

You can override this to install your own handler by assigning a new function. This defaults to displayException(), which does not call abort() (which would otherwise be the default if the exception fell through).

Parameters:
file The file where the exception was caught (usually just pass __FILE__), or NULL
line The line number where the exception was caught (usually just pass __LINE__), if file is NULL, line is ignored
message An addition message, or NULL
ex The exception which was caught, or NULL if it is was not a std::exception subclass
Returns:
true if the exception was handled, false if the exception should be rethrown

Definition at line 30 of file ProjectInterface.cc.

Referenced by Wireless::BindCont(), Wireless::CloseCont(), Wireless::ConnectCont(), MotionManager::doAddMotion(), MotionManager::getOutputs(), Wireless::ListenCont(), IPCEventTranslator::post(), EventRouter::PostingStatus::process(), MotionManager::processMsg(), EventRouter::processTimers(), Wireless::ReceiveCont(), and Wireless::SendCont().

unsigned int(*) ProjectInterface::lookupColorIndexByName(const std::string &name)

allows you to override how colors are defined -- by default, this will be set to a function which passes the call to defSegmentedColorGenerator

As per SegmentedColorGenerator::getColorIndex(), if name is not valid, return -1U

Definition at line 38 of file ProjectInterface.cc.

Referenced by getColorIndex(), and getColorRGB().

unsigned int(*) ProjectInterface::lookupColorIndexByRgb(const rgb rgbval)

allows you to override how colors are defined -- by default, this will be set to a function which passes the call to defSegmentedColorGenerator

Definition at line 47 of file ProjectInterface.cc.

Referenced by getColorIndex().

rgb(*) ProjectInterface::lookupColorRGB(unsigned int index)

allows you to override how colors are defined -- by default, this will be set to a function which passes the call to defSegmentedColorGenerator

As per SegmentedColorGenerator::getColorRGB(), if index is not valid, return black (rgb())

Definition at line 55 of file ProjectInterface.cc.

Referenced by getColorRGB().

returns the number of indexed colors which are currently defined

Definition at line 64 of file ProjectInterface.cc.

Referenced by getNumColors().

pointer to generator

Definition at line 87 of file ProjectInterface.cc.

Referenced by Config::setValue().

pointer to generator

Definition at line 89 of file ProjectInterface.cc.

Referenced by LGmixin::uploadCameraImage().

pointer to generator

Definition at line 90 of file ProjectInterface.cc.

pointer to generator

Definition at line 91 of file ProjectInterface.cc.

pointer to generator

Definition at line 92 of file ProjectInterface.cc.

pointer to generator

Definition at line 94 of file ProjectInterface.cc.

pointer to generator

Definition at line 95 of file ProjectInterface.cc.

source id for event

Definition at line 101 of file ProjectInterface.cc.

Referenced by RawCamBehavior::DoStart().

source id for event

Definition at line 103 of file ProjectInterface.cc.

source id for event

Definition at line 105 of file ProjectInterface.cc.

Referenced by RawCamBehavior::DoStart().

source id for event

Definition at line 106 of file ProjectInterface.cc.

Referenced by RawCamBehavior::DoStart().

source id for event

Definition at line 108 of file ProjectInterface.cc.

source id for event

Definition at line 109 of file ProjectInterface.cc.

source id for event

Definition at line 111 of file ProjectInterface.cc.

Referenced by SegCamBehavior::DoStart().

source id for event

Definition at line 113 of file ProjectInterface.cc.

Referenced by SegCamBehavior::DoStart().

source id for event

Definition at line 115 of file ProjectInterface.cc.

Referenced by RegionCamBehavior::DoStart().

source id for event

Definition at line 117 of file ProjectInterface.cc.

source id for event

Definition at line 118 of file ProjectInterface.cc.

source id for event

Definition at line 119 of file ProjectInterface.cc.

source id for event

Definition at line 120 of file ProjectInterface.cc.

source id for event

Definition at line 121 of file ProjectInterface.cc.

ERS-2xx: 352*288; ERS-7 416*320 (requires non-trivial computation).

Definition at line 126 of file ProjectInterface.cc.

ERS-2xx: 176*144; ERS-7 208*160.

Definition at line 127 of file ProjectInterface.cc.

Referenced by LGmixin::uploadCameraImage().

ERS-2xx: 88*72; ERS-7 104*80.

Definition at line 128 of file ProjectInterface.cc.

ERS-2xx: 44*36; ERS-7 52*40.

Definition at line 129 of file ProjectInterface.cc.

ERS-2xx: 22*18; ERS-7 26*20 (simply a bigger interleave referencing quarterLayer).

Definition at line 130 of file ProjectInterface.cc.

ERS-2xx: 11*9; ERS-7 13*10 (simply a bigger interleave referencing quarterLayer).

Definition at line 131 of file ProjectInterface.cc.


Tekkotsu v3.0
Generated Wed Oct 4 00:05:24 2006 by Doxygen 1.4.7