rusEFI
The most advanced open source ECU
Loading...
Searching...
No Matches
controllers
sensors
converters
flex_sensor.h
Go to the documentation of this file.
1
#include "
sensor_converter_func.h
"
2
#include "
biquad.h
"
3
4
5
class
FlexConverter
:
public
SensorConverter
{
6
public
:
7
FlexConverter
() {
8
// Update rate is 50-150hz, so this actually filters at 0.5-1.5hz -3db depending on E%, which is ok
9
m_filter
.
configureLowpass
(100, 1);
10
}
11
12
SensorResult
convert
(
float
frequency
)
const override
{
13
// Sensor should only report 50-150hz, significantly outside that range indicates a problem
14
// it changes to 200hz+ to indicate methanol "contamination"
15
if
(
frequency
< 45) {
16
return
UnexpectedCode::Low;
17
}
18
19
if
(
frequency
> 155) {
20
return
UnexpectedCode::High;
21
}
22
23
float
flexPct = clampF(0,
frequency
- 50, 100);
24
25
return
m_filter
.
filter
(flexPct);
26
}
27
28
private
:
29
mutable
Biquad
m_filter
;
30
};
biquad.h
Biquad
Definition
biquad.h:10
Biquad::filter
float filter(float input)
Definition
biquad.cpp:74
Biquad::configureLowpass
void configureLowpass(float samplingFrequency, float cutoffFrequency, float Q=0.54f)
Definition
biquad.cpp:48
FlexConverter
Definition
flex_sensor.h:5
FlexConverter::m_filter
Biquad m_filter
Definition
flex_sensor.h:29
FlexConverter::FlexConverter
FlexConverter()
Definition
flex_sensor.h:7
FlexConverter::convert
SensorResult convert(float frequency) const override
Definition
flex_sensor.h:12
frequency
static float frequency
Definition
init_flex.cpp:21
SensorResult
expected< float > SensorResult
Definition
sensor.h:46
sensor_converter_func.h
SensorConverter
Definition
sensor_converter_func.h:5
Generated on Sat Sep 27 2025 00:10:06 for rusEFI by
1.9.8