Tekkotsu Homepage
Demos
Overview
Downloads
Dev. Resources
Reference
Credits

MCNodeBase Class Reference

Common parent class for all the templated MCNode, which is what you want to instantiate. More...

#include <MCNode.h>

Inheritance diagram for MCNodeBase:

Detailed Description

Common parent class for all the templated MCNode, which is what you want to instantiate.

Definition at line 11 of file MCNode.h.

List of all members.

Public Member Functions

virtual ~MCNodeBase ()
 destructor, free mc
virtual void stop ()
 Removes the motion command from the motion manager if it was our own creation.
virtual void doEvent ()
 Assumes the event is a completion event from the motion, throws a corresponding state node completion event.
virtual void setMC (MotionManager::MC_ID mcid)
 Allows you to assign a previously created motion, which might be shared among several MCNodes.
virtual MotionManager::MC_ID getMC_ID ()
 reveal the MC_ID; if the motion isn't currently active, returns MotionManager::invalid_MC_ID
virtual float getPriority () const
 Return the priority assigned to this node's motion command.
virtual void setPriority (const float p)
 Set the priority that will be used when adding this motion command; if the command is already active, change its priority in the MotionManager.
virtual void motionFails ()
 Post a failure event and abort the motion command.
virtual std::string getDescription () const
 Gives a short description of what this particular instantiation does (in case a more specific description is needed on an individual basis).

Static Public Member Functions

static std::string getClassDescription ()
 Gives a short description of what this class of behaviors does... you should override this (but don't have to).

Static Public Attributes

static const char defName [] = "MCNode"
 the default name for MCNodes -- can be overridden via MCNode's template arguments
static const char defDesc [] = "A generic wrapper for any MotionCommand"
 the default description for MCNodes -- can be overridden via MCNode's template arguments

Protected Member Functions

 MCNodeBase (bool expectCompletion)
 constructor for subclasses
 MCNodeBase (const std::string &node_name, bool expectCompletion=true)
 constructor for subclasses which provide instance name
virtual SharedObjectBasegetPrivateMC ()=0
 returns reference to mc or a new SharedObject<T> if mc is currently NULL (so it will always return a valid value)
virtual bool hasPrivateMC ()
 returns true if the motion command being used was created internally via getPrivateMC()

Protected Attributes

SharedObjectBasemc
 MotionCommand used by this node (may be NULL if sharing the MC with other nodes).
MotionManager::MC_ID mc_id
 id number for the MotionCommand
float priority
 Priority to use when adding this motion commmand to the MotionManager.
bool mcCompletes
 if true, will post a completion when the underlying MotionCommand posts a status

Private Member Functions

 MCNodeBase (const MCNodeBase &)
 don't call (copy constructor)
MCNodeBaseoperator= (const MCNodeBase &)
 don't call (assignment operator)

Constructor & Destructor Documentation

virtual MCNodeBase::~MCNodeBase (  )  [virtual]

destructor, free mc

Definition at line 17 of file MCNode.h.

MCNodeBase::MCNodeBase ( bool  expectCompletion  )  [protected]

constructor for subclasses

Definition at line 50 of file MCNode.h.

MCNodeBase::MCNodeBase ( const std::string &  node_name,
bool  expectCompletion = true 
) [protected]

constructor for subclasses which provide instance name

Definition at line 56 of file MCNode.h.

MCNodeBase::MCNodeBase ( const MCNodeBase  )  [private]

don't call (copy constructor)


Member Function Documentation

void MCNodeBase::doEvent (  )  [virtual]

Assumes the event is a completion event from the motion, throws a corresponding state node completion event.

Reimplemented from BehaviorBase.

Reimplemented in DynamicMotionSequenceNode, MotionSequenceNode< SIZE >, WaypointEngineNode< W, mcName, mcDesc >, and DualCoding::Pilot::SetOdometryMachine::TurnHead.

Definition at line 69 of file MCNode.cc.

virtual std::string MCNodeBase::getDescription (  )  const [virtual]

Gives a short description of what this particular instantiation does (in case a more specific description is needed on an individual basis).

By default simply returns getName(), because any calls from a BehaviorBase function to getClassDescription() are going to call BehaviorBase::getClassDescription(), not ~YourSubClass~getClassDescription(), because static functions can't be virtual in C++ (doh!)

This means that getDescription called on a pointer to a BehaviorBase of unknown subtype would always return an empty string, which is pretty useless. So instead we return the name in this situation. If you want getDescription to return getClassDescription, you'll have to override it in your subclass to do so.

Reimplemented from BehaviorBase.

Reimplemented in LedNode, MCNode< T, mcName, mcDesc, completes >, MCNode< LedMC >, MCNode< WalkMC, defWalkNodeName, defWalkNodeDesc >, MCNode< MotionSequenceMC< SIZE >, defMotionSequenceNodeName, defMotionSequenceNodeDesc, true >, MCNode< DynamicMotionSequence, defDynamicMotionSequenceNodeName, defDynamicMotionSequenceNodeDesc, true >, MCNode< PostureMC, defPostureNodeName, defPostureNodeDesc, true >, MCNode< TailWagMC, defTailWagNodeName, defTailWagNodeDesc, false >, MCNode< W, mcName, mcDesc >, MCNode< HeadPointerMC, defHeadPointerNodeName, defHeadPointerNodeDesc, true >, MCNode< PIDMC, defPIDNodeName, defPIDNodeDesc, true >, and MCNode< ArmMC, defArmNodeName, defArmNodeDesc, true >.

Definition at line 46 of file MCNode.h.

virtual MotionManager::MC_ID MCNodeBase::getMC_ID (  )  [virtual]

reveal the MC_ID; if the motion isn't currently active, returns MotionManager::invalid_MC_ID

Definition at line 30 of file MCNode.h.

Referenced by MotionSequenceNode< SIZE >::doEvent(), and DynamicMotionSequenceNode::doEvent().

virtual float MCNodeBase::getPriority (  )  const [virtual]

Return the priority assigned to this node's motion command.

Definition at line 33 of file MCNode.h.

virtual bool MCNodeBase::hasPrivateMC (  )  [protected, virtual]

returns true if the motion command being used was created internally via getPrivateMC()

Definition at line 67 of file MCNode.h.

Referenced by motionFails(), and stop().

void MCNodeBase::motionFails (  )  [virtual]

Post a failure event and abort the motion command.

This is useful if the user calls some IK method that determines that the target is unreachable, and an approximate solution isn't acceptable.

Definition at line 105 of file MCNode.cc.

MCNodeBase& MCNodeBase::operator= ( const MCNodeBase  )  [private]

don't call (assignment operator)

void MCNodeBase::setPriority ( const float  p  )  [virtual]

Set the priority that will be used when adding this motion command; if the command is already active, change its priority in the MotionManager.

Definition at line 99 of file MCNode.cc.

void MCNodeBase::stop (  )  [virtual]

Removes the motion command from the motion manager if it was our own creation.

Reimplemented from StateNode.

Reimplemented in LedActivate, WalkNode, and WaypointEngineNode< W, mcName, mcDesc >.

Definition at line 76 of file MCNode.cc.


Member Data Documentation

const char MCNodeBase::defDesc = "A generic wrapper for any MotionCommand" [static]

the default description for MCNodes -- can be overridden via MCNode's template arguments

Definition at line 14 of file MCNode.h.

const char MCNodeBase::defName = "MCNode" [static]

the default name for MCNodes -- can be overridden via MCNode's template arguments

Definition at line 13 of file MCNode.h.

Referenced by getClassDescription().

MotionCommand used by this node (may be NULL if sharing the MC with other nodes).

Definition at line 69 of file MCNode.h.

Referenced by MCNode< T, mcName, mcDesc, completes >::getPrivateMC(), LedNode::getPrivateMC(), hasPrivateMC(), setMC(), and ~MCNodeBase().

bool MCNodeBase::mcCompletes [protected]

if true, will post a completion when the underlying MotionCommand posts a status

Definition at line 72 of file MCNode.h.

Referenced by doEvent().

Priority to use when adding this motion commmand to the MotionManager.

Definition at line 71 of file MCNode.h.

Referenced by getPriority(), MCNode< T, mcName, mcDesc, completes >::postStart(), and setPriority().


The documentation for this class was generated from the following files:

Tekkotsu v5.1CVS
Generated Mon May 9 04:59:13 2016 by Doxygen 1.6.3