motor_trace_buffer.h
Go to the documentation of this file.
00001 
00027 #ifndef SRH_ETHERCAT_HARDWARE_MOTOR_TRACE_H
00028 #define SRH_ETHERCAT_HARDWARE_MOTOR_TRACE_H
00029 
00030 #include <sr_edc_ethercat_drivers/MotorTraceSample.h>
00031 #include <sr_edc_ethercat_drivers/ActuatorInfo.h>
00032 #include <sr_edc_ethercat_drivers/MotorTrace.h>
00033 
00034 #include <realtime_tools/realtime_publisher.h>
00035 #include <boost/thread/condition.hpp>  // Missing from realtime_publisher : wg-ros-pkg Ticket #4682
00036 #include <boost/utility.hpp>
00037 #include <string>
00038 
00039 namespace sr_edc_ethercat_drivers
00040 {
00041 
00050 class MotorTraceBuffer : private boost::noncopyable
00051 {
00052 public:
00053   MotorTraceBuffer(unsigned trace_size);
00054   bool initialize(const sr_edc_ethercat_drivers::ActuatorInfo &actuator_info);
00055   void flagPublish(const std::string &reason, int level, int delay);
00056   void checkPublish();
00057   void sample(const sr_edc_ethercat_drivers::MotorTraceSample &s);
00058   void reset();
00059 protected:
00060   unsigned trace_size_;  
00061   unsigned trace_index_; 
00062   unsigned published_traces_; 
00063   std::vector<sr_edc_ethercat_drivers::MotorTraceSample> trace_buffer_;
00064   realtime_tools::RealtimePublisher<sr_edc_ethercat_drivers::MotorTrace> *publisher_;
00065   int publish_delay_;
00066   int publish_level_;
00067   std::string publish_reason_;
00068 };
00069 
00070 
00071 };
00072 
00073 #endif //SRH_ETHERCAT_HARDWARE_MOTOR_TRACE_H


sr_edc_ethercat_drivers
Author(s): Ugo Cupcic, Yann Sionneau, Toni Oliver
autogenerated on Thu Aug 27 2015 15:16:54