fastcat 0.13.15
C++ EtherCAT Device Command & Control Library
Loading...
Searching...
No Matches
filter.h
Go to the documentation of this file.
1#ifndef FASTCAT_FILTER_H_
2#define FASTCAT_FILTER_H_
3
4// Include related header (for cc files)
5
6// Include c then c++ libraries
7
8// Include external then project includes
9#include "fastcat/device_base.h"
10
11namespace fastcat
12{
14{
15 public:
16 MovingAverageFilter(uint16_t buffer_size);
17 double ApplyFilter(double new_data);
18
19 private:
20 std::vector<double> buffer_;
21 uint16_t buffer_size_ = 0;
22 uint16_t buffer_index_ = 0;
23};
24
26{
27 public:
28 DigitalABFilter(std::vector<double> A, std::vector<double> B);
29 double ApplyFilter(double new_data);
30
31 private:
32 std::vector<double> input_buffer_;
33 std::vector<double> output_buffer_;
34 std::vector<double> A_;
35 std::vector<double> B_;
36};
37
39
40FilterType FilterTypeFromString(std::string str);
41
42class Filter : public DeviceBase
43{
44 public:
45 Filter();
46 bool ConfigFromYaml(const YAML::Node& node) override;
47 bool Read() override;
48
49 protected:
52 std::unique_ptr<MovingAverageFilter> mov_avg_;
53 std::unique_ptr<DigitalABFilter> digital_ab_;
54};
55
56} // namespace fastcat
57
58#endif
Definition device_base.h:20
Definition filter.h:26
double ApplyFilter(double new_data)
Definition filter.cc:52
Definition filter.h:43
std::string filter_type_string_
Definition filter.h:50
std::unique_ptr< MovingAverageFilter > mov_avg_
Definition filter.h:52
Filter()
Definition filter.cc:98
bool ConfigFromYaml(const YAML::Node &node) override
Definition filter.cc:104
bool Read() override
Definition filter.cc:171
std::unique_ptr< DigitalABFilter > digital_ab_
Definition filter.h:53
enum FilterType filter_type_
Definition filter.h:51
Definition filter.h:14
double ApplyFilter(double new_data)
Definition filter.cc:22
Definition device_base.h:18
FilterType
Definition filter.h:38
@ MOVING_AVERAGE
Definition filter.h:38
@ DIGITAL_AB
Definition filter.h:38
@ BAD_FILTER_TYPE
Definition filter.h:38
FilterType FilterTypeFromString(std::string str)
Definition filter.cc:83