Homepage Demos Overview Downloads Tutorials Reference
Credits

BatteryMonitorBehavior Class Reference

#include <BatteryMonitorBehavior.h>

Inheritance diagram for BatteryMonitorBehavior:

Inheritance graph
[legend]
List of all members.

Detailed Description

A background behavior which will monitor the power level and flip the ears when appropriate on a 210, or blink the headlight if a 220.

Think of this as a simple example class. For exercise, try using a MotionSequenceMC instead of switching the ears back manually using a PostureMC

Definition at line 21 of file BatteryMonitorBehavior.h.

Public Member Functions

 BatteryMonitorBehavior ()
 constructor
virtual ~BatteryMonitorBehavior ()
 destructor
virtual void DoStart ()
 Listens for the PowerSourceID::LowPowerWarnSID.
virtual void DoStop ()
 Stops listening for events.
virtual void processEvent (const EventBase &event)
 Adds a BatteryMonitorMC to motman if power goes low.
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 bool shouldWarn ()
 returns true if the warning should be active (power remaining less than high_power_p, no external power, but also checks that a power update has been received)

Static Public Attributes

static const unsigned int max_t = 10000
 max time between ear flips when at "high power" mark
static const unsigned int high_power_p = 20
 percent of 100 which is point at which to begin warning
static const unsigned int no_power_p = 14
 percent of 100 at which power will fail (approximate!)

Protected Member Functions

void startWarning ()
 adds a pose and a timer to get the ears flipping
void stopWarning ()
 removes pose, in case battery magically charges
unsigned int calcFlipDelay ()
 makes the ears flip more rapidly as power declines. Flips back and forth once every 15 seconds at 15%, down to flipping constantly at 5%.
void setFlipper (bool set)
 sets the ears on a 210 or the headlight on a 220 - true toggles current, false clears

Protected Attributes

PostureMCpose
 if we are currently warning of low battery, holds a pose, NULL otherwise
MotionManager::MC_ID pose_id
 id of pose if we are currently warning, MotionManager::invalid_MC_ID otherwise
MotionManager::MC_ID led_id
 id of LedMC if we are currently warning, MotionManager::invalid_MC_ID otherwise

Private Member Functions

 BatteryMonitorBehavior (const BatteryMonitorBehavior &)
 don't copy behaviors
BatteryMonitorBehavior operator= (const BatteryMonitorBehavior &)
 don't assign behaviors


Constructor & Destructor Documentation

BatteryMonitorBehavior::BatteryMonitorBehavior  )  [inline]
 

constructor

Definition at line 28 of file BatteryMonitorBehavior.h.

virtual BatteryMonitorBehavior::~BatteryMonitorBehavior  )  [inline, virtual]
 

destructor

Definition at line 30 of file BatteryMonitorBehavior.h.

BatteryMonitorBehavior::BatteryMonitorBehavior const BatteryMonitorBehavior  )  [private]
 

don't copy behaviors


Member Function Documentation

unsigned int BatteryMonitorBehavior::calcFlipDelay  )  [inline, protected]
 

makes the ears flip more rapidly as power declines. Flips back and forth once every 15 seconds at 15%, down to flipping constantly at 5%.

Definition at line 126 of file BatteryMonitorBehavior.h.

Referenced by processEvent().

virtual void BatteryMonitorBehavior::DoStart  )  [inline, virtual]
 

Listens for the PowerSourceID::LowPowerWarnSID.

Reimplemented from BehaviorBase.

Definition at line 33 of file BatteryMonitorBehavior.h.

virtual void BatteryMonitorBehavior::DoStop  )  [inline, virtual]
 

Stops listening for events.

Reimplemented from BehaviorBase.

Definition at line 44 of file BatteryMonitorBehavior.h.

static std::string BatteryMonitorBehavior::getClassDescription  )  [inline, static]
 

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

If you do override this, also consider overriding getDescription() to return it

Reimplemented from BehaviorBase.

Definition at line 97 of file BatteryMonitorBehavior.h.

Referenced by getDescription().

virtual std::string BatteryMonitorBehavior::getDescription  )  const [inline, 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.

Definition at line 98 of file BatteryMonitorBehavior.h.

BatteryMonitorBehavior BatteryMonitorBehavior::operator= const BatteryMonitorBehavior  )  [private]
 

don't assign behaviors

virtual void BatteryMonitorBehavior::processEvent const EventBase event  )  [inline, virtual]
 

Adds a BatteryMonitorMC to motman if power goes low.

Reimplemented from BehaviorBase.

Definition at line 51 of file BatteryMonitorBehavior.h.

Referenced by DoStart().

void BatteryMonitorBehavior::setFlipper bool  set  )  [inline, protected]
 

sets the ears on a 210 or the headlight on a 220 - true toggles current, false clears

Definition at line 135 of file BatteryMonitorBehavior.h.

Referenced by processEvent(), and startWarning().

static bool BatteryMonitorBehavior::shouldWarn  )  [inline, static]
 

returns true if the warning should be active (power remaining less than high_power_p, no external power, but also checks that a power update has been received)

Definition at line 101 of file BatteryMonitorBehavior.h.

Referenced by DoStart(), and processEvent().

void BatteryMonitorBehavior::startWarning  )  [inline, protected]
 

adds a pose and a timer to get the ears flipping

Definition at line 105 of file BatteryMonitorBehavior.h.

Referenced by processEvent().

void BatteryMonitorBehavior::stopWarning  )  [inline, protected]
 

removes pose, in case battery magically charges

Definition at line 116 of file BatteryMonitorBehavior.h.

Referenced by DoStop(), and processEvent().


Member Data Documentation

const unsigned int BatteryMonitorBehavior::high_power_p = 20 [static]
 

percent of 100 which is point at which to begin warning

Definition at line 24 of file BatteryMonitorBehavior.h.

Referenced by calcFlipDelay(), and shouldWarn().

MotionManager::MC_ID BatteryMonitorBehavior::led_id [protected]
 

id of LedMC if we are currently warning, MotionManager::invalid_MC_ID otherwise

Definition at line 147 of file BatteryMonitorBehavior.h.

Referenced by BatteryMonitorBehavior(), processEvent(), startWarning(), and stopWarning().

const unsigned int BatteryMonitorBehavior::max_t = 10000 [static]
 

max time between ear flips when at "high power" mark

Definition at line 23 of file BatteryMonitorBehavior.h.

Referenced by calcFlipDelay().

const unsigned int BatteryMonitorBehavior::no_power_p = 14 [static]
 

percent of 100 at which power will fail (approximate!)

Definition at line 25 of file BatteryMonitorBehavior.h.

Referenced by calcFlipDelay().

PostureMC* BatteryMonitorBehavior::pose [protected]
 

if we are currently warning of low battery, holds a pose, NULL otherwise

Definition at line 145 of file BatteryMonitorBehavior.h.

Referenced by BatteryMonitorBehavior(), DoStop(), processEvent(), setFlipper(), startWarning(), and stopWarning().

MotionManager::MC_ID BatteryMonitorBehavior::pose_id [protected]
 

id of pose if we are currently warning, MotionManager::invalid_MC_ID otherwise

Definition at line 146 of file BatteryMonitorBehavior.h.

Referenced by BatteryMonitorBehavior(), startWarning(), and stopWarning().


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

Tekkotsu v2.2.2
Generated Tue Jan 4 15:45:21 2005 by Doxygen 1.4.0