EventBase Class Reference#include <EventBase.h>
Inheritance diagram for EventBase:
[legend]List of all members.
Detailed Description
The basis of events passed around the high level system.
Contains the list of 'known' event generators in EventGeneratorID_t and EventGeneratorNames[]. If you want to make a new generator, all you have to do is add a new entry to the ID list (EventGeneratorID_t) and then put its name in the EventGeneratorNames[] array.
Alternatively, there is an 'unlicensed spectrum' available under the unknownEGID. You can send out events from that generator just like any other, but it should only be used for quick tests and hacking around...
The sourceID (just an unsigned int) is generator specific. A SID of i from the button generator (buttonEGID) will refer to a particular button, whereas a SID from a vision detector (say visObjEGID) refers to seeing a particular object. These SIDs are usually defined in the generators themselves.
The duration field is also generator specific - some may refer to the time since the last activation event (e.g. button events) where as others refer to time since last status (e.g. sensors updates)
The EventGeneratorID_t list should contain links to the generators' documentation, or will directly give information about what to expect in events from that generator.
Definition at line 35 of file EventBase.h.
|
Public Types |
enum | EventGeneratorID_t {
unknownEGID = 0,
aiEGID,
audioEGID,
buttonEGID,
erouterEGID,
estopEGID,
locomotionEGID,
motmanEGID,
powerEGID,
sensorEGID,
stateMachineEGID,
textmsgEGID,
timerEGID,
visOFbkEGID,
visRawCameraEGID,
visInterleaveEGID,
visJPEGEGID,
visSegmentEGID,
visRLEEGID,
visRegionEGID,
visObjEGID,
wmVarEGID,
worldModelEGID,
numEGIDs
} |
| Lists all possible event generator ids. More...
|
enum | EventTypeID_t { activateETID,
statusETID,
deactivateETID,
numETIDs
} |
| an event type id is used to denote whether it's the first in a sequence (button down), in a sequence (button still down), or last (button up) More...
|
Public Member Functions |
|
| EventBase () |
| constructor
|
| EventBase (EventGeneratorID_t gid, unsigned int sid, EventTypeID_t tid, unsigned int dur=0) |
| constructor
|
| EventBase (EventGeneratorID_t gid, unsigned int sid, EventTypeID_t tid, unsigned int dur, const std::string &n, float mag) |
| constructor
|
virtual | ~EventBase () |
| destructor
|
|
virtual const std::string & | getName () const |
| gets the name of the event - useful for debugging, outputs
|
virtual EventBase & | setName (const std::string &n) |
| sets name to a given string, prevents overwriting by generated names
|
virtual float | getMagnitude () const |
| gets "strength" of event - by default 1 for activate and status events, 0 for deactivate events
|
virtual EventBase & | setMagnitude (float m) |
| sets "strength" of event - you may want to override the default values (see getMagnitude())
|
virtual unsigned int | getTimeStamp () const |
| time event was created
|
virtual EventGeneratorID_t | getGeneratorID () const |
| gets the generator ID for this event
|
virtual EventBase & | setGeneratorID (EventGeneratorID_t gid) |
| sets the generator ID for this event
|
virtual unsigned int | getSourceID () const |
| gets the source ID for this event
|
virtual EventBase & | setSourceID (unsigned int sid) |
| sets the source ID for this event
|
virtual EventTypeID_t | getTypeID () const |
| gets the type ID
|
virtual EventBase & | setTypeID (EventTypeID_t tid) |
| sets the type ID
|
virtual unsigned int | getDuration () const |
| gets the time since the beginning of this sequence (the timestamp of the activate event)
|
virtual EventBase & | setDuration (unsigned int d) |
| sets the time since the beginning of this sequence (the timestamp of the activate event)
|
virtual const std::string & | resetName () |
| resets name to generated form, overwriting any previous name
|
virtual bool | isCustomName () const |
| returns true if not using the generated name
|
bool | operator< (const EventBase &e) const |
| gets the name of the event - useful for debugging, outputs
|
virtual bool | operator== (const EventBase &eb) const |
| is true if the genID, typeID, and sourceID's all match
|
bool | sameGenSource (const EventBase &eb) const |
| tests to see if events have the same generator and source IDs
|
bool | longerThan (const EventBase &eb) const |
| compares event duration and ensures same event generator, source, and type - useful for event masks
|
bool | shorterThan (const EventBase &eb) const |
| compares event duration and ensures same event generator, source, and type - useful for event masks
|
bool | equalOrLongerThan (const EventBase &eb) const |
| compares event duration and ensures same event generator, source, and type - useful for event masks
|
bool | equalOrShorterThan (const EventBase &eb) const |
| compares event duration and ensures same event generator, source, and type - useful for event masks
|
|
Useful for serializing events to send between processes
|
virtual unsigned int | getBinSize () const |
| calculates space needed to save - if you can't precisely add up the size, overestimate and things will still work.
|
virtual unsigned int | LoadBuffer (const char buf[], unsigned int len) |
| Load from a saved buffer.
|
virtual unsigned int | SaveBuffer (char buf[], unsigned int len) const |
| Save to a given buffer.
|
Static Public Attributes |
const char *const | EventGeneratorNames [numEGIDs] |
| Holds string versions of each of the generator's names, handy for debugging so you can output the events as readable strings (you'll find this in EventBase.cc since it can't go in the header or we get multiply-defined errors during linking).
|
Protected Member Functions |
virtual void | genName () |
| This does the actual generation of names based on genID, sourceID, and typeID.
|
Protected Attributes |
std::string | stim_id |
| the name of the event, use the same name consistently or else will be seen as different stimuli
|
float | magnitude |
| the current "strength" of the event/stimuli... MAKE SURE this gets set to ZERO IF event is DEACTIVATE
|
unsigned int | timestamp |
| the time the event was created - set automatically by constructor
|
bool | nameisgen |
| tracks whether the current name (stim_id) is generated or set
|
EventGeneratorID_t | genID |
| generator ID, see EventGeneratorID_t
|
EventTypeID_t | typeID |
| type ID, see EventTypeID_t
|
unsigned int | sourceID |
| the source ID for this event Source IDs are defined by the generator that made it
|
unsigned int | duration |
| the time since this sequence started (like, how long the button has been pressed); not all generators will set this; Typically, this would be 0 for activate, (activate.timestamp-get_time()) for status and deactivate
|
Member Enumeration Documentation
|
Lists all possible event generator ids.
An event generator is a abstract source of events, used for listening to and parsing certain classes of events
IF YOU ADD AN EVENT GENERATOR, DON'T FORGET TO NAME IT (EventBase::EventGeneratorNames, actual names are in EventBase.cc) - Enumeration values:
-
unknownEGID |
default EGID, used if you forget to set it, probably not a good idea to use this for anything except errors or testing quick hacks |
aiEGID |
not being used, yet (might use this when AI makes decisions?) |
audioEGID |
Sends an event when a sound starts/ends playback, status events as chained sounds end; SID is SoundManager::Play_ID; duration is playtime. |
buttonEGID |
Sends activate event for button down, deactivate for button up. Status events only for when pressure sensitive buttons' reading changes. (on sensorEGID updates); SIDs are from ButtonOffset_t in the namespace of the target model (e.g. ERS210Info::ButtonOffset_t); duration is button down time. |
erouterEGID |
Sends activate event on first listener, deactivate on last listener, and status on other listener changes.; SID is the generator ID affected (NOT IMPLEMENTED YET). |
estopEGID |
Sends an event when the estop is turned on or off; SID is the MotionManager::MC_ID of the EmergencyStopMC; duration is length of estop activation. |
locomotionEGID |
Sends events regarding transportation in the world; you can/should assume these will all be LocomotionEvent classes; SID is MotionManager::MC_ID of posting MotionCommand; duration is the time since last velocity change of that MC. (You could generate these for things other than walking...). |
motmanEGID |
Sends events when a MotionCommand is added or removed, SID is is the MotionManager::MC_ID, duration is always 0. |
powerEGID |
Sends events for low power warnings, temperature, etc. see PowerSourceID::PowerSourceID_t. |
sensorEGID |
Sends a status event when new sensor readings are available. see SensorSourceID::SensorSourceID_t. |
stateMachineEGID |
Sends an event upon entering and leaving a StateNode; SID is pointer to the StateNode; duration is always 0. |
textmsgEGID |
Sends status events when a text msg is received on console; generated by the Controller, SID is always -1; durations is always 0 (see Controller for more information). |
timerEGID |
Sends timer events; you set timers explicitly, you don't have to listen as well. (See EventRouter::addTimer()) There's no cross-talk, only the listener which requested the timer will receive it; SID is whatever you requested it to be; duration is the time (since boot, in ms) that the timer was supposed to go off; these are always status. |
visOFbkEGID |
Sends a DataEvent for every camera image received from the system; SID and duration are always 0 (This is generated by the MainObj instantiation of MMCombo). |
visRawCameraEGID |
Sends a FilterBankEvent when new raw camera images are available; SID is whatever value you gave during setup (typically in StartupBehavior_SetupVision.cc), duration is always 0. |
visInterleaveEGID |
Sends a FilterBankEvent when new interleaved images are available; SID is whatever value you gave during setup (typically in StartupBehavior_SetupVision.cc), duration is always 0. |
visJPEGEGID |
Sends a FilterBankEvent when JPEG compressed images are available; SID is whatever value you gave during setup (typically in StartupBehavior_SetupVision.cc), duration is always 0. |
visSegmentEGID |
Sends a SegmentedColorFilterBankEvent when color segmentated images are available; SID is whatever value you gave during setup (typically in StartupBehavior_SetupVision.cc), duration is always 0. |
visRLEEGID |
Sends a SegmentedColorFilterBankEvent when RLE encoded color segmentated images are available; SID is whatever value you gave during setup (typically in StartupBehavior_SetupVision.cc), duration is always 0. |
visRegionEGID |
Sends a SegmentedColorFilterBankEvent when color regions are available; SID is whatever value you gave during setup (typically in StartupBehavior_SetupVision.cc), duration is always 0. |
visObjEGID |
Sends VisionObjectEvents for objects detected in camera images; SID is whatever value you gave during setup (typically in StartupBehavior_SetupVision.cc), duration is always 0. |
wmVarEGID |
Sends an event when a watched memory is changed; source id is pointer to WMEntry. |
worldModelEGID |
not being used, yet (for when objects are detected/lost?) |
numEGIDs |
the number of generators available |
Definition at line 41 of file EventBase.h.
Referenced by getGeneratorID(), and LoadBuffer(). |
|
an event type id is used to denote whether it's the first in a sequence (button down), in a sequence (button still down), or last (button up)
- Enumeration values:
-
activateETID |
Start of an event sequence, e.g. button down. |
statusETID |
Indicates a value has changed, e.g. new sensor readings. |
deactivateETID |
Last of a series of events, e.g. button up. |
numETIDs |
the number of different event types |
Definition at line 72 of file EventBase.h.
Referenced by getTypeID(), and LoadBuffer(). |
Constructor & Destructor Documentation
virtual EventBase::~EventBase |
( |
|
) |
[inline, virtual] |
|
Member Function Documentation
bool EventBase::equalOrLongerThan |
( |
const EventBase & |
eb |
) |
const [inline] |
|
|
compares event duration and ensures same event generator, source, and type - useful for event masks
Definition at line 123 of file EventBase.h. |
bool EventBase::equalOrShorterThan |
( |
const EventBase & |
eb |
) |
const [inline] |
|
|
compares event duration and ensures same event generator, source, and type - useful for event masks
Definition at line 124 of file EventBase.h. |
void EventBase::genName |
( |
|
) |
[protected, virtual] |
|
unsigned int EventBase::getBinSize |
( |
|
) |
const [virtual] |
|
virtual unsigned int EventBase::getDuration |
( |
|
) |
const [inline, virtual] |
|
|
gets the generator ID for this event
- See also:
- EventGeneratorID_t
Definition at line 97 of file EventBase.h.
Referenced by EventRouter::addListener(), EventRouter::addTrapper(), EventRouter::EventMapper::getMapping(), StartupBehavior::processEvent(), StareAtBallBehavior::processEvent(), SimpleChaseBallBehavior::processEvent(), SegCamBehavior::processEvent(), PlayMotionSequenceNode< SIZE >::processEvent(), FreeMemReportControl::processEvent(), DriveMeBehavior::processEvent(), ChaseBallBehavior::processEvent(), BatteryMonitorBehavior::processEvent(), BanditMachine::WaitNode::processEvent(), AutoGetupBehavior::processEvent(), AlanBehavior::processEvent(), EventRouter::removeListener(), EventRouter::removeTrapper(), and EventRouter::EventMapper::verifyMapping(). |
virtual float EventBase::getMagnitude |
( |
|
) |
const [inline, virtual] |
|
virtual const std::string& EventBase::getName |
( |
|
) |
const [inline, virtual] |
|
virtual unsigned int EventBase::getSourceID |
( |
|
) |
const [inline, virtual] |
|
|
gets the source ID for this event
- See also:
- sourceID
Definition at line 100 of file EventBase.h.
Referenced by EventRouter::addListener(), EventRouter::addTimer(), EventRouter::addTrapper(), EventRouter::EventMapper::getMapping(), WorldStateVelDaemon::processEvent(), WMMonitorBehavior::processEvent(), ValueEditControl< T >::processEvent(), StartupBehavior::processEvent(), SoundTestBehavior::processEvent(), FreeMemReportControl::processEvent(), BatteryMonitorBehavior::processEvent(), BatteryCheckControl::processEvent(), EventRouter::removeListener(), EventRouter::removeTrapper(), Controller::trapEvent(), and EventRouter::EventMapper::verifyMapping(). |
virtual unsigned int EventBase::getTimeStamp |
( |
|
) |
const [inline, virtual] |
|
virtual EventTypeID_t EventBase::getTypeID |
( |
|
) |
const [inline, virtual] |
|
|
gets the type ID
- See also:
- EventTypeID_t
Definition at line 103 of file EventBase.h.
Referenced by EventRouter::addListener(), EventRouter::addTrapper(), EventRouter::EventMapper::getMapping(), WorldStateVelDaemon::processEvent(), WalkToTargetMachine::processEvent(), VisualTargetTrans::processEvent(), StareAtBallBehavior::processEvent(), SoundTestBehavior::processEvent(), SimpleChaseBallBehavior::processEvent(), EventLogger::processEvent(), EStopControllerBehavior::processEvent(), Controller::processEvent(), ChaseBallBehavior::processEvent(), EventRouter::removeListener(), EventRouter::removeTrapper(), Controller::trapEvent(), and EventRouter::EventMapper::verifyMapping(). |
virtual bool EventBase::isCustomName |
( |
|
) |
const [inline, virtual] |
|
|
returns true if not using the generated name
Definition at line 110 of file EventBase.h. |
unsigned int EventBase::LoadBuffer |
( |
const char |
buf[], |
|
|
unsigned int |
len |
|
) |
[virtual] |
|
bool EventBase::longerThan |
( |
const EventBase & |
eb |
) |
const [inline] |
|
|
compares event duration and ensures same event generator, source, and type - useful for event masks
Definition at line 121 of file EventBase.h. |
bool EventBase::operator< |
( |
const EventBase & |
e |
) |
const [inline] |
|
|
gets the name of the event - useful for debugging, outputs
Definition at line 112 of file EventBase.h. |
virtual bool EventBase::operator== |
( |
const EventBase & |
eb |
) |
const [inline, virtual] |
|
|
is true if the genID, typeID, and sourceID's all match
Definition at line 115 of file EventBase.h. |
virtual const std::string& EventBase::resetName |
( |
|
) |
[inline, virtual] |
|
|
resets name to generated form, overwriting any previous name
Definition at line 109 of file EventBase.h. |
bool EventBase::sameGenSource |
( |
const EventBase & |
eb |
) |
const [inline] |
|
unsigned int EventBase::SaveBuffer |
( |
char |
buf[], |
|
|
unsigned int |
len |
|
) |
const [virtual] |
|
virtual EventBase& EventBase::setDuration |
( |
unsigned int |
d |
) |
[inline, virtual] |
|
|
sets the time since the beginning of this sequence (the timestamp of the activate event)
- See also:
- duration
Definition at line 107 of file EventBase.h. |
virtual EventBase& EventBase::setMagnitude |
( |
float |
m |
) |
[inline, virtual] |
|
virtual EventBase& EventBase::setName |
( |
const std::string & |
n |
) |
[inline, virtual] |
|
|
sets name to a given string, prevents overwriting by generated names
Definition at line 90 of file EventBase.h. |
virtual EventBase& EventBase::setSourceID |
( |
unsigned int |
sid |
) |
[inline, virtual] |
|
bool EventBase::shorterThan |
( |
const EventBase & |
eb |
) |
const [inline] |
|
Member Data Documentation
|
the time since this sequence started (like, how long the button has been pressed); not all generators will set this; Typically, this would be 0 for activate, (activate.timestamp-get_time()) for status and deactivate
Definition at line 147 of file EventBase.h.
Referenced by equalOrLongerThan(), equalOrShorterThan(), getBinSize(), getDuration(), LoadBuffer(), longerThan(), SaveBuffer(), setDuration(), and shorterThan(). |
|
Initial value: {
"UnknownGen",
"AI",
"Audio",
"Button",
"EventRouter",
"EStop",
"Locomotion",
"MotionManager",
"Power",
"Sensor",
"StateMachine",
"TextMsg",
"Timer",
"VisionOFbkVector",
"VisionRawCamera",
"VisionInterleaver",
"VisionJPEGCompressor",
"VisionSegmenter",
"VisionRLEEncoder",
"VisionRegionConnector",
"VisionObjectDetector",
"WMVariable",
"WorldModel",
}
Holds string versions of each of the generator's names, handy for debugging so you can output the events as readable strings (you'll find this in EventBase.cc since it can't go in the header or we get multiply-defined errors during linking).
Definition at line 4 of file EventBase.cc.
Referenced by genName(). |
The documentation for this class was generated from the following files:
|