Tekkotsu Homepage
Demos
Overview
Downloads
Dev. Resources
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


Member Function Documentation

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.


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

Tekkotsu v3.0
Generated Fri May 11 20:07:44 2007 by Doxygen 1.4.7