1 #ifndef ORG_EEROS_CONTROL_MAFILTER_HPP_ 2 #define ORG_EEROS_CONTROL_MAFILTER_HPP_ 38 template <
size_t N,
typename Tval =
double,
typename Tcoeff = Tval>
47 zeroInitPreviousValues<Tval>();
70 for(
size_t i = 0; i < N-1; i++) {
115 template <
size_t No,
typename ValT,
typename CoeffT>
116 friend std::ostream& operator<<(std::ostream& os, MAFilter<No,ValT,CoeffT>& filter);
126 template <
typename S>
127 typename std::enable_if<std::is_arithmetic<S>::value>::type zeroInitPreviousValues() {
132 template <
typename S>
133 typename std::enable_if<!std::is_arithmetic<S>::value>::type zeroInitPreviousValues() {
134 for(
size_t i = 0; i < N; i++) {
146 template <
size_t N,
typename Tval,
typename Tcoeff>
147 std::ostream& operator<<(std::ostream& os, MAFilter<N,Tval,Tcoeff>& filter) {
148 os <<
"Block MAFilter: '" << filter.getName() <<
"' is enabled=";
149 os << filter.enabled <<
", ";
151 os <<
"coefficients:[" << filter.coefficients[0];
152 for(
size_t i = 1; i < N; i++){
153 os <<
"," << filter.coefficients[i];
157 os <<
"previousValues:[" << filter.previousValues[0];
158 for(
size_t i = 1; i < N; i++){
159 os <<
"," << filter.previousValues[i];
Tcoeff * coefficients
Definition: MAFilter.hpp:120
Definition: MAFilter.hpp:39
virtual Signal< T > & getSignal()
Definition: Output.hpp:16
virtual T getValue() const
Definition: Signal.hpp:49
Input< Tval > in
Definition: Block1i1o.hpp:27
Definition: Config.hpp:14
Output< Tval > out
Definition: Block1i1o.hpp:28
virtual void setValue(T newValue)
Definition: Signal.hpp:53
virtual void run()
Definition: MAFilter.hpp:66
virtual void enable()
Definition: MAFilter.hpp:94
virtual void setTimestamp(timestamp_t newTimestamp)
Definition: Signal.hpp:66
virtual void disable()
Definition: MAFilter.hpp:106
Definition: Block1i1o.hpp:12
virtual timestamp_t getTimestamp() const
Definition: Signal.hpp:62
MAFilter(Tcoeff(&coeff)[N])
Definition: MAFilter.hpp:46
Tval previousValues[N]
Definition: MAFilter.hpp:121
bool enabled
Definition: MAFilter.hpp:122