From fc9862973c2d01fa61ee347b5d71b157e473b5e6 Mon Sep 17 00:00:00 2001 From: rusEfi Date: Mon, 15 Feb 2016 18:02:03 -0500 Subject: [PATCH] auto-sync --- firmware/controllers/algo/engine.cpp | 5 +++-- firmware/controllers/idle_thread.cpp | 7 ++++--- firmware/tunerstudio/rusefi.ini | 16 ++++++++++++---- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/firmware/controllers/algo/engine.cpp b/firmware/controllers/algo/engine.cpp index b68110f86f..9072b025f1 100644 --- a/firmware/controllers/algo/engine.cpp +++ b/firmware/controllers/algo/engine.cpp @@ -150,15 +150,16 @@ void EngineState::periodicFastCallback(DECLARE_ENGINE_PARAMETER_F) { dwellAngle = sparkDwell / getOneDegreeTimeMs(rpm); iatFuelCorrection = getIatCorrection(iat PASS_ENGINE_PARAMETER); - if (boardConfiguration->useWarmupPidAfr && clt < 80) { + if (boardConfiguration->useWarmupPidAfr && clt < engineConfiguration->warmupAfrThreshold) { if (rpm < 200) { cltFuelCorrection = 1; warmupAfrPid.reset(); } else { - cltFuelCorrection = warmupAfrPid.getValue(13, getAfr(PASS_ENGINE_PARAMETER_F), 1); + cltFuelCorrection = warmupAfrPid.getValue(warmupTargetAfr, getAfr(PASS_ENGINE_PARAMETER_F), 1); } #if ! EFI_UNIT_TEST || defined(__DOXYGEN__) if (engineConfiguration->debugMode == WARMUP_ENRICH) { + tsOutputChannels.debugFloatField1 = warmupTargetAfr; warmupAfrPid.postState(&tsOutputChannels); } #endif diff --git a/firmware/controllers/idle_thread.cpp b/firmware/controllers/idle_thread.cpp index a0672e9512..55d6198ce2 100644 --- a/firmware/controllers/idle_thread.cpp +++ b/firmware/controllers/idle_thread.cpp @@ -108,14 +108,15 @@ static void manualIdleController(int positionPercent) { cltCorrectedPosition = maxF(cltCorrectedPosition, 0.01); cltCorrectedPosition = minF(cltCorrectedPosition, 99.9); + if (engineConfiguration->debugMode == IDLE) { + tsOutputChannels.debugFloatField1 = actualIdlePosition; + } + if (absF(cltCorrectedPosition - actualIdlePosition) < 1) { return; // value is pretty close, let's leave the poor valve alone } actualIdlePosition = cltCorrectedPosition; - if (engineConfiguration->debugMode == IDLE) { - tsOutputChannels.debugFloatField1 = actualIdlePosition; - } if (boardConfiguration->useStepperIdle) { iacMotor.setTargetPosition(cltCorrectedPosition / 100 * engineConfiguration->idleStepperTotalSteps); diff --git a/firmware/tunerstudio/rusefi.ini b/firmware/tunerstudio/rusefi.ini index e521083aac..811ba8c15c 100644 --- a/firmware/tunerstudio/rusefi.ini +++ b/firmware/tunerstudio/rusefi.ini @@ -816,7 +816,7 @@ fileVersion = { 20160122 } yBins = crankingCycleCoef - curve = cltIdleCurve, "CLT manual idle correction" + curve = cltIdleCurve, "CLT-based manual IAC correction" columnLabel = "Coolant", "Correction" xAxis = -40, 120, 10 yAxis = 0, 50, 100 @@ -824,6 +824,13 @@ fileVersion = { 20160122 } yBins = cltIdleCorr gauge = CLTGauge + curve = warmupTargetAfrCurve, "CLT-based target AFR" + columnLabel = "Coolant", "Correction" + xAxis = -40, 120, 10 + yAxis = 0, 50, 100 + xBins = warmupTargetAfrBins, coolant + yBins = warmupTargetAfr + gauge = CLTGauge [TableEditor] ; table_id, map3d_id, "title", page @@ -1101,15 +1108,16 @@ fileVersion = { 20160122 } subMenu = crankingTpsCurve, "Cranking TPS correction" subMenu = crankingDurationCurve, "Cranking Duration correction" subMenu = std_separator - subMenu = cltIdleCurve, "Warmup Coolant manual correction" - subMenu = warmupFuelDialog, "Warmup Coolant auto correction" + subMenu = cltFuelCorrCurve, "Warmup AFR manual correction" + subMenu = cltIdleCurve, "Warmup IAC manual correction" + subMenu = warmupFuelDialog, "Warmup AFR auto correction" + subMenu = warmupTargetAfrCurve, "Warmup AFR auto correction target" subMenu = std_separator subMenu = fuelTableTbl, "Fuel Table", 0, {algorithm != 3} subMenu = veTableTbl, "VE Table", 0, {algorithm == 3} subMenu = afrTableTbl, "Targe AFR Table", 0, {algorithm == 3} subMenu = AccelEnrich, "Accel/Decel Enrichment/Enleanment" subMenu = iatFuelCorrCurve, "Intake air temp fuel correction" - subMenu = cltFuelCorrCurve, "Coolant temp fuel correction" subMenu = injPhaseTableTbl, "Injection Phase" subMenu = std_separator subMenu = ignitionTableTbl, "Ignition Table"