orca-robotics


INTRODUCTION
Overview
Download and Install
Documentation

REPOSITORY
Interfaces
Drivers
Libraries
Utilities
Software Map

DEVELOPER
Dashboard

PEOPLE
Contributors
Users

SourceForge.net Logo
Project
Download
Mailing lists

 

         

laserscanner2dsickcarmen/driver.h

00001 /*
00002  * Orca-Robotics Project: Components for robotics 
00003  *               http://orca-robotics.sf.net/
00004  * Copyright (c) 2004-2008 Alex Brooks, Alexei Makarenko, Tobias Kaupp
00005  *
00006  * This distribution is licensed to you under the terms described in
00007  * the LICENSE file included in this distribution.
00008  *
00009  */
00010 
00011 #ifndef HYDRO_LASERSCANNER2D_SICK_CARMEN_H
00012 #define HYDRO_LASERSCANNER2D_SICK_CARMEN_H
00013 
00014 #include <hydrointerfaces/laserscanner2d.h>
00015 
00016 // forward declaration of Carmen class
00017 class sick_laser_t;
00018 
00019 namespace laserscanner2dsickcarmen {
00020 
00021 //
00022 // @author Alex Brooks
00023 //
00024 class Driver : public hydrointerfaces::LaserScanner2d
00025 {
00026 
00027 public: 
00028 
00029     Driver( const Config & cfg, 
00030                       const hydroutil::Context & context );
00031     virtual ~Driver();
00032 
00033     // Blocks till new data is available
00034     virtual void read( hydrointerfaces::LaserScanner2d::Data &data );
00035 
00036 private: 
00037 
00038     void init();
00039 
00040     int setupParams( double maxRange, int numberOfSamples, int baudrate );
00041 
00042     Config config_;
00043 
00044     // carmen core object
00045     sick_laser_t *laser_;
00046 
00047     char *device_;
00048     // LMS or PMS
00049     char *type_; 
00050     int baudrate_;
00051 
00052     hydroutil::Context context_;
00053 
00054     char sickInfoMessage_[2000];
00055 
00056     bool   firstRead_;
00057     double lastStatsUpdateTime_;
00058     bool   laserStalled_;
00059 };
00060 
00061 // Used for dynamically loading driver
00062 class Factory : public hydrointerfaces::LaserScanner2dFactory
00063 {
00064 public:
00065     hydrointerfaces::LaserScanner2d*
00066     createDriver( const hydrointerfaces::LaserScanner2d::Config &config,
00067                   const hydroutil::Context &context ) const
00068     {
00069         return new Driver( config, context );
00070     }
00071 };
00072 
00073 } // namespace
00074 
00075 // Used for dynamically loading driver
00076 extern "C" {
00077     hydrointerfaces::LaserScanner2dFactory *createDriverFactory();
00078 }
00079 
00080 #endif
 

Webmaster: Tobias Kaupp (tobasco at users.sourceforge.net)


Generated for Orca Robotics by  doxygen 1.4.5