rusEFI
The most advanced open source ECU
Loading...
Searching...
No Matches
flex_sensor.h
Go to the documentation of this file.
2#include "biquad.h"
3
4
6public:
8 // Update rate is 50-150hz, so this actually filters at 0.5-1.5hz -3db depending on E%, which is ok
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
28private:
30};
float filter(float input)
Definition biquad.cpp:74
void configureLowpass(float samplingFrequency, float cutoffFrequency, float Q=0.54f)
Definition biquad.cpp:48
Biquad m_filter
Definition flex_sensor.h:29
SensorResult convert(float frequency) const override
Definition flex_sensor.h:12
static float frequency
Definition init_flex.cpp:21
expected< float > SensorResult
Definition sensor.h:46