rusEFI
The most advanced open source ECU
Loading...
Searching...
No Matches
long_term_fuel_trim.h
Go to the documentation of this file.
1// file long_term_fuel_trim.h
2
3#pragma once
4
5#include "closed_loop_fuel.h"
7
8struct LtftState {
9 // todo: probably reuse page_2_generated.h?
10 float trims[FT_BANK_COUNT][VE_LOAD_COUNT][VE_RPM_COUNT];
11
12 void save();
13 void load();
14 void reset();
15 void applyToVe();
16 // Development only, to be removed
17 void fillRandom();
18};
19
21public:
22 // EngineModule implementation
23 void onSlowCallback() override;
24 bool needsDelayedShutoff() override;
25
27 void learn(ClosedLoopFuelResult clResult, float rpm, float fuelLoad);
28 ClosedLoopFuelResult getTrims(float rpm, float fuelLoad);
29 void load();
30 void store();
31 void reset();
35 // Development only, to be removed
36 void fillRandom();
37
38private:
40 // TODO: move to livedata and kill isVeUpdated() ?
41 bool veNeedRefresh = false;
42 bool showUpdateToUser = false;
43
44 float getIntegratorGain() const;
45 float getMaxAdjustment() const;
46 float getMinAdjustment() const;
47
49};
50
51void initLtft();
56
void onSlowCallback() override
bool needsDelayedShutoff() override
void init(LtftState *state)
float getMinAdjustment() const
void learn(ClosedLoopFuelResult clResult, float rpm, float fuelLoad)
float getIntegratorGain() const
ClosedLoopFuelResult getTrims(float rpm, float fuelLoad)
float getMaxAdjustment() const
size_t ltftGetTsPageSize()
void * ltftGetTsPage()
bool ltftNeedVeRefresh()
void initLtft()
void applyLongTermFuelTrimToVe()
void resetLongTermFuelTrim()
void devPokeLongTermFuelTrim()
LtftState * ltftGetState()
state("state", SensorCategory.SENSOR_INPUTS, FieldType.INT8, 1871, 1.0, -1.0, -1.0, "")
void applyToVe()
void fillRandom()
void reset()
float trims[FT_BANK_COUNT][VE_LOAD_COUNT][VE_RPM_COUNT]