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 region = ftRegionIdle;
18 }
19
20 float banks[FT_BANK_COUNT];
22};
23
25 ClosedLoopFuelCellImpl cells[STFT_CELL_COUNT];
26};
27
29public:
30 void init(stft_s *stftCfg);
31 // EngineModule implementation
32 void onSlowCallback() override;
33 bool needsDelayedShutoff() override;
34
35 ClosedLoopFuelResult getCorrection(float rpm, float fuelLoad);
36
37#if ! EFI_UNIT_TEST
38private:
39#endif
40 FuelingBank banks[FT_BANK_COUNT];
41
45
47 ft_region_e computeStftBin(float rpm, float load, stft_s& cfg);
50};
51
52void initStft(void);
53
54/* TODO: move out of here */
FuelingBank banks[FT_BANK_COUNT]
stft_state_e getLearningState(SensorType sensor)
bool needsDelayedShutoff() override
ft_region_e computeStftBin(float rpm, float load, stft_s &cfg)
Deadband< 2 > loadDeadband
Deadband< 2 > overrunDeadband
void init(stft_s *stftCfg)
void onSlowCallback() override
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)
ft_region_e
stft_state_e
SensorType
Definition sensor_type.h:18
float banks[FT_BANK_COUNT]
ClosedLoopFuelCellImpl cells[STFT_CELL_COUNT]