00001 #ifndef BRICS_OODL_HOKUYOURG_H 00002 #define BRICS_OODL_HOKUYOURG_H 00003 00004 00005 #include "generic/Logger.hpp" 00006 #include "generic/Units.hpp" 00007 #include "generic-laser-scanner/LaserScanner.hpp" 00008 #include "generic/Errors.hpp" 00009 #include "generic-laser-scanner/LaserScannerData.hpp" 00010 #include "generic-laser-scanner/LaserScannerDataWithIntensities.hpp" 00011 #include "generic-laser-scanner/LaserScannerConfiguration.hpp" 00012 #include "hokuyo-urg/HokuyoURGConfiguration.hpp" 00013 00014 #include "UrgCtrl.h" 00015 #include "RangeSensorParameter.h" 00016 namespace brics_oodl { class Errors; } 00017 namespace brics_oodl { class LaserScannerConfiguration; } 00018 namespace brics_oodl { class HokuyoURGConfiguration; } 00019 namespace brics_oodl { class LaserScannerData; } 00020 namespace brics_oodl { class LaserScannerDataWithIntensities; } 00021 00022 namespace brics_oodl { 00023 00028 class HokuyoURG : public LaserScanner { 00029 public: 00030 HokuyoURG(); 00031 00032 virtual ~HokuyoURG(); 00033 00034 bool open(Errors& error); 00035 00036 bool close(Errors& error); 00037 00038 bool setConfiguration(const LaserScannerConfiguration& configuration, Errors& error); 00039 00040 bool setConfiguration(const HokuyoURGConfiguration& configuration, Errors& error); 00041 00042 bool getConfiguration(LaserScannerConfiguration& configuration, Errors& error); 00043 00044 bool getConfiguration(HokuyoURGConfiguration& configuration, Errors& error); 00045 00046 bool getData(LaserScannerData& data, Errors& error); 00047 00048 bool getData(LaserScannerDataWithIntensities& data, Errors& error); 00049 00050 bool resetDevice(Errors& error); 00051 00052 00053 private: 00054 LaserScannerConfiguration* config; 00055 00056 bool isConnected; 00057 00058 qrk::UrgCtrl hokuyo; 00059 00060 }; 00061 00062 } // namespace brics_oodl 00063 #endif