Fawkes API  Fawkes Development Version
LaserMinMergeDataFilter Class Reference

Merge multiple laser data arrays into one. More...

#include "min_merge.h"

Inheritance diagram for LaserMinMergeDataFilter:

Public Types

enum  TimestampSelectionMethod { TIMESTAMP_LATEST, TIMESTAMP_FIRST, TIMESTAMP_INDEX }
 Timestamp selection method. More...
 

Public Member Functions

 LaserMinMergeDataFilter (const std::string filter_name, fawkes::Logger *logger, unsigned int in_data_size, std::vector< LaserDataFilter::Buffer *> &in)
 Constructor. More...
 
 LaserMinMergeDataFilter (const std::string filter_name, fawkes::Logger *logger, unsigned int in_data_size, std::vector< LaserDataFilter::Buffer *> &in, TimestampSelectionMethod timestamp_selection_method, unsigned int timestamp_index=0)
 Constructor. More...
 
virtual void filter ()
 Filter the incoming data. More...
 
- Public Member Functions inherited from LaserDataFilter
 LaserDataFilter (const std::string filter_name, unsigned int in_data_size, std::vector< Buffer *> &in, unsigned int out_size)
 Constructor. More...
 
virtual ~LaserDataFilter ()
 Virtual empty destructor. More...
 
virtual std::vector< Buffer * > & get_out_vector ()
 Get filtered data array. More...
 
virtual void set_out_vector (std::vector< Buffer *> &out)
 Set filtered data array. More...
 
virtual unsigned int get_out_data_size ()
 Get size of filtered data array. More...
 
void set_array_ownership (bool own_in, bool own_out)
 Set input/output array ownership. More...
 
bool owns_in () const
 Check if input arrays are owned by filter. More...
 
bool owns_out () const
 Check if output arrays are owned by filter. More...
 

Additional Inherited Members

- Protected Member Functions inherited from LaserDataFilter
virtual void set_out_data_size (unsigned int data_size)
 Resize output arrays. More...
 
void reset_outbuf (Buffer *b)
 Resets all readings in outbuf to NaN. More...
 
void copy_to_outbuf (Buffer *outbuf, const Buffer *inbuf)
 Copies the readings from inbuf to outbuf. More...
 
- Protected Attributes inherited from LaserDataFilter
const std::string filter_name
 Name of the specific filter instance. More...
 
unsigned int out_data_size
 Number of entries in output arrays. More...
 
unsigned int in_data_size
 Number of entries in input arrays. More...
 
std::vector< Buffer * > in
 Vector of input arrays. More...
 
std::vector< Buffer * > out
 Vector of output arrays. More...
 

Detailed Description

Merge multiple laser data arrays into one.

For each value in the output array takes the minimum value of all input arrays.

Author
Tim Niemueller

Definition at line 34 of file min_merge.h.

Member Enumeration Documentation

◆ TimestampSelectionMethod

Timestamp selection method.

Enumerator
TIMESTAMP_LATEST 

use the latest of all timestamps

TIMESTAMP_FIRST 

use the first (oldest) of all timestamps

TIMESTAMP_INDEX 

use a specific index in the input buffer list

Definition at line 38 of file min_merge.h.

Constructor & Destructor Documentation

◆ LaserMinMergeDataFilter() [1/2]

LaserMinMergeDataFilter::LaserMinMergeDataFilter ( const std::string  filter_name,
fawkes::Logger logger,
unsigned int  in_data_size,
std::vector< LaserDataFilter::Buffer *> &  in 
)

Constructor.

Parameters
filter_namename of this filter instance
loggerlogger
in_data_sizenumber of entries input value arrays
invector of input arrays

Definition at line 43 of file min_merge.cpp.

◆ LaserMinMergeDataFilter() [2/2]

LaserMinMergeDataFilter::LaserMinMergeDataFilter ( const std::string  filter_name,
fawkes::Logger logger,
unsigned int  in_data_size,
std::vector< LaserDataFilter::Buffer *> &  in,
TimestampSelectionMethod  timestamp_selection_method,
unsigned int  timestamp_index = 0 
)

Constructor.

Parameters
filter_namename of this filter instance
loggerlogger
in_data_sizenumber of entries input value arrays
invector of input arrays
timestamp_selection_methodmethod to use for timestamp selection
timestamp_indexif timestamp selection method is TIMESTAMP_INDEX this is the index of the input buffer to choose the timestamp from

Definition at line 62 of file min_merge.cpp.

Member Function Documentation

◆ filter()

void LaserMinMergeDataFilter::filter ( )
virtual

Filter the incoming data.

Function shall filter the data in the "in" member vector and write output to the "out" member vector.

Implements LaserDataFilter.

Definition at line 80 of file min_merge.cpp.

References LaserDataFilter::copy_to_outbuf(), LaserDataFilter::filter_name, LaserDataFilter::in, fawkes::Logger::log_warn(), LaserDataFilter::out, LaserDataFilter::out_data_size, TIMESTAMP_FIRST, and TIMESTAMP_INDEX.


The documentation for this class was generated from the following files: