23 #ifndef __PLUGINS_LASER_FILTER_FILTER_THREAD_H_ 24 #define __PLUGINS_LASER_FILTER_FILTER_THREAD_H_ 26 #include "filters/filter.h" 28 #include <core/threading/thread.h> 29 #include <aspect/blocked_timing.h> 30 #include <aspect/logging.h> 31 #include <aspect/configurable.h> 32 #include <aspect/blackboard.h> 34 # include <aspect/tf.h> 42 class Laser360Interface;
43 class Laser720Interface;
44 class Laser1080Interface;
83 void open_interfaces(std::string prefix, std::vector<LaserInterface> &ifs,
84 std::vector<LaserDataFilter::Buffer *> &bufs,
bool writing);
87 std::string filter_type, std::string prefix,
88 unsigned int in_data_size,
89 std::vector<LaserDataFilter::Buffer *> &inbufs);
93 protected:
virtual void run() { Thread::run(); }
96 std::vector<LaserInterface> __in;
97 std::vector<LaserInterface> __out;
99 std::vector<LaserDataFilter::Buffer *> __in_bufs;
100 std::vector<LaserDataFilter::Buffer *> __out_bufs;
104 std::string __cfg_name;
105 std::string __cfg_prefix;
107 std::list<LaserFilterThread *> __wait_threads;
Laser360Interface Fawkes BlackBoard Interface.
virtual void run()
Stub to see name in backtrace for easier debugging.
Thread aspect to access to BlackBoard.
Wait until a given condition holds.
virtual void finalize()
Finalize the thread.
Laser1080Interface Fawkes BlackBoard Interface.
Fawkes library namespace.
Thread class encapsulation of pthreads.
Base class for all Fawkes BlackBoard interfaces.
void set_wait_barrier(fawkes::Barrier *barrier)
Set wait barrier.
Thread aspect to use blocked timing.
LaserFilterThread(std::string &cfg_name, std::string &cfg_prefix)
Constructor.
Thread aspect to log output.
void set_wait_threads(std::list< LaserFilterThread *> &threads)
Set threads to wait for in loop.
Thread aspect to access configuration data.
void wait_done()
Wait until thread is done.
virtual void init()
Initialize the thread.
Mutex mutual exclusion lock.
Laser720Interface Fawkes BlackBoard Interface.
A barrier is a synchronization tool which blocks until a given number of threads have reached the bar...
virtual void loop()
Code to execute in the thread.