diff --git a/firmware/controllers/trigger/trigger_central.cpp b/firmware/controllers/trigger/trigger_central.cpp index c3271f7b9e..55f625233a 100644 --- a/firmware/controllers/trigger/trigger_central.cpp +++ b/firmware/controllers/trigger/trigger_central.cpp @@ -624,7 +624,7 @@ void TriggerCentral::decodeMapCam(efitick_t timestamp, float currentPhase) { if (diff > 0) { mapVvt_map_peak++; - int revolutionCounter = engine->triggerCentral.triggerState.getTotalRevolutionCounter(); + int revolutionCounter = engine->triggerCentral.triggerState.getCrankSynchronizationCounter(); mapVvt_MAP_AT_CYCLE_COUNT = revolutionCounter - prevChangeAtCycle; prevChangeAtCycle = revolutionCounter; @@ -695,7 +695,7 @@ void TriggerCentral::handleShaftSignal(trigger_event_e signal, efitick_t timesta * cycle into a four stroke, 720 degrees cycle. */ int crankDivider = getCrankDivider(triggerShape.getWheelOperationMode()); - int crankInternalIndex = triggerState.getTotalRevolutionCounter() % crankDivider; + int crankInternalIndex = triggerState.getCrankSynchronizationCounter() % crankDivider; int triggerIndexForListeners = decodeResult.Value.CurrentIndex + (crankInternalIndex * triggerShape.getSize()); reportEventToWaveChart(signal, triggerIndexForListeners); @@ -752,7 +752,7 @@ void TriggerCentral::handleShaftSignal(trigger_event_e signal, efitick_t timesta #if EFI_CDM_INTEGRATION if (trgEventIndex == 0 && isBrainPinValid(engineConfiguration->cdmInputPin)) { - int cdmKnockValue = getCurrentCdmValue(engine->triggerCentral.triggerState.getTotalRevolutionCounter()); + int cdmKnockValue = getCurrentCdmValue(engine->triggerCentral.triggerState.getCrankSynchronizationCounter()); engine->knockLogic(cdmKnockValue); } #endif /* EFI_CDM_INTEGRATION */ @@ -828,7 +828,7 @@ void triggerInfo(void) { boolToString(engine->triggerCentral.isTriggerDecoderError()), engine->triggerCentral.triggerState.totalTriggerErrorCounter, engine->triggerCentral.triggerState.orderingErrorCounter, - engine->triggerCentral.triggerState.getTotalRevolutionCounter(), + engine->triggerCentral.triggerState.getCrankSynchronizationCounter(), boolToString(engine->directSelfStimulation)); if (TRIGGER_WAVEFORM(isSynchronizationNeeded)) { diff --git a/firmware/controllers/trigger/trigger_decoder.cpp b/firmware/controllers/trigger/trigger_decoder.cpp index 3122241473..9aae702d59 100644 --- a/firmware/controllers/trigger/trigger_decoder.cpp +++ b/firmware/controllers/trigger/trigger_decoder.cpp @@ -67,7 +67,7 @@ void TriggerDecoderBase::resetTriggerState() { memset(toothDurations, 0, sizeof(toothDurations)); - totalRevolutionCounter = 0; + crankSynchronizationCounter = 0; totalTriggerErrorCounter = 0; orderingErrorCounter = 0; m_timeSinceDecodeError.init(); @@ -205,8 +205,8 @@ int64_t TriggerDecoderBase::getTotalEventCounter() const { return totalEventCountBase + currentCycle.current_index; } -int TriggerDecoderBase::getTotalRevolutionCounter() const { - return totalRevolutionCounter; +int TriggerDecoderBase::getCrankSynchronizationCounter() const { + return crankSynchronizationCounter; } void PrimaryTriggerDecoder::resetTriggerState() { @@ -369,8 +369,8 @@ int TriggerDecoderBase::getCurrentIndex() const { } void TriggerCentral::validateCamVvtCounters() { - // micro-optimized 'totalRevolutionCounter % 256' - int camVvtValidationIndex = triggerState.getTotalRevolutionCounter() & 0xFF; + // micro-optimized 'crankSynchronizationCounter % 256' + int camVvtValidationIndex = triggerState.getCrankSynchronizationCounter() & 0xFF; if (camVvtValidationIndex == 0) { vvtCamCounter = 0; } else if (camVvtValidationIndex == 0xFE && vvtCamCounter < 60) { @@ -382,7 +382,7 @@ void TriggerCentral::validateCamVvtCounters() { angle_t PrimaryTriggerDecoder::syncEnginePhase(int divider, int remainder, angle_t engineCycle) { efiAssert(OBD_PCM_Processor_Fault, remainder < divider, "syncEnginePhase", false); angle_t totalShift = 0; - while (getTotalRevolutionCounter() % divider != remainder) { + while (getCrankSynchronizationCounter() % divider != remainder) { /** * we are here if we've detected the cam sensor within the wrong crank phase * let's increase the trigger event counter, that would adjust the state of @@ -407,7 +407,7 @@ angle_t PrimaryTriggerDecoder::syncEnginePhase(int divider, int remainder, angle } void TriggerDecoderBase::incrementShaftSynchronizationCounter() { - totalRevolutionCounter++; + crankSynchronizationCounter++; } void PrimaryTriggerDecoder::onTriggerError() { @@ -469,7 +469,7 @@ void TriggerDecoderBase::onShaftSynchronization( incrementShaftSynchronizationCounter(); } else { // We have just synchronized, this is the zeroth revolution - totalRevolutionCounter = 0; + crankSynchronizationCounter = 0; } totalEventCountBase += triggerShape.getSize(); @@ -478,7 +478,7 @@ void TriggerDecoderBase::onShaftSynchronization( if (printTriggerDebug) { printf("onShaftSynchronization index=%d %d\r\n", currentCycle.current_index, - totalRevolutionCounter); + crankSynchronizationCounter); } #endif /* EFI_UNIT_TEST */ } @@ -833,7 +833,7 @@ uint32_t TriggerDecoderBase::findTriggerZeroEventIndex( } // Assert that we found the sync point on the very first revolution - efiAssert(CUSTOM_ERR_ASSERT, getTotalRevolutionCounter() == 0, "findZero_revCounter", EFI_ERROR_CODE); + efiAssert(CUSTOM_ERR_ASSERT, getCrankSynchronizationCounter() == 0, "findZero_revCounter", EFI_ERROR_CODE); #if EFI_UNIT_TEST if (printTriggerDebug) { diff --git a/firmware/controllers/trigger/trigger_decoder.h b/firmware/controllers/trigger/trigger_decoder.h index fb4c5f1f95..00422750ae 100644 --- a/firmware/controllers/trigger/trigger_decoder.h +++ b/firmware/controllers/trigger/trigger_decoder.h @@ -68,7 +68,7 @@ public: * current trigger processing index, between zero and #size */ int getCurrentIndex() const; - int getTotalRevolutionCounter() const; + int getCrankSynchronizationCounter() const; /** * this is important for crank-based virtual trigger and VVT magic */ diff --git a/firmware/controllers/trigger/trigger_simulator.cpp b/firmware/controllers/trigger/trigger_simulator.cpp index 1c4c21c70e..5b8248e226 100644 --- a/firmware/controllers/trigger/trigger_simulator.cpp +++ b/firmware/controllers/trigger/trigger_simulator.cpp @@ -106,7 +106,7 @@ void TriggerStimulatorHelper::assertSyncPosition( feedSimulatedEvent(triggerConfiguration, state, shape, i); } - int revolutionCounter = state.getTotalRevolutionCounter(); + int revolutionCounter = state.getCrankSynchronizationCounter(); if (revolutionCounter != TEST_REVOLUTIONS) { warning(CUSTOM_OBD_TRIGGER_WAVEFORM, "sync failed/wrong gap parameters trigger=%s revolutionCounter=%d", getTrigger_type_e(triggerConfiguration.TriggerType.type), diff --git a/firmware/controllers/trigger/trigger_state.txt b/firmware/controllers/trigger/trigger_state.txt index 457e6025e3..9691266745 100644 --- a/firmware/controllers/trigger/trigger_state.txt +++ b/firmware/controllers/trigger/trigger_state.txt @@ -1,5 +1,5 @@ struct_no_prefix trigger_state_s - uint32_t totalRevolutionCounter;Crank revolution counter + uint32_t crankSynchronizationCounter;Crank sync counter\nUsually matches crank revolutions float autoscale vvtSyncGapRatio;;"", 1, 0, -10000, 10000, 3 float autoscale vvtCurrentPosition;;"", 1, 0, -10000, 10000, 3 float autoscale triggerSyncGapRatio;@@GAUGE_NAME_TRG_GAP@@;"", 1, 0, -10000, 10000, 3 diff --git a/firmware/controllers/trigger/trigger_state_generated.h b/firmware/controllers/trigger/trigger_state_generated.h index 9a2ed12752..9d24ff4a1e 100644 --- a/firmware/controllers/trigger/trigger_state_generated.h +++ b/firmware/controllers/trigger/trigger_state_generated.h @@ -9,7 +9,7 @@ struct trigger_state_s { * Crank revolution counter * offset 0 */ - uint32_t totalRevolutionCounter = (uint32_t)0; + uint32_t crankSynchronizationCounter = (uint32_t)0; /** * offset 4 */ diff --git a/firmware/hw_layer/cdm_ion_sense.cpp b/firmware/hw_layer/cdm_ion_sense.cpp index 100fb78d4f..67ec408509 100644 --- a/firmware/hw_layer/cdm_ion_sense.cpp +++ b/firmware/hw_layer/cdm_ion_sense.cpp @@ -68,7 +68,7 @@ static void extIonCallback(void *arg) { UNUSED(arg); instance.totalCdmEvents++; - int currentRevolution = engine->triggerCentral.triggerState.getTotalRevolutionCounter(); + int currentRevolution = engine->triggerCentral.triggerState.getCrankSynchronizationCounter(); instance.onNewSignal(currentRevolution); } diff --git a/unit_tests/tests/trigger/test_cam_vvt_input.cpp b/unit_tests/tests/trigger/test_cam_vvt_input.cpp index fbcf066eb1..9de183b315 100644 --- a/unit_tests/tests/trigger/test_cam_vvt_input.cpp +++ b/unit_tests/tests/trigger/test_cam_vvt_input.cpp @@ -142,7 +142,7 @@ TEST(trigger, testNB2CamInput) { // need to be out of VVT sync to see VVT sync in action eth.fireRise(25 * 70 / 180); eth.fireRise(25 * 110 / 180); - ASSERT_EQ(totalRevolutionCountBeforeVvtSync, engine->triggerCentral.triggerState.getTotalRevolutionCounter()); + ASSERT_EQ(totalRevolutionCountBeforeVvtSync, engine->triggerCentral.triggerState.getCrankSynchronizationCounter()); ASSERT_TRUE((totalRevolutionCountBeforeVvtSync % SYMMETRICAL_CRANK_SENSOR_DIVIDER) != 0); eth.moveTimeForwardUs(MS2US(3)); // shifting VVT phase a few angles @@ -164,7 +164,7 @@ TEST(trigger, testNB2CamInput) { hwHandleVvtCamSignal(TV_RISE, getTimeNowNt(), 0); ASSERT_FLOAT_EQ(0, engine->triggerCentral.getVVTPosition(0, 0)); - ASSERT_EQ(totalRevolutionCountBeforeVvtSync, engine->triggerCentral.triggerState.getTotalRevolutionCounter()); + ASSERT_EQ(totalRevolutionCountBeforeVvtSync, engine->triggerCentral.triggerState.getCrankSynchronizationCounter()); // Third gap - long @@ -175,7 +175,7 @@ TEST(trigger, testNB2CamInput) { EXPECT_NEAR(290.5f, engine->triggerCentral.getVVTPosition(0, 0), EPS2D); // actually position based on VVT! - ASSERT_EQ(totalRevolutionCountBeforeVvtSync + 3, engine->triggerCentral.triggerState.getTotalRevolutionCounter()); + ASSERT_EQ(totalRevolutionCountBeforeVvtSync + 3, engine->triggerCentral.triggerState.getCrankSynchronizationCounter()); EXPECT_EQ(40, waveChart.getSize()); } diff --git a/unit_tests/tests/trigger/test_trigger_decoder_2.cpp b/unit_tests/tests/trigger/test_trigger_decoder_2.cpp index a816d2dc35..cd16bcc3fd 100644 --- a/unit_tests/tests/trigger/test_trigger_decoder_2.cpp +++ b/unit_tests/tests/trigger/test_trigger_decoder_2.cpp @@ -113,7 +113,7 @@ TEST(TriggerDecoder, FindsSyncPointMultipleRevolutions) { doTooth(dut, shape, cfg, t); EXPECT_TRUE(dut.getShaftSynchronized()); EXPECT_EQ(0, dut.currentCycle.current_index); - EXPECT_EQ(0, dut.getTotalRevolutionCounter()); + EXPECT_EQ(0, dut.getCrankSynchronizationCounter()); // Do 100 turns and make sure we stay synchronized for (int i = 0; i < 100; i++) { @@ -135,7 +135,7 @@ TEST(TriggerDecoder, FindsSyncPointMultipleRevolutions) { EXPECT_FALSE(dut.someSortOfTriggerError()); // We do one revolution per loop iteration - EXPECT_EQ(i + 1, dut.getTotalRevolutionCounter()); + EXPECT_EQ(i + 1, dut.getCrankSynchronizationCounter()); } }