A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabber. More...
#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. | ||||
| double | getProcessRate () const | |||
| CGenericSensor () | ||||
| Constructor. | ||||
| virtual | ~CGenericSensor () | |||
| Destructor. | ||||
| void | loadConfig (const mrpt::utils::CConfigFileBase &configSource, const std::string §ion) | |||
Loads the generic settings common to any sensor (See CGenericSensor), then call to "loadConfig_sensorSpecific"
| ||||
| 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 (const std::string &className) | |||
| Creates a sensor by a name of the class. | ||||
| static CGenericSensorPtr | createSensorPtr (const std::string &className) | |||
| Just like createSensor, but returning a smart pointer to the newly created sensor object. | ||||
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. | ||||
| virtual void | loadConfig_sensorSpecific (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)
| ||||
Static Protected Member Functions | ||||
| static void | registerClass (const TSensorClassId *pNewClass) | |||
| Register a class into the internal list of "CGenericSensor" descendents. | ||||
Protected Attributes | ||||
| double | m_process_rate | |||
| See CGenericSensor. | ||||
| size_t | m_max_queue_len | |||
| See CGenericSensor. | ||||
| size_t | m_grab_decimation | |||
| If set to N>=2, only 1 out of N observations will be saved to m_objList. | ||||
| size_t | m_grab_decimation_counter | |||
| Used when "m_grab_decimation" is enabled. | ||||
| 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. | ||||
A generic interface for a wide-variety of sensors designed to be used in the application RawLogGrabber.
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://www.mrpt.org/Application:RawLogGrabber
Definition at line 77 of file CGenericSensor.h.
| typedef std::multimap< mrpt::system::TTimeStamp, mrpt::utils::CSerializablePtr > mrpt::hwdrivers::CGenericSensor::TListObservations |
Definition at line 82 of file CGenericSensor.h.
| typedef std::pair< mrpt::system::TTimeStamp, mrpt::utils::CSerializablePtr > mrpt::hwdrivers::CGenericSensor::TListObsPair |
Definition at line 83 of file CGenericSensor.h.
The current state of the sensor.
Definition at line 88 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 | ( | const std::string & | className | ) | [static] |
Creates a sensor by a name of the class.
Typically the user may want to create a smart pointer around the returned pointer, whis is made with:
CGenericSensorPtr sensor = CGenericSensorPtr( CGenericSensor::createSensor("XXX") );
| static CGenericSensorPtr mrpt::hwdrivers::CGenericSensor::createSensorPtr | ( | const std::string & | className | ) | [inline, static] |
Just like createSensor, but returning a smart pointer to the newly created sensor object.
Definition at line 166 of file CGenericSensor.h.
| 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::CBoardENoses, mrpt::hwdrivers::CBoardIR, mrpt::hwdrivers::CBoardSonars, mrpt::hwdrivers::CCameraSensor, mrpt::hwdrivers::CGPSInterface, mrpt::hwdrivers::CIMUXSens, mrpt::hwdrivers::CNTRIPEmitter, mrpt::hwdrivers::CPtuHokuyo, and mrpt::hwdrivers::CSwissRanger3DCamera.
| 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.
| double mrpt::hwdrivers::CGenericSensor::getProcessRate | ( | ) | const [inline] |
Definition at line 98 of file CGenericSensor.h.
| virtual const mrpt::hwdrivers::TSensorClassId* mrpt::hwdrivers::CGenericSensor::GetRuntimeClass | ( | ) | const [pure virtual] |
| TSensorState mrpt::hwdrivers::CGenericSensor::getState | ( | ) | const [inline] |
The current state of the sensor.
Definition at line 96 of file CGenericSensor.h.
| 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::CBoardENoses, mrpt::hwdrivers::CCameraSensor, mrpt::hwdrivers::CHokuyoURG, mrpt::hwdrivers::CIMUXSens, mrpt::hwdrivers::CNTRIPEmitter, mrpt::hwdrivers::CPtuHokuyo, mrpt::hwdrivers::CSickLaserSerial, and mrpt::hwdrivers::CSwissRanger3DCamera.
Definition at line 187 of file CGenericSensor.h.
| void mrpt::hwdrivers::CGenericSensor::loadConfig | ( | const mrpt::utils::CConfigFileBase & | configSource, | |
| const std::string & | section | |||
| ) |
Loads the generic settings common to any sensor (See CGenericSensor), then call to "loadConfig_sensorSpecific"
| This | method throws an exception with a descriptive message if some critical parameter is missing or has an invalid value. |
| virtual void mrpt::hwdrivers::CGenericSensor::loadConfig_sensorSpecific | ( | const mrpt::utils::CConfigFileBase & | configSource, | |
| const std::string & | section | |||
| ) | [protected, 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::CBoardENoses, mrpt::hwdrivers::CBoardIR, mrpt::hwdrivers::CBoardSonars, mrpt::hwdrivers::CCameraSensor, mrpt::hwdrivers::CGPSInterface, mrpt::hwdrivers::CHokuyoURG, mrpt::hwdrivers::CIMUXSens, mrpt::hwdrivers::CLMS100Eth, mrpt::hwdrivers::CNTRIPEmitter, mrpt::hwdrivers::CPtuHokuyo, mrpt::hwdrivers::CSickLaserSerial, mrpt::hwdrivers::CSickLaserUSB, and mrpt::hwdrivers::CSwissRanger3DCamera.
| 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...
The critical section for m_objList.
Definition at line 101 of file CGenericSensor.h.
size_t mrpt::hwdrivers::CGenericSensor::m_grab_decimation [protected] |
If set to N>=2, only 1 out of N observations will be saved to m_objList.
Definition at line 114 of file CGenericSensor.h.
size_t mrpt::hwdrivers::CGenericSensor::m_grab_decimation_counter [protected] |
Used when "m_grab_decimation" is enabled.
Definition at line 117 of file CGenericSensor.h.
std::map< std::string , const TSensorClassId *> mrpt::hwdrivers::CGenericSensor::m_knownClasses [static, private] |
Used in registerClass.
Definition at line 105 of file CGenericSensor.h.
size_t mrpt::hwdrivers::CGenericSensor::m_max_queue_len [protected] |
See CGenericSensor.
Definition at line 113 of file CGenericSensor.h.
The queue of objects to be returned by getObservations.
Definition at line 102 of file CGenericSensor.h.
double mrpt::hwdrivers::CGenericSensor::m_process_rate [protected] |
See CGenericSensor.
Definition at line 112 of file CGenericSensor.h.
TSensorState mrpt::hwdrivers::CGenericSensor::m_state [protected] |
Definition at line 120 of file CGenericSensor.h.
| Page generated by Doxygen 1.6.1 for MRPT 0.9.0 SVN: at Mon Jun 7 06:47:58 UTC 2010 |