Homepage Demos Overview Downloads Tutorials Reference
Credits
Main Page | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Namespace Members | Compound Members | File Members | Related Pages | Search

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 19 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 getName () const
 Identifies the behavior in menus and such.


Static Public Member Functions

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

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

const unsigned int max_t = 10000
 max time between ear flips when at "high power" mark

const unsigned int high_power_p = 20
 percent of 100 which is point at which to begin warning

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 26 of file BatteryMonitorBehavior.h.

References led_id, pose, and pose_id.

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

destructor

Definition at line 28 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 124 of file BatteryMonitorBehavior.h.

References high_power_p, max_t, no_power_p, ERS210Info::PowerRemainOffset, WorldState::sensors, and state.

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

Listens for the PowerSourceID::LowPowerWarnSID.

Reimplemented from BehaviorBase.

Definition at line 31 of file BatteryMonitorBehavior.h.

References EventRouter::addListener(), BehaviorBase::DoStart(), erouter, EventBase::powerEGID, processEvent(), shouldWarn(), and EventBase::statusETID.

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

Stops listening for events.

Reimplemented from BehaviorBase.

Definition at line 42 of file BatteryMonitorBehavior.h.

References BehaviorBase::DoStop(), erouter, EventRouter::forgetListener(), pose, and stopWarning().

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).

Reimplemented from BehaviorBase.

Definition at line 96 of file BatteryMonitorBehavior.h.

virtual std::string BatteryMonitorBehavior::getName  )  const [inline, virtual]
 

Identifies the behavior in menus and such.

Implements BehaviorBase.

Definition at line 95 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 49 of file BatteryMonitorBehavior.h.

References EventRouter::addTimer(), ASSERTRET, calcFlipDelay(), erouter, ERS210Info::FrameTime, EventBase::getGeneratorID(), EventBase::getName(), EventBase::getSourceID(), MotionManager::kEmergencyPriority, MotionManager::kIgnoredPriority, led_id, LedEngine::major, motman, ERS210Info::NumFrames, pose, EventBase::powerEGID, ERS210Info::PowerRemainOffset, WorldState::sensors, setFlipper(), MotionManager::setPriority(), shouldWarn(), startWarning(), state, stopWarning(), and EventBase::timerEGID.

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 133 of file BatteryMonitorBehavior.h.

References WorldState::ERS210Mask, WorldState::ERS220Mask, WorldState::outputs, pose, WorldState::robotDesign, PostureMC::setOutputCmd(), and state.

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 99 of file BatteryMonitorBehavior.h.

References high_power_p, WorldState::powerFlags, ERS210Info::PowerRemainOffset, WorldState::sensors, and state.

void BatteryMonitorBehavior::startWarning  )  [inline, protected]
 

adds a pose and a timer to get the ears flipping

Definition at line 103 of file BatteryMonitorBehavior.h.

References MotionManager::addMotion(), EventRouter::addTimer(), erouter, MotionManager::kEmergencyPriority, led_id, LedEngine::major, motman, MotionManager::peekMotion(), pose, pose_id, ERS210Info::PowerRemainOffset, WorldState::sensors, setFlipper(), and state.

void BatteryMonitorBehavior::stopWarning  )  [inline, protected]
 

removes pose, in case battery magically charges

Definition at line 114 of file BatteryMonitorBehavior.h.

References erouter, MotionManager::invalid_MC_ID, led_id, motman, pose, pose_id, MotionManager::removeMotion(), and EventRouter::removeTimer().


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 22 of file BatteryMonitorBehavior.h.

MotionManager::MC_ID BatteryMonitorBehavior::led_id [protected]
 

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

Definition at line 142 of file BatteryMonitorBehavior.h.

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

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

Definition at line 21 of file BatteryMonitorBehavior.h.

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

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

Definition at line 23 of file BatteryMonitorBehavior.h.

PostureMC* BatteryMonitorBehavior::pose [protected]
 

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

Definition at line 140 of file BatteryMonitorBehavior.h.

MotionManager::MC_ID BatteryMonitorBehavior::pose_id [protected]
 

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

Definition at line 141 of file BatteryMonitorBehavior.h.


The documentation for this class was generated from the following file:
Tekkotsu v1.4
Generated Sat Jul 19 00:08:49 2003 by Doxygen 1.3.2