auto-sync

This commit is contained in:
rusEfi 2015-02-19 21:05:01 -06:00
parent efaff8fc1c
commit 3a9a53f606
7 changed files with 60 additions and 8 deletions

View File

@ -554,6 +554,8 @@ void updateTunerStudioState(Engine *engine, TunerStudioOutputChannels *tsOutputC
tsOutputChannels->manifold_air_pressure = getMap();
tsOutputChannels->engineLoad = engineLoad;
tsOutputChannels->rpmAcceleration = engine->rpmCalculator.getRpmAcceleration();
tsOutputChannels->maxDelta = engine->accelEnrichment.maxDelta;
tsOutputChannels->minDelta = engine->accelEnrichment.minDelta;
tsOutputChannels->checkEngine = hasErrorCodes();
#if EFI_PROD_CODE

View File

@ -14,7 +14,8 @@
#include "engine_math.h"
#include "signal_executor.h"
EXTERN_ENGINE;
EXTERN_ENGINE
;
//#if EFI_PROD_CODE
//static THD_WORKING_AREA(aeThreadStack, UTILITY_THREAD_STACK_SIZE);
@ -32,23 +33,50 @@ void AccelEnrichmemnt::updateDiffEnrichment(engine_configuration_s *engineConfig
* (engineConfiguration->diffLoadEnrichmentCoef);
}
float AccelEnrichmemnt::getDiffEnrichment() {
return diffEnrichment;
//float AccelEnrichmemnt::getDiffEnrichment() {
// 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) {
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() {
reset();
for (int i = 0; i < 4; i++)
engineLoadD[i] = 0;
diffEnrichment = 0;
}
float getAccelEnrichment(void) {
return instance.getDiffEnrichment();
}
//float getAccelEnrichment(void) {
// return instance.getDiffEnrichment();
//}
//#if EFI_PROD_CODE
//

View File

@ -17,9 +17,15 @@ public:
AccelEnrichmemnt();
void updateDiffEnrichment(engine_configuration_s *engineConfiguration,
float engineLoad);
float getDiffEnrichment(void);
float getEnrichment(DECLARE_ENGINE_PARAMETER_F);
// float getDiffEnrichment(void);
void onEngineCycle(DECLARE_ENGINE_PARAMETER_F);
void reset();
float currentEngineLoad;
float maxDelta;
float minDelta;
float delta;
private:
float engineLoadD[4];

View File

@ -377,6 +377,12 @@ static void setFloat(const char *offsetStr, const char *valueStr) {
getFloat(offset);
}
#if EFI_PROD_CODE
static void resetAccel(void) {
engine->accelEnrichment.reset();
}
#endif
void initEngineContoller(Logging *sharedLogger, Engine *engine) {
if (hasFirmwareError()) {
return;
@ -474,6 +480,9 @@ void initEngineContoller(Logging *sharedLogger, Engine *engine) {
addConsoleActionI("get_float", getFloat);
addConsoleActionI("get_int", getInt);
addConsoleActionI("get_short", getShort);
#if EFI_PROD_CODE
addConsoleAction("reset_accel", resetAccel);
#endif
#if (EFI_PROD_CODE && EFI_FSIO) || defined(__DOXYGEN__)
initFsioImpl(sharedLogger, engine);

View File

@ -85,7 +85,7 @@ float getSpeedDensityFuel(Engine *engine, int rpm) {
float coolantC = engine->engineState.clt;
float intakeC = engine->engineState.iat;
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 AFR = afrMap.getValue(map, rpm);

View File

@ -345,6 +345,7 @@ void mainTriggerCallback(trigger_event_e ckpSignalType, uint32_t eventIndex DECL
}
if (eventIndex == 0) {
engine->accelEnrichment.onEngineCycle(PASS_ENGINE_PARAMETER_F);
engine->m.beforeFuelCalc = GET_TIMESTAMP();
ENGINE(fuelMs) = getFuelMs(rpm PASS_ENGINE_PARAMETER) * engineConfiguration->globalFuelCorrection;
engine->m.fuelCalcTime = GET_TIMESTAMP() - engine->m.beforeFuelCalc;

View File

@ -590,6 +590,8 @@ fileVersion = { 20150216 }
rpmAcceleration = scalar, F32, 104, "dRpm", 1, 0
massAirFlowValue= scalar, F32, 108, "Kg/h", 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 }
time = { timeNow }
; engineLoad = { algorithm == 0 ? MAF : TPS }
@ -762,6 +764,8 @@ fileVersion = { 20150216 }
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
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]
; Gauges are numbered left to right, top to bottom.
@ -824,6 +828,8 @@ fileVersion = { 20150216 }
entry = rpmAcceleration, "dRPM", float, "%.3f"
entry = massAirFlowValue,"Mass", float, "%.3f"
entry = veValue, "ratio", float, "%.3f"
entry = maxDelta, "maxDelta", float, "%.3f"
entry = minDelta, "minDelta", float, "%.3f"
; tpsADC = U16, "ADC",