#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 58 of file CGenericSensor.h.
| typedef std::multimap< mrpt::system::TTimeStamp, mrpt::utils::CSerializablePtr > mrpt::hwdrivers::CGenericSensor::TListObservations |
Definition at line 63 of file CGenericSensor.h.
| typedef std::pair< mrpt::system::TTimeStamp, mrpt::utils::CSerializablePtr > mrpt::hwdrivers::CGenericSensor::TListObsPair |
Definition at line 64 of file CGenericSensor.h.
The current state of the sensor.
Definition at line 69 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::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 142 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::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 83 of file CGenericSensor.h.
TSensorState mrpt::hwdrivers::CGenericSensor::m_state [protected] |
Definition at line 92 of file CGenericSensor.h.
| Page generated by Doxygen 1.5.8 for MRPT 0.6.5 SVN: at Thu Feb 26 02:07:47 EST 2009 |