rusefi-1/firmware/controllers/algo/engine_state.h

75 lines
1.7 KiB
C
Raw Normal View History

2015-07-10 06:01:56 -07:00
/**
* @file engine_state.h
* @brief One header which acts as gateway to current engine state
*
* @date Dec 20, 2013
2020-01-13 18:57:43 -08:00
* @author Andrey Belomutskiy, (c) 2012-2020
2015-07-10 06:01:56 -07:00
*/
2019-10-07 22:49:42 -07:00
#pragma once
2015-07-10 06:01:56 -07:00
2019-05-27 16:05:59 -07:00
#include "global.h"
#include "engine_parts.h"
#include "efi_pid.h"
#include "engine_state_generated.h"
2019-05-27 16:05:59 -07:00
class EngineState : public engine_state_s {
2019-05-27 16:05:59 -07:00
public:
EngineState();
void periodicFastCallback();
void updateSlowSensors();
void updateTChargeK(int rpm, float tps);
2019-05-27 16:05:59 -07:00
FuelConsumptionState fuelConsumption;
2022-06-17 18:20:47 -07:00
Timer crankingTimer;
2019-05-27 16:05:59 -07:00
WarningCodeState warnings;
// Estimated airflow based on whatever airmass model is active
float airflowEstimate = 0;
2019-05-27 16:05:59 -07:00
float auxValveStart = 0;
float auxValveEnd = 0;
/**
* MAP averaging angle start, in relation to 'mapAveragingSchedulingAtIndex' trigger index index
*/
angle_t mapAveragingStart[MAX_CYLINDER_COUNT];
2019-05-27 16:05:59 -07:00
angle_t mapAveragingDuration = 0;
2019-11-23 20:42:00 -08:00
/**
* timing advance is angle distance before Top Dead Center (TDP), i.e. "10 degree timing advance" means "happens 10 degrees before TDC"
*/
angle_t timingAdvance[MAX_CYLINDER_COUNT] = {0};
// Angle between firing the main (primary) spark and the secondary (trailing) spark
angle_t trailingSparkAngle = 0;
2019-05-27 16:05:59 -07:00
efitick_t timeSinceLastTChargeK;
float currentVe = 0;
float currentVeLoad = 0;
float currentAfrLoad = 0;
2019-05-27 16:05:59 -07:00
float fuelingLoad = 0;
float ignitionLoad = 0;
2019-05-27 16:05:59 -07:00
/**
* Raw fuel injection duration produced by current fuel algorithm, without any correction
*/
floatms_t baseFuel = 0;
/**
* TPS acceleration: extra fuel amount
*/
floatms_t tpsAccelEnrich = 0;
angle_t injectionOffset = 0;
2020-03-26 08:52:19 -07:00
multispark_state multispark;
float targetLambda = 0.0f;
float stoichiometricRatio = 0.0f;
2019-05-27 16:05:59 -07:00
};