rusEFI
The most advanced open source ECU
engine_state.h
Go to the documentation of this file.
1 /**
2  * @file engine_state.h
3  * @brief One header which acts as gateway to current engine state
4  *
5  * @date Dec 20, 2013
6  * @author Andrey Belomutskiy, (c) 2012-2020
7  */
8 
9 #pragma once
10 
11 #include "global.h"
12 #include "engine_parts.h"
13 #include "engine_state_generated.h"
14 
15 class EngineState : public engine_state_s {
16 public:
17  EngineState();
18  void periodicFastCallback();
19  void updateSlowSensors();
20  void updateTChargeK(int rpm, float tps);
21 
22  void updateSparkSkip();
23 
24  /**
25  * always 360 or 720, never zero
26  */
28 
29  /**
30  * this is based on sensorChartMode and sensorSnifferRpmThreshold settings
31  */
33 
34  // Per-injection fuel mass, including TPS accel enrich
35  float injectionMass[MAX_CYLINDER_COUNT] = {0};
36 
38 
40 
42 
43  // Estimated airflow based on whatever airmass model is active
44  float airflowEstimate = 0;
45 
46  float auxValveStart = 0;
47  float auxValveEnd = 0;
48 
49  /**
50  * MAP averaging angle start, in relation to 'mapAveragingSchedulingAtIndex' trigger index index
51  */
52  angle_t mapAveragingStart[MAX_CYLINDER_COUNT];
54 
55  /**
56  * timing advance is angle distance before Top Dead Center (TDP), i.e. "10 degree timing advance" means "happens 10 degrees before TDC"
57  */
58  angle_t timingAdvance[MAX_CYLINDER_COUNT] = {0};
59 
60  // Angle between firing the main (primary) spark and the secondary (trailing) spark
62 
64 
65  float currentVe = 0;
66 
67  /**
68  * Raw fuel injection duration produced by current fuel algorithm, without any correction
69  */
71 
72  /**
73  * TPS acceleration: extra fuel amount
74  */
76 
77  /**
78  * Each individual fuel injection duration for current engine cycle, without wall wetting
79  * including everything including injector lag, both cranking and running
80  * @see getInjectionDuration()
81  */
84 
86 
88 
90 };
91 
floatms_t tpsAccelEnrich
Definition: engine_state.h:75
angle_t injectionOffset
Definition: engine_state.h:85
float auxValveStart
Definition: engine_state.h:46
angle_t mapAveragingStart[MAX_CYLINDER_COUNT]
Definition: engine_state.h:52
angle_t engineCycle
Definition: engine_state.h:27
void updateTChargeK(int rpm, float tps)
Definition: engine2.cpp:217
float auxValveEnd
Definition: engine_state.h:47
efitick_t timeSinceLastTChargeK
Definition: engine_state.h:63
Timer crankingTimer
Definition: engine_state.h:39
float currentVe
Definition: engine_state.h:65
void updateSlowSensors()
Definition: engine2.cpp:88
floatms_t baseFuel
Definition: engine_state.h:70
float injectionMass[MAX_CYLINDER_COUNT]
Definition: engine_state.h:35
angle_t mapAveragingDuration
Definition: engine_state.h:53
void periodicFastCallback()
Definition: engine2.cpp:100
bool shouldUpdateInjectionTiming
Definition: engine_state.h:89
void updateSparkSkip()
Definition: engine2.cpp:91
float airflowEstimate
Definition: engine_state.h:44
WarningCodeState warnings
Definition: engine_state.h:41
angle_t trailingSparkAngle
Definition: engine_state.h:61
floatms_t injectionDuration
Definition: engine_state.h:82
sensor_chart_e sensorChartMode
Definition: engine_state.h:32
floatms_t injectionDurationStage2
Definition: engine_state.h:83
float injectionStage2Fraction
Definition: engine_state.h:37
multispark_state multispark
Definition: engine_state.h:87
angle_t timingAdvance[MAX_CYLINDER_COUNT]
Definition: engine_state.h:58
EngineState * getEngineState()
Definition: engine.cpp:574
sensor_chart_e
Definition: rusefi_enums.h:483
float floatms_t
Definition: rusefi_types.h:70
float angle_t
Definition: rusefi_types.h:61