00001 // Copyright (C) 2002 Mathieu Lemay 00002 00003 #ifndef SICKLMS200_H 00004 #define SICKLMS200_H 00005 00006 #include "BufferedNode.h" 00007 00008 namespace RobotFlow { 00009 00010 class LaserDevice; 00011 00012 class SICKLMS200 : public FD::BufferedNode 00013 { 00014 00015 public: 00016 SICKLMS200(std::string nodeName, FD::ParameterSet params); 00017 ~SICKLMS200(); 00018 virtual void calculate(int output_id, int count, FD::Buffer &out); 00019 00020 private: 00021 void init(); 00022 00023 // Internals variables 00024 int m_fd; 00025 int m_range; 00026 int m_intensity; 00027 00028 pthread_mutex_t m_list_lock; 00029 pseudosem_t m_semaphore; 00030 00031 // Outputs variables 00032 int Range_output; 00033 int Intensity_output; 00034 00035 LaserDevice* m_pLaserDevice; 00036 00037 }; 00038 00039 }//namespace RobotFlow 00040 #endif