diff --git a/firmware/console/status_loop.cpp b/firmware/console/status_loop.cpp index a944f974b2..4608254f74 100644 --- a/firmware/console/status_loop.cpp +++ b/firmware/console/status_loop.cpp @@ -517,11 +517,11 @@ static void updateThrottles() { static void updateLambda() { float lambdaValue = Sensor::getOrZero(SensorType::Lambda1); engine->outputChannels.lambdaValue = lambdaValue; - engine->outputChannels.AFRValue = lambdaValue * engine->engineState.stoichiometricRatio; + engine->outputChannels.AFRValue = lambdaValue * engine->fuelComputer->stoichiometricRatio; float lambda2Value = Sensor::getOrZero(SensorType::Lambda2); engine->outputChannels.lambdaValue2 = lambda2Value; - engine->outputChannels.AFRValue2 = lambda2Value * engine->engineState.stoichiometricRatio; + engine->outputChannels.AFRValue2 = lambda2Value * engine->fuelComputer->stoichiometricRatio; } static void updateFuelSensors() { @@ -635,7 +635,7 @@ static void updateFuelLoads() { engine->outputChannels.fuelingLoad = getFuelingLoad(); engine->outputChannels.ignitionLoad = getIgnitionLoad(); engine->outputChannels.veTableYAxis = engine->engineState.currentVeLoad; - engine->outputChannels.afrTableYAxis = engine->engineState.currentAfrLoad; + engine->outputChannels.afrTableYAxis = engine->fuelComputer->currentAfrLoad; } static void updateFuelResults() { @@ -660,8 +660,7 @@ static void updateFuelInfo() { engine->outputChannels.injectionOffset = engine->engineState.injectionOffset; engine->outputChannels.veValue = engine->engineState.currentVe; - engine->outputChannels.currentTargetAfr = engine->engineState.targetAFR; - engine->outputChannels.targetLambda = engine->engineState.targetLambda; + engine->outputChannels.currentTargetAfr = engine->fuelComputer->targetAFR; engine->outputChannels.crankingFuelMs = engine->engineState.cranking.fuel; } diff --git a/firmware/controllers/algo/engine_state.h b/firmware/controllers/algo/engine_state.h index 31a9c32578..ed6c6fdbcd 100644 --- a/firmware/controllers/algo/engine_state.h +++ b/firmware/controllers/algo/engine_state.h @@ -51,11 +51,6 @@ public: float currentVe = 0; float currentVeLoad = 0; - // fuel computer - float currentAfrLoad = 0; - float targetLambda = 0.0f; - float stoichiometricRatio = 0.0f; - // fuel computer end float fuelingLoad = 0; float ignitionLoad = 0; diff --git a/firmware/controllers/algo/engine_state.txt b/firmware/controllers/algo/engine_state.txt index 0f27d90ae2..fadfe32a67 100644 --- a/firmware/controllers/algo/engine_state.txt +++ b/firmware/controllers/algo/engine_state.txt @@ -34,10 +34,6 @@ end_struct speed_density_s sd; - - float targetAFR - - float engineCycleDurationMs; diff --git a/firmware/controllers/algo/fuel/fuel_computer.cpp b/firmware/controllers/algo/fuel/fuel_computer.cpp index b8d23f92fb..c5e11a5420 100644 --- a/firmware/controllers/algo/fuel/fuel_computer.cpp +++ b/firmware/controllers/algo/fuel/fuel_computer.cpp @@ -9,10 +9,10 @@ mass_t FuelComputerBase::getCycleFuel(mass_t airmass, int rpm, float load) { float lambda = getTargetLambda(rpm, load); float afr = stoich * lambda; - engine->engineState.currentAfrLoad = load; - engine->engineState.targetLambda = lambda; - engine->engineState.targetAFR = afr; - engine->engineState.stoichiometricRatio = stoich; + currentAfrLoad = load; + targetLambda = lambda; + targetAFR = afr; + stoichiometricRatio = stoich; return airmass / afr; } diff --git a/firmware/controllers/algo/fuel/fuel_computer.txt b/firmware/controllers/algo/fuel/fuel_computer.txt index b73f6f27a4..67645986de 100644 --- a/firmware/controllers/algo/fuel/fuel_computer.txt +++ b/firmware/controllers/algo/fuel/fuel_computer.txt @@ -3,6 +3,6 @@ struct_no_prefix fuel_computer_s float currentAfrLoad float targetLambda float stoichiometricRatio - float targetAFR_t + float targetAFR end_struct \ No newline at end of file diff --git a/firmware/controllers/can/can_dash.cpp b/firmware/controllers/can/can_dash.cpp index 8ac14ed2db..5c1153fe48 100644 --- a/firmware/controllers/can/can_dash.cpp +++ b/firmware/controllers/can/can_dash.cpp @@ -1239,8 +1239,9 @@ static void populateFrame(Aim5f7& msg) { // We don't handle wheel speed, just set to 0? msg.LambdaErr1 = 0; msg.LambdaErr2 = 0; - msg.LambdaTarget1 = engine->engineState.targetLambda; - msg.LambdaTarget2 = engine->engineState.targetLambda; + // both targets are the same for now + msg.LambdaTarget1 = engine->fuelComputer->targetLambda; + msg.LambdaTarget2 = engine->fuelComputer->targetLambda; } void canDashboardAim(CanCycle cycle) { diff --git a/firmware/controllers/math/closed_loop_fuel_cell.cpp b/firmware/controllers/math/closed_loop_fuel_cell.cpp index cd7febd7d7..9a7b79b165 100644 --- a/firmware/controllers/math/closed_loop_fuel_cell.cpp +++ b/firmware/controllers/math/closed_loop_fuel_cell.cpp @@ -53,7 +53,7 @@ float ClosedLoopFuelCellImpl::getLambdaError() const { return 0; } - return lambda.Value - engine->engineState.targetLambda; + return lambda.Value - engine->fuelComputer->targetLambda; } #define MAX_ADJ (0.25f) diff --git a/unit_tests/tests/test_engine_math.cpp b/unit_tests/tests/test_engine_math.cpp index ad0cbc7424..98fd867acd 100644 --- a/unit_tests/tests/test_engine_math.cpp +++ b/unit_tests/tests/test_engine_math.cpp @@ -15,8 +15,8 @@ TEST(misc, testIgnitionPlanning) { printf("*************************************************** testIgnitionPlanning\r\n"); EngineTestHelper eth(FORD_ESCORT_GT); - eth.engine.periodicFastCallback(); - assertEqualsM("testIgnitionPlanning_AFR", 13.5, eth.engine.engineState.targetAFR); + engine->periodicFastCallback(); + assertEqualsM("testIgnitionPlanning_AFR", 13.5, engine->fuelComputer->targetAFR); ASSERT_EQ(IM_BATCH, engineConfiguration->injectionMode); }