rusEFI
The most advanced open source ECU
Loading...
Searching...
No Matches
exp_average.h
Go to the documentation of this file.
1/**
2 * @file exp_average.h
3 */
4
5#pragma once
6
7class ExpAverage {
8public:
9 float initOrAverage(float value) {
10 if (current == 0) {
11 current = value;
12 return current;
13 }
14 return average(value);
15 }
16
17 float average(float value) {
19 return current;
20 }
21
22 void init(int length) {
23 setSmoothingFactor(2 / (length + 1.0));
24 }
25
26 void setSmoothingFactor(float p_smoothingFactor) {
27 smoothingFactor = p_smoothingFactor;
28 }
29
30 void reset() {
31 current = 0;
32 smoothingFactor = 0.5;
33 }
34
35private:
36 float current = 0;
37 float smoothingFactor = 0.5;
38};
void reset()
Definition exp_average.h:30
void setSmoothingFactor(float p_smoothingFactor)
Definition exp_average.h:26
float initOrAverage(float value)
Definition exp_average.h:9
void init(int length)
Definition exp_average.h:22
float average(float value)
Definition exp_average.h:17
float smoothingFactor
Definition exp_average.h:37
float current
Definition exp_average.h:36