MovementController Class Reference

Inheritance diagram for MovementController:
Inheritance graph
[legend]
Collaboration diagram for MovementController:
Collaboration graph
[legend]

List of all members.

Public Member Functions

Constructors and Destructors

 MovementController (OptionManager &mgr, nub::soft_ref< SubController > subController, const std::string &descrName="MovementController", const std::string &tagName="MovementController")
 Constructor.
 ~MovementController ()
 Destructor.
bool dive (int depth, bool relative=false, int timeout=0)
bool goStraight (int speed, int time)
bool setHeading (int heading, bool relative=false, int timeout=0)
int trackPipe (const Point2D< int > &pointToTrack, const Point2D< int > &desiredPoint)
void paramChanged (ModelParamBase *const param, const bool valueChanged, ParamClient::ChangeStatus *status)
 Called whenever a ModelParamBase has its value changed.

member functions



OModelParam< int > itsDepthErrThresh
OModelParam< int > itsHeadingErrThresh
NModelParam< float > pipeP
NModelParam< float > pipeI
NModelParam< float > pipeD
PID< float > itsPipePID
OModelParam< int > setDiveValue
OModelParam< int > setGoStraightTimeValue
OModelParam< int > setSpeedValue
OModelParam< int > setHeadingValue
NModelParam< bool > setRelative
OModelParam< int > setTimeout

Detailed Description

Definition at line 88 of file MovementController.H.


Constructor & Destructor Documentation

MovementController::MovementController ( OptionManager mgr,
nub::soft_ref< SubController subController,
const std::string descrName = "MovementController",
const std::string tagName = "MovementController" 
)

Constructor.

Definition at line 43 of file MovementController.C.

MovementController::~MovementController (  ) 

Destructor.

Definition at line 68 of file MovementController.C.


Member Function Documentation

void MovementController::paramChanged ( ModelParamBase *const   param,
const bool  valueChanged,
ParamClient::ChangeStatus status 
) [virtual]

Called whenever a ModelParamBase has its value changed.

Subclasses of ModelComponent should override this function if they need to do any internal reconfiguration when their parameters change value (whether due to a command-line option, or a setModelParamString(), or a readParamsFrom()). See OrientationChannel::paramChanged() in Channels/OrientationChannel.C for an example; also see SaccadeControllerConfigurator::paramChanged() in Neuro/SaccadeControllers.C for for how to use this to select subcomponents at runtime.

Parameters:
param the address of the ModelParamBase that changed; subclasses can compare this with the addresses of their model param members to figure out which is the relevant param
valueChanged true if the value actually changed, false if the value was "set" but the new value is the same as the old value; some clients may want to avoid re-doing expensive operations if the value did not actually change
status the subclass that implements paramChanged() should set *status to CHANGE_REJECTED if it wishes to reject a particular parameter change; the caller of paramChanged() is expected to set *status to CHANGE_ACCEPTED prior to calling paramChanged(), so the implentation of paramChanged() does not need to set *status CHANGE_ACCEPTED if it wishes to allow the change since that will already be the default status

HISTORICAL NOTE: In the past, subclasses would override setModelParamString() for this same purpose, but in the new setup, setModelParamString() is NOT virtual and hence should not be (cannot be) overridden by subclasses. This setup is cleaner (and potentially more efficient) because subclasses don't have to compare string names to figure out which param changed; instead they are passed the address of the param itself. Furthermore, the new setup is more robust, since we can handle param value changes that come from any source (e.g., setModelParamVal(), or ModelParamBase::setValString(), or OModelParam::setVal()), and not just those that come through setModelParamString().

Reimplemented from ModelComponent.

Definition at line 163 of file MovementController.C.

References NModelParam< T >::getVal(), and PID< T >::setPIDPgain().


The documentation for this class was generated from the following files:
Generated on Sun May 8 08:43:37 2011 for iLab Neuromorphic Vision Toolkit by  doxygen 1.6.3