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;
81 void open_interfaces(std::string prefix, std::vector<LaserInterface> &ifs,
82 std::vector<LaserDataFilter::Buffer *> &bufs,
bool writing);
84 LaserDataFilter * create_filter(std::string filter_type, std::string prefix,
85 unsigned int in_data_size,
86 std::vector<LaserDataFilter::Buffer *> &inbufs);
90 protected:
virtual void run() { Thread::run(); }
93 std::vector<LaserInterface> __in;
94 std::vector<LaserInterface> __out;
96 std::vector<LaserDataFilter::Buffer *> __in_bufs;
97 std::vector<LaserDataFilter::Buffer *> __out_bufs;
101 unsigned int __num_values;
103 std::string __cfg_name;
104 std::string __cfg_prefix;
108 std::list<LaserFilterThread *> __wait_threads;
Laser360Interface Fawkes BlackBoard Interface.
virtual void run()
Stub to see name in backtrace for easier debugging.
void set_wait_threads(std::list< LaserFilterThread * > &threads)
Set threads to wait for in loop.
Thread aspect to access to BlackBoard.
Wait until a given condition holds.
virtual void finalize()
Finalize the thread.
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.
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.