Plaquette
 
Loading...
Searching...
No Matches
Smoother.h
1/*
2 * Smoother.h
3 *
4 * (c) 2015 Sofian Audry :: info(@)sofianaudry(.)com
5 * (c) 2015 Thomas O Fredericks :: tof(@)t-o-f(.)info
6 *
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 */
20
21#ifndef SMOOTHER_H_
22#define SMOOTHER_H_
23
24#include "PqCore.h"
25#include "MovingFilter.h"
26
27namespace pq {
28
30class Smoother : public MovingFilter {
31public:
37
44 virtual ~Smoother() {}
45
47 virtual void reset();
48
50 virtual void reset(float estimatedMeanValue);
51
53 virtual void reset(float estimatedMinValue, float estimatedMaxValue);
54
60 virtual float put(float value);
61
63 virtual float filter(float value);
64
65protected:
66 virtual void step();
67
68 // Variables used to compute current value average during a step (in case of multiple calls to put()).
69 float _currentValueStep;
70};
71
72}
73
74#endif
The main Plaquette static class containing all the units.
Definition PqCore.h:63
static Engine & primary()
Returns the main instance of Plaquette.
Definition PqCore.cpp:30
Definition MovingFilter.h:39
Simple moving average transform filter.
Definition Smoother.h:30
virtual void reset()
Resets the filter.
Definition Smoother.cpp:38
virtual float filter(float value)
Returns the filtered value (without calibrating).
Definition Smoother.cpp:88
virtual float put(float value)
Pushes value into the unit.
Definition Smoother.cpp:53
virtual float timeWindow() const
Returns the time window (expressed in seconds).
Definition TimeWindowable.h:45
Engine * engine() const
Returns the engine that owns this unit.
Definition PqCore.h:420