#include <mrpt/hwdrivers/CGenericSensor.h>
Classes | ||||
struct | CLASSINIT_GENERIC_SENSOR | |||
Auxiliary structure used for CSerializable runtime class ID support. More... | ||||
Public Types | ||||
enum | TSensorState { ssInitializing = 0, ssWorking, ssError } | |||
The current state of the sensor. More... | ||||
typedef std::multimap < mrpt::system::TTimeStamp, mrpt::utils::CSerializablePtr > | TListObservations | |||
typedef std::pair < mrpt::system::TTimeStamp, mrpt::utils::CSerializablePtr > | TListObsPair | |||
Public Member Functions | ||||
virtual const mrpt::hwdrivers::TSensorClassId * | GetRuntimeClass () const =0 | |||
TSensorState | getState () const | |||
The current state of the sensor. | ||||
CGenericSensor () | ||||
Constructor. | ||||
virtual | ~CGenericSensor () | |||
Destructor. | ||||
virtual void | loadConfig (const mrpt::utils::CConfigFileBase &configSource, const std::string §ion)=0 | |||
Loads specific configuration for the device from a given source of configuration parameters, for example, an ".ini" file, loading from the section "[iniSection]" (see utils::CConfigFileBase and derived classes)
| ||||
virtual void | initialize () | |||
This method can or cannot be implemented in the derived class, depending on the need for it. | ||||
virtual void | doProcess ()=0 | |||
This method will be invoked at a minimum rate of "process_rate" (Hz)
| ||||
void | getObservations (TListObservations &lstObjects) | |||
Returns a list of enqueued objects, emptying it (thread-safe). | ||||
Static Public Member Functions | ||||
static CGenericSensor * | createSensor (std::string &className) | |||
Creates a sensor by a name of the class. | ||||
Protected Member Functions | ||||
void | appendObservation (const mrpt::utils::CSerializablePtr &obj) | |||
This method must be called by derived classes to enqueue a new observation in the list to be returned by getObservations. | ||||
Static Protected Member Functions | ||||
static void | registerClass (const TSensorClassId *pNewClass) | |||
Register a class into the internal list of "CGenericSensor" descendents. | ||||
Protected Attributes | ||||
TSensorState | m_state | |||
Private Attributes | ||||
synch::CCriticalSection | m_csObjList | |||
The critical section for m_objList. | ||||
TListObservations | m_objList | |||
The queue of objects to be returned by getObservations. | ||||
Static Private Attributes | ||||
static std::map< std::string, const TSensorClassId * > | m_knownClasses | |||
Used in registerClass. |
Derived classes should be designed with the following execution flow in mind:
Notice that there are helper methods for managing the internal list of objects (see CGenericSensor::appendObservation).
Class Factory: This is also a factory of derived classes, through the static method CGenericSensor::createSensor
For more details on RawLogGrabber refer to the wiki page: http://babel.isa.uma.es/mrpt/index.php/Application:RawLogGrabber
Definition at line 57 of file CGenericSensor.h.
typedef std::multimap< mrpt::system::TTimeStamp, mrpt::utils::CSerializablePtr > mrpt::hwdrivers::CGenericSensor::TListObservations |
Definition at line 62 of file CGenericSensor.h.
typedef std::pair< mrpt::system::TTimeStamp, mrpt::utils::CSerializablePtr > mrpt::hwdrivers::CGenericSensor::TListObsPair |
Definition at line 63 of file CGenericSensor.h.
The current state of the sensor.
Definition at line 68 of file CGenericSensor.h.
mrpt::hwdrivers::CGenericSensor::CGenericSensor | ( | ) |
Constructor.
virtual mrpt::hwdrivers::CGenericSensor::~CGenericSensor | ( | ) | [virtual] |
Destructor.
void mrpt::hwdrivers::CGenericSensor::appendObservation | ( | const mrpt::utils::CSerializablePtr & | obj | ) | [protected] |
This method must be called by derived classes to enqueue a new observation in the list to be returned by getObservations.
Passed objects must be created in dynamic memory and a smart pointer passed. Example of creation:
CObservationGPSPtr o = CObservationGPSPtr( new CObservationGPS() ); o-> .... // Set data appendObservation(o);
static CGenericSensor* mrpt::hwdrivers::CGenericSensor::createSensor | ( | std::string & | className | ) | [static] |
Creates a sensor by a name of the class.
virtual void mrpt::hwdrivers::CGenericSensor::doProcess | ( | ) | [pure virtual] |
This method will be invoked at a minimum rate of "process_rate" (Hz)
This | method must throw an exception with a descriptive message if some critical error is found. |
Implemented in mrpt::hwdrivers::C2DRangeFinderAbstract, mrpt::hwdrivers::CActivMediaRobotBase, mrpt::hwdrivers::CBoardDLMS, mrpt::hwdrivers::CBoardSonars, mrpt::hwdrivers::CCameraSensor, mrpt::hwdrivers::CGPSInterface, mrpt::hwdrivers::CIMUXSens, and mrpt::hwdrivers::CPtuHokuyo.
void mrpt::hwdrivers::CGenericSensor::getObservations | ( | TListObservations & | lstObjects | ) |
Returns a list of enqueued objects, emptying it (thread-safe).
The objects must be freed by the invoker.
virtual const mrpt::hwdrivers::TSensorClassId* mrpt::hwdrivers::CGenericSensor::GetRuntimeClass | ( | ) | const [pure virtual] |
TSensorState mrpt::hwdrivers::CGenericSensor::getState | ( | ) | const [inline] |
virtual void mrpt::hwdrivers::CGenericSensor::initialize | ( | ) | [inline, virtual] |
This method can or cannot be implemented in the derived class, depending on the need for it.
This | method must throw an exception with a descriptive message if some critical error is found. |
Reimplemented in mrpt::hwdrivers::CActivMediaRobotBase, mrpt::hwdrivers::CBoardDLMS, mrpt::hwdrivers::CCameraSensor, mrpt::hwdrivers::CHokuyoURG, mrpt::hwdrivers::CIMUXSens, and mrpt::hwdrivers::CPtuHokuyo.
Definition at line 141 of file CGenericSensor.h.
virtual void mrpt::hwdrivers::CGenericSensor::loadConfig | ( | const mrpt::utils::CConfigFileBase & | configSource, | |
const std::string & | section | |||
) | [pure virtual] |
Loads specific configuration for the device from a given source of configuration parameters, for example, an ".ini" file, loading from the section "[iniSection]" (see utils::CConfigFileBase and derived classes)
This | method must throw an exception with a descriptive message if some critical parameter is missing or has an invalid value. |
Implemented in mrpt::hwdrivers::CActivMediaRobotBase, mrpt::hwdrivers::CBoardDLMS, mrpt::hwdrivers::CBoardSonars, mrpt::hwdrivers::CCameraSensor, mrpt::hwdrivers::CGPSInterface, mrpt::hwdrivers::CHokuyoURG, mrpt::hwdrivers::CIMUXSens, mrpt::hwdrivers::CPtuHokuyo, and mrpt::hwdrivers::CSickLaserUSB.
static void mrpt::hwdrivers::CGenericSensor::registerClass | ( | const TSensorClassId * | pNewClass | ) | [static, protected] |
Register a class into the internal list of "CGenericSensor" descendents.
Used internally in the macros DEFINE_GENERIC_SENSOR, etc...
std::map< std::string , const TSensorClassId *> mrpt::hwdrivers::CGenericSensor::m_knownClasses [static, private] |
The queue of objects to be returned by getObservations.
Definition at line 82 of file CGenericSensor.h.
TSensorState mrpt::hwdrivers::CGenericSensor::m_state [protected] |
Definition at line 91 of file CGenericSensor.h.
Page generated by Doxygen 1.5.9 for MRPT 0.7.1 SVN: at Mon Aug 17 22:27:43 EDT 2009 |