rusEFI
The most advanced open source ECU
Loading...
Searching...
No Matches
closed_loop_fuel.h
Go to the documentation of this file.
1// closed_loop_fuel.h
2
3#pragma once
4
6#include "deadband.h"
8
9struct stft_s;
10
13 // Default is no correction, aka 1.0 multiplier
14 for (size_t i = 0; i < FT_BANK_COUNT; i++) {
15 banks[i] = 1.0f;
16 }
17 }
18
19 float banks[FT_BANK_COUNT];
20};
21
23 ClosedLoopFuelCellImpl cells[STFT_CELL_COUNT];
24};
25
27public:
28 void init(stft_s *stftCfg);
29 // EngineModule implementation
30 void onSlowCallback() override;
31 bool needsDelayedShutoff() override;
32
33 ClosedLoopFuelResult getCorrection(float rpm, float fuelLoad);
34
35#if ! EFI_UNIT_TEST
36private:
37#endif
38 FuelingBank banks[FT_BANK_COUNT];
39
43
45 size_t computeStftBin(float rpm, float load, stft_s& cfg);
48};
49
50void initStft(void);
51
52/* TODO: move out of here */
FuelingBank banks[FT_BANK_COUNT]
stft_state_e getLearningState(SensorType sensor)
bool needsDelayedShutoff() override
Deadband< 2 > loadDeadband
Deadband< 2 > overrunDeadband
void init(stft_s *stftCfg)
void onSlowCallback() override
size_t computeStftBin(float rpm, float load, stft_s &cfg)
Deadband< 25 > idleDeadband
SensorType getSensorForBankIndex(size_t index)
ClosedLoopFuelResult getCorrection(float rpm, float fuelLoad)
stft_state_e getCorrectionState()
void initStft(void)
bool checkIfTuningVeNow()
static Lps25Sensor sensor(device)
stft_state_e
SensorType
Definition sensor_type.h:18
float banks[FT_BANK_COUNT]
ClosedLoopFuelCellImpl cells[STFT_CELL_COUNT]