diff --git a/firmware/console/binary/output_channels.txt b/firmware/console/binary/output_channels.txt index 1aa039338b..56bd77503f 100644 --- a/firmware/console/binary/output_channels.txt +++ b/firmware/console/binary/output_channels.txt @@ -95,10 +95,10 @@ uint16_t rpmAcceleration;dRPM;"RPM/s",1, 0, 0, 5, 2 uint16_t engineMakeCodeNameCrc16;@@GAUGE_NAME_ENGINE_CRC16@@;"crc16",1, 0, 0, 0, 0 ! Wall model AE uint16_t autoscale wallFuelAmount;@@GAUGE_NAME_FUEL_WALL_AMOUNT@@;"mg",{1/@@PACK_MULT_FUEL_MASS@@}, 0, 0, 0, 3 - int16_t autoscale wallFuelCorrection;@@GAUGE_NAME_FUEL_WALL_CORRECTION@@;"mg",{1/@@PACK_MULT_FUEL_MASS@@}, 0, 0, 0, 3 + int16_t autoscale wallFuelCorrectionValue;@@GAUGE_NAME_FUEL_WALL_CORRECTION@@;"mg",{1/@@PACK_MULT_FUEL_MASS@@}, 0, 0, 0, 3 uint16_t revolutionCounterSinceStart;;"",1, 0, 0, 0, 0 - int16_t autoscale deltaTps;@@GAUGE_NAME_FUEL_TPS_ROC@@;"ratio",{1/@@PACK_MULT_PERCENT@@}, 0, 0, 0, 0 + int16_t autoscale deltaTpsValue;@@GAUGE_NAME_FUEL_TPS_ROC@@;"ratio",{1/@@PACK_MULT_PERCENT@@}, 0, 0, 0, 0 uint16_t canReadCounter;;"",1, 0, 0, 0, 0 int16_t autoscale tpsAccelFuel;@@GAUGE_NAME_FUEL_TPS_EXTRA@@;"ms",{1/@@PACK_MULT_MS@@}, 0, 0, 0, 3 diff --git a/firmware/console/status_loop.cpp b/firmware/console/status_loop.cpp index e0aae6fe74..3468feeef4 100644 --- a/firmware/console/status_loop.cpp +++ b/firmware/console/status_loop.cpp @@ -604,7 +604,7 @@ static void updateFuelInfo() { engine->outputChannels.veValue = engine->engineState.currentVe; engine->outputChannels.currentTargetAfr = engine->fuelComputer->targetAFR; - engine->outputChannels.crankingFuelMs = engine->engineState.cranking.fuel; + engine->outputChannels.crankingFuelMs = engine->engineState.crankingFuel.fuel; } static void updateIgnition(int rpm) { diff --git a/firmware/controllers/algo/engine_state.txt b/firmware/controllers/algo/engine_state.txt index 9bc9fa0211..063beaea46 100644 --- a/firmware/controllers/algo/engine_state.txt +++ b/firmware/controllers/algo/engine_state.txt @@ -56,7 +56,7 @@ floatms_t fuel;Fuel: Actual injection\nduration based on all coefficients. end_struct ! actually define a member of 'cranking_s' type -cranking_fuel_s cranking +cranking_fuel_s crankingFuel @@ -91,8 +91,8 @@ running_fuel_s running bit startStopState uint32_t startStopStateToggleCounter - float egt1 - float egt2 + float egtValue1 + float egtValue2 int16_t desiredRpmLimit;User-defined RPM hard limit;"rpm", 1, 0, 0, 30000, 0 diff --git a/firmware/controllers/algo/fuel_math.cpp b/firmware/controllers/algo/fuel_math.cpp index 138f1cf8cb..8ce1bcefa7 100644 --- a/firmware/controllers/algo/fuel_math.cpp +++ b/firmware/controllers/algo/fuel_math.cpp @@ -54,7 +54,7 @@ float getCrankingFuel3( /** * Cranking fuel changes over time */ - engine->engineState.cranking.durationCoefficient = interpolate2d(revolutionCounterSinceStart, config->crankingCycleBins, + engine->engineState.crankingFuel.durationCoefficient = interpolate2d(revolutionCounterSinceStart, config->crankingCycleBins, config->crankingCycleCoef); /** diff --git a/java_tools/ConfigDefinition.jar b/java_tools/ConfigDefinition.jar index 34e2d03826..9e20a3e73e 100644 Binary files a/java_tools/ConfigDefinition.jar and b/java_tools/ConfigDefinition.jar differ diff --git a/java_tools/configuration_definition/src/main/java/com/rusefi/output/TsOutput.java b/java_tools/configuration_definition/src/main/java/com/rusefi/output/TsOutput.java index fba47bcde7..a41abb5ced 100644 --- a/java_tools/configuration_definition/src/main/java/com/rusefi/output/TsOutput.java +++ b/java_tools/configuration_definition/src/main/java/com/rusefi/output/TsOutput.java @@ -48,8 +48,11 @@ public class TsOutput { * in 'Constants' section we have conditional sections and this check is not smart enough to handle those right * A simple solution would be to allow only one variable per each conditional section - would be simpler not to check against previous field */ - if (!usedNames.add(nameWithPrefix) && !isConstantsSection) { - throw new IllegalStateException(nameWithPrefix + " already present"); + if (!usedNames.add(nameWithPrefix) + && !isConstantsSection + && !configField.getName().startsWith(ConfigStructure.ALIGNMENT_FILL_AT) + && !configField.getName().startsWith(ConfigStructure.UNUSED_ANYTHING_PREFIX)) { + throw new IllegalStateException(nameWithPrefix + " already present: " + configField); } if (configField.getName().startsWith(ConfigStructure.ALIGNMENT_FILL_AT)) { diff --git a/java_tools/configuration_definition/src/test/java/com/rusefi/test/OutputsTest.java b/java_tools/configuration_definition/src/test/java/com/rusefi/test/OutputsTest.java index 7fd2632531..2129ece5a6 100644 --- a/java_tools/configuration_definition/src/test/java/com/rusefi/test/OutputsTest.java +++ b/java_tools/configuration_definition/src/test/java/com/rusefi/test/OutputsTest.java @@ -214,4 +214,16 @@ public class OutputsTest { "; total TS size = 1\n"; assertEquals(expectedLegacy, runOriginalImplementation(test).getContent()); } + + @Test + public void nameNotDuplicate() { + String test = "struct total\n" + + "float afr_type;PID dTime;\"ms\", 1, 0, 0, 3000, 0\n" + + "struct afr_type\n" + + "float afr_type2;PID dTime;\"ms\", 1, 0, 0, 3000, 0\n" + + "end_struct\n" + + "end_struct\n"; + + runOriginalImplementation(test); + } }