29 #ifndef CGenericSensor_H
30 #define CGenericSensor_H
84 typedef std::multimap< mrpt::system::TTimeStamp, mrpt::utils::CSerializablePtr >
TListObservations;
85 typedef std::pair< mrpt::system::TTimeStamp, mrpt::utils::CSerializablePtr >
TListObsPair;
103 inline void setSensorLabel(
const std::string& sensorLabel) { m_sensorLabel=sensorLabel; }
152 void appendObservations(
const std::vector<mrpt::utils::CSerializablePtr> &obj);
157 appendObservations(std::vector<mrpt::utils::CSerializablePtr>(1, obj));
173 virtual void loadConfig_sensorSpecific(
175 const std::string §ion ) = 0;
185 static CGenericSensor* createSensor(
const std::string &className);
204 const std::string §ion );
209 virtual void initialize()
215 virtual void doProcess() = 0;
219 void getObservations( TListObservations &lstObjects );
234 m_external_images_format = ext;
239 m_external_images_jpeg_quality = quality;
242 return m_external_images_jpeg_quality;
248 #define SENSOR_CLASS_ID(class_name) \
249 static_cast<const mrpt::hwdrivers::TSensorClassId*>(& mrpt::hwdrivers::class_name::class##class_name)
251 #define SENSOR_IS_CLASS( ptrObj, class_name ) (ptrObj->GetRuntimeClass()==SENSOR_CLASS_ID(class_name))
256 #define DEFINE_GENERIC_SENSOR(class_name) \
258 static mrpt::hwdrivers::CGenericSensor::CLASSINIT_GENERIC_SENSOR _init_##class_name;\
260 static mrpt::hwdrivers::TSensorClassId class##class_name; \
261 virtual const mrpt::hwdrivers::TSensorClassId* GetRuntimeClass() const; \
262 static mrpt::hwdrivers::CGenericSensor* CreateObject(); \
263 static void doRegister() \
264 { CGenericSensor::registerClass( SENSOR_CLASS_ID( class_name ) ); }
268 #define IMPLEMENTS_GENERIC_SENSOR(class_name, NameSpace) \
269 mrpt::hwdrivers::CGenericSensor* NameSpace::class_name::CreateObject() \
270 { return static_cast<hwdrivers::CGenericSensor*>( new NameSpace::class_name ); } \
271 mrpt::hwdrivers::TSensorClassId NameSpace::class_name::class##class_name = { \
272 #class_name, NameSpace::class_name::CreateObject }; \
273 const mrpt::hwdrivers::TSensorClassId* NameSpace::class_name::GetRuntimeClass() const \
274 { return SENSOR_CLASS_ID(class_name); }