auto-sync
This commit is contained in:
parent
efaff8fc1c
commit
3a9a53f606
|
@ -554,6 +554,8 @@ void updateTunerStudioState(Engine *engine, TunerStudioOutputChannels *tsOutputC
|
||||||
tsOutputChannels->manifold_air_pressure = getMap();
|
tsOutputChannels->manifold_air_pressure = getMap();
|
||||||
tsOutputChannels->engineLoad = engineLoad;
|
tsOutputChannels->engineLoad = engineLoad;
|
||||||
tsOutputChannels->rpmAcceleration = engine->rpmCalculator.getRpmAcceleration();
|
tsOutputChannels->rpmAcceleration = engine->rpmCalculator.getRpmAcceleration();
|
||||||
|
tsOutputChannels->maxDelta = engine->accelEnrichment.maxDelta;
|
||||||
|
tsOutputChannels->minDelta = engine->accelEnrichment.minDelta;
|
||||||
|
|
||||||
tsOutputChannels->checkEngine = hasErrorCodes();
|
tsOutputChannels->checkEngine = hasErrorCodes();
|
||||||
#if EFI_PROD_CODE
|
#if EFI_PROD_CODE
|
||||||
|
|
|
@ -14,7 +14,8 @@
|
||||||
#include "engine_math.h"
|
#include "engine_math.h"
|
||||||
#include "signal_executor.h"
|
#include "signal_executor.h"
|
||||||
|
|
||||||
EXTERN_ENGINE;
|
EXTERN_ENGINE
|
||||||
|
;
|
||||||
|
|
||||||
//#if EFI_PROD_CODE
|
//#if EFI_PROD_CODE
|
||||||
//static THD_WORKING_AREA(aeThreadStack, UTILITY_THREAD_STACK_SIZE);
|
//static THD_WORKING_AREA(aeThreadStack, UTILITY_THREAD_STACK_SIZE);
|
||||||
|
@ -32,23 +33,50 @@ void AccelEnrichmemnt::updateDiffEnrichment(engine_configuration_s *engineConfig
|
||||||
* (engineConfiguration->diffLoadEnrichmentCoef);
|
* (engineConfiguration->diffLoadEnrichmentCoef);
|
||||||
}
|
}
|
||||||
|
|
||||||
float AccelEnrichmemnt::getDiffEnrichment() {
|
//float AccelEnrichmemnt::getDiffEnrichment() {
|
||||||
return diffEnrichment;
|
// return diffEnrichment;
|
||||||
|
//}
|
||||||
|
|
||||||
|
float AccelEnrichmemnt::getEnrichment(DECLARE_ENGINE_PARAMETER_F) {
|
||||||
|
float d = delta;
|
||||||
|
if (d > engineConfiguration->accelEnrichmentThreshold) {
|
||||||
|
return d * engineConfiguration->accelEnrichmentMultiplier;
|
||||||
|
}
|
||||||
|
if (d < engineConfiguration->deaccelEnrichmentThreshold) {
|
||||||
|
return d * engineConfiguration->deaccelEnrichmentMultiplier;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AccelEnrichmemnt::reset() {
|
||||||
|
maxDelta = 0;
|
||||||
|
minDelta = 0;
|
||||||
|
delta = 0;
|
||||||
|
currentEngineLoad = NAN;
|
||||||
}
|
}
|
||||||
|
|
||||||
void AccelEnrichmemnt::onEngineCycle(DECLARE_ENGINE_PARAMETER_F) {
|
void AccelEnrichmemnt::onEngineCycle(DECLARE_ENGINE_PARAMETER_F) {
|
||||||
|
float currentEngineLoad = getEngineLoadT(PASS_ENGINE_PARAMETER_F);
|
||||||
|
|
||||||
|
if (!cisnan(this->currentEngineLoad)) {
|
||||||
|
delta = currentEngineLoad - this->currentEngineLoad;
|
||||||
|
maxDelta = maxF(maxDelta, delta);
|
||||||
|
minDelta = minF(minDelta, delta);
|
||||||
|
}
|
||||||
|
|
||||||
|
this->currentEngineLoad = currentEngineLoad;
|
||||||
}
|
}
|
||||||
|
|
||||||
AccelEnrichmemnt::AccelEnrichmemnt() {
|
AccelEnrichmemnt::AccelEnrichmemnt() {
|
||||||
|
reset();
|
||||||
for (int i = 0; i < 4; i++)
|
for (int i = 0; i < 4; i++)
|
||||||
engineLoadD[i] = 0;
|
engineLoadD[i] = 0;
|
||||||
diffEnrichment = 0;
|
diffEnrichment = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
float getAccelEnrichment(void) {
|
//float getAccelEnrichment(void) {
|
||||||
return instance.getDiffEnrichment();
|
// return instance.getDiffEnrichment();
|
||||||
}
|
//}
|
||||||
|
|
||||||
//#if EFI_PROD_CODE
|
//#if EFI_PROD_CODE
|
||||||
//
|
//
|
||||||
|
|
|
@ -17,9 +17,15 @@ public:
|
||||||
AccelEnrichmemnt();
|
AccelEnrichmemnt();
|
||||||
void updateDiffEnrichment(engine_configuration_s *engineConfiguration,
|
void updateDiffEnrichment(engine_configuration_s *engineConfiguration,
|
||||||
float engineLoad);
|
float engineLoad);
|
||||||
float getDiffEnrichment(void);
|
float getEnrichment(DECLARE_ENGINE_PARAMETER_F);
|
||||||
|
// float getDiffEnrichment(void);
|
||||||
|
|
||||||
void onEngineCycle(DECLARE_ENGINE_PARAMETER_F);
|
void onEngineCycle(DECLARE_ENGINE_PARAMETER_F);
|
||||||
|
void reset();
|
||||||
|
float currentEngineLoad;
|
||||||
|
float maxDelta;
|
||||||
|
float minDelta;
|
||||||
|
float delta;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
float engineLoadD[4];
|
float engineLoadD[4];
|
||||||
|
|
|
@ -377,6 +377,12 @@ static void setFloat(const char *offsetStr, const char *valueStr) {
|
||||||
getFloat(offset);
|
getFloat(offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if EFI_PROD_CODE
|
||||||
|
static void resetAccel(void) {
|
||||||
|
engine->accelEnrichment.reset();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void initEngineContoller(Logging *sharedLogger, Engine *engine) {
|
void initEngineContoller(Logging *sharedLogger, Engine *engine) {
|
||||||
if (hasFirmwareError()) {
|
if (hasFirmwareError()) {
|
||||||
return;
|
return;
|
||||||
|
@ -474,6 +480,9 @@ void initEngineContoller(Logging *sharedLogger, Engine *engine) {
|
||||||
addConsoleActionI("get_float", getFloat);
|
addConsoleActionI("get_float", getFloat);
|
||||||
addConsoleActionI("get_int", getInt);
|
addConsoleActionI("get_int", getInt);
|
||||||
addConsoleActionI("get_short", getShort);
|
addConsoleActionI("get_short", getShort);
|
||||||
|
#if EFI_PROD_CODE
|
||||||
|
addConsoleAction("reset_accel", resetAccel);
|
||||||
|
#endif
|
||||||
|
|
||||||
#if (EFI_PROD_CODE && EFI_FSIO) || defined(__DOXYGEN__)
|
#if (EFI_PROD_CODE && EFI_FSIO) || defined(__DOXYGEN__)
|
||||||
initFsioImpl(sharedLogger, engine);
|
initFsioImpl(sharedLogger, engine);
|
||||||
|
|
|
@ -85,7 +85,7 @@ float getSpeedDensityFuel(Engine *engine, int rpm) {
|
||||||
float coolantC = engine->engineState.clt;
|
float coolantC = engine->engineState.clt;
|
||||||
float intakeC = engine->engineState.iat;
|
float intakeC = engine->engineState.iat;
|
||||||
float tChargeK = convertCelsiusToKelvin(getTCharge(rpm, tps, coolantC, intakeC));
|
float tChargeK = convertCelsiusToKelvin(getTCharge(rpm, tps, coolantC, intakeC));
|
||||||
float map = getMap();
|
float map = getMap() + engine->accelEnrichment.getEnrichment(PASS_ENGINE_PARAMETER_F);
|
||||||
float VE = veMap.getValue(map, rpm);
|
float VE = veMap.getValue(map, rpm);
|
||||||
float AFR = afrMap.getValue(map, rpm);
|
float AFR = afrMap.getValue(map, rpm);
|
||||||
|
|
||||||
|
|
|
@ -345,6 +345,7 @@ void mainTriggerCallback(trigger_event_e ckpSignalType, uint32_t eventIndex DECL
|
||||||
}
|
}
|
||||||
|
|
||||||
if (eventIndex == 0) {
|
if (eventIndex == 0) {
|
||||||
|
engine->accelEnrichment.onEngineCycle(PASS_ENGINE_PARAMETER_F);
|
||||||
engine->m.beforeFuelCalc = GET_TIMESTAMP();
|
engine->m.beforeFuelCalc = GET_TIMESTAMP();
|
||||||
ENGINE(fuelMs) = getFuelMs(rpm PASS_ENGINE_PARAMETER) * engineConfiguration->globalFuelCorrection;
|
ENGINE(fuelMs) = getFuelMs(rpm PASS_ENGINE_PARAMETER) * engineConfiguration->globalFuelCorrection;
|
||||||
engine->m.fuelCalcTime = GET_TIMESTAMP() - engine->m.beforeFuelCalc;
|
engine->m.fuelCalcTime = GET_TIMESTAMP() - engine->m.beforeFuelCalc;
|
||||||
|
|
|
@ -590,6 +590,8 @@ fileVersion = { 20150216 }
|
||||||
rpmAcceleration = scalar, F32, 104, "dRpm", 1, 0
|
rpmAcceleration = scalar, F32, 104, "dRpm", 1, 0
|
||||||
massAirFlowValue= scalar, F32, 108, "Kg/h", 1, 0
|
massAirFlowValue= scalar, F32, 108, "Kg/h", 1, 0
|
||||||
veValue = scalar, F32, 112, "ratio", 1, 0
|
veValue = scalar, F32, 112, "ratio", 1, 0
|
||||||
|
maxDelta = scalar, F32, 116, "ratio", 1, 0
|
||||||
|
minDelta = scalar, F32, 120, "ratio", 1, 0
|
||||||
egoCorrection = { 1 }
|
egoCorrection = { 1 }
|
||||||
time = { timeNow }
|
time = { timeNow }
|
||||||
; engineLoad = { algorithm == 0 ? MAF : TPS }
|
; engineLoad = { algorithm == 0 ? MAF : TPS }
|
||||||
|
@ -762,6 +764,8 @@ fileVersion = { 20150216 }
|
||||||
rpmAccelerationGa = rpmAcceleration, "rpm d", "dRpm", 0, 3, 0, 1, 3, 4, 1, 1
|
rpmAccelerationGa = rpmAcceleration, "rpm d", "dRpm", 0, 3, 0, 1, 3, 4, 1, 1
|
||||||
massAirFlowValueGa = massAirFlowValue,"Air Flow", "kg/hr", 0, 50, -999, -999, 999, 999, 1, 1
|
massAirFlowValueGa = massAirFlowValue,"Air Flow", "kg/hr", 0, 50, -999, -999, 999, 999, 1, 1
|
||||||
veValueGauge = veValue, "%", "", 0, 120, 10, 10, 100, 100, 1, 1
|
veValueGauge = veValue, "%", "", 0, 120, 10, 10, 100, 100, 1, 1
|
||||||
|
maxDeltaGauge = maxDelta, "%", "", 0, 120, 10, 10, 100, 100, 1, 1
|
||||||
|
minDeltaGauge = minDelta, "%", "", 0, 120, 10, 10, 100, 100, 1, 1
|
||||||
|
|
||||||
[FrontPage]
|
[FrontPage]
|
||||||
; Gauges are numbered left to right, top to bottom.
|
; Gauges are numbered left to right, top to bottom.
|
||||||
|
@ -824,6 +828,8 @@ fileVersion = { 20150216 }
|
||||||
entry = rpmAcceleration, "dRPM", float, "%.3f"
|
entry = rpmAcceleration, "dRPM", float, "%.3f"
|
||||||
entry = massAirFlowValue,"Mass", float, "%.3f"
|
entry = massAirFlowValue,"Mass", float, "%.3f"
|
||||||
entry = veValue, "ratio", float, "%.3f"
|
entry = veValue, "ratio", float, "%.3f"
|
||||||
|
entry = maxDelta, "maxDelta", float, "%.3f"
|
||||||
|
entry = minDelta, "minDelta", float, "%.3f"
|
||||||
|
|
||||||
|
|
||||||
; tpsADC = U16, "ADC",
|
; tpsADC = U16, "ADC",
|
||||||
|
|
Loading…
Reference in New Issue