1 #ifndef ORG_EEROS_CONTROL_MEDIANFILTER_HPP_ 2 #define ORG_EEROS_CONTROL_MEDIANFILTER_HPP_ 37 template <
size_t N,
typename Tval =
double>
45 zeroInitCurrentValues<Tval>();
65 for(
size_t i = 0; i < N-1; i++) {
75 std::sort(std::begin(temp), std::end(temp));
117 template <
size_t No,
typename ValT>
118 friend std::ostream& operator<<(std::ostream& os, MedianFilter<No,ValT>& filter);
129 template <
typename S>
130 typename std::enable_if<std::is_arithmetic<S>::value>::type zeroInitCurrentValues() {
135 template <
typename S>
136 typename std::enable_if<!std::is_arithmetic<S>::value>::type zeroInitCurrentValues() {
137 for(
size_t i = 0; i < N; i++) {
149 template <
size_t N,
typename Tval>
150 std::ostream& operator<<(std::ostream& os, MedianFilter<N,Tval>& filter) {
151 os <<
"Block MedianFilter: '" << filter.getName() <<
"' is enabled=";
152 os << filter.enabled <<
", ";
154 os <<
"current median=" << filter.currentMedianValue <<
", ";
156 os <<
"medianIndex=" << filter.medianIndex <<
", ";
158 os <<
"current values:[" << filter.currentValues[0];
159 for(
size_t i = 1; i < N; i++){
160 os <<
"," << filter.currentValues[i];
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 setTimestamp(timestamp_t newTimestamp)
Definition: Signal.hpp:66
Definition: Block1i1o.hpp:12
virtual timestamp_t getTimestamp() const
Definition: Signal.hpp:62