00001 00034 #ifndef MULTISENSE_ROS_PPS_H 00035 #define MULTISENSE_ROS_PPS_H 00036 00037 #include <boost/shared_ptr.hpp> 00038 #include <boost/thread.hpp> 00039 #include <ros/ros.h> 00040 00041 #include <multisense_lib/MultiSenseChannel.hh> 00042 00043 namespace multisense_ros { 00044 00045 class Pps { 00046 public: 00047 00048 Pps(crl::multisense::Channel* driver); 00049 ~Pps(); 00050 00051 void ppsCallback(const crl::multisense::pps::Header& header); 00052 00053 private: 00054 00055 // 00056 // CRL sensor API 00057 00058 crl::multisense::Channel* driver_; 00059 00060 // 00061 // Driver nodes 00062 00063 ros::NodeHandle device_nh_; 00064 00065 // 00066 // PPS publisher 00067 00068 ros::Publisher pps_pub_; 00069 00070 ros::Publisher stamped_pps_pub_; 00071 00072 // 00073 // Publish control 00074 00075 int32_t subscribers_; 00076 void connect(); 00077 void disconnect(); 00078 }; 00079 00080 } 00081 00082 #endif