From 540e142c281fdafc97eee2f971ff9f1822f40a78 Mon Sep 17 00:00:00 2001 From: Andrey Date: Wed, 6 Dec 2023 23:01:28 -0500 Subject: [PATCH] 6G72 Trigger Pattern #5593 --- .../trigger/decoders/trigger_mitsubishi.cpp | 10 ++--- unit_tests/tests/tests.mk | 1 + .../tests/trigger/test_real_6g72_3000gt.cpp | 40 +++++++++++++++++++ 3 files changed, 46 insertions(+), 5 deletions(-) create mode 100644 unit_tests/tests/trigger/test_real_6g72_3000gt.cpp diff --git a/firmware/controllers/trigger/decoders/trigger_mitsubishi.cpp b/firmware/controllers/trigger/decoders/trigger_mitsubishi.cpp index 174c090f3e..70301dba91 100644 --- a/firmware/controllers/trigger/decoders/trigger_mitsubishi.cpp +++ b/firmware/controllers/trigger/decoders/trigger_mitsubishi.cpp @@ -41,14 +41,14 @@ void initializeMitsubishi4gSymmetricalCrank(TriggerWaveform *s) { // https://github.com/rusefi/rusefi/issues/5593 void initializeVvt6G72(TriggerWaveform *s) { - s->initialize(FOUR_STROKE_CAM_SENSOR, SyncEdge::Both); + s->initialize(FOUR_STROKE_CAM_SENSOR, SyncEdge::Rise); - s->setTriggerSynchronizationGap(0.29); - s->setSecondTriggerSynchronizationGap(1.65); - int narrowWidth = 40 / 2; + s->setTriggerSynchronizationGap(0.8); + s->setSecondTriggerSynchronizationGap(1.9); + int narrowWidth = 30; // special wider tooth - s->addToothRiseFall(90 * 1, 85.0 / 2); + s->addToothRiseFall(90 * 1, 60); s->addToothRiseFall(90 * 2, narrowWidth); s->addToothRiseFall(90 * 3, narrowWidth); diff --git a/unit_tests/tests/tests.mk b/unit_tests/tests/tests.mk index 0440faabfe..78b2282136 100644 --- a/unit_tests/tests/tests.mk +++ b/unit_tests/tests/tests.mk @@ -13,6 +13,7 @@ TESTS_SRC_CPP = \ tests/trigger/test_real_cranking_miata_NA.cpp \ tests/trigger/test_real_cranking_miata_na6.cpp \ tests/trigger/test_real_cranking_nissan_vq40.cpp \ + tests/trigger/test_real_6g72_3000gt.cpp \ tests/trigger/test_real_cas_24_plus_1.cpp \ tests/trigger/test_trigger_skipped_wheel.cpp \ tests/trigger/test_real_4b11.cpp \ diff --git a/unit_tests/tests/trigger/test_real_6g72_3000gt.cpp b/unit_tests/tests/trigger/test_real_6g72_3000gt.cpp new file mode 100644 index 0000000000..0f8bec8bec --- /dev/null +++ b/unit_tests/tests/trigger/test_real_6g72_3000gt.cpp @@ -0,0 +1,40 @@ +#include "pch.h" + +#include "logicdata_csv_reader.h" + +TEST(real6g72, data) { + + EngineTestHelper eth(engine_type_e::TEST_ENGINE); + + engineConfiguration->isFasterEngineSpinUpEnabled = true; + engineConfiguration->alwaysInstantRpm = true; + engineConfiguration->invertPrimaryTriggerSignal = false; + + engineConfiguration->isPhaseSyncRequiredForIgnition = true; + + eth.setTriggerType(trigger_type_e::TT_VVT_MITSU_6G72); + + ASSERT_FALSE(engine->triggerCentral.triggerShape.shapeDefinitionError); + + engineConfiguration->vvtMode[0] = VVT_INACTIVE; + + bool gotRpm = false; + + CsvReader reader(/*trigger channels count*/1, /* vvtCount */ 0); + reader.flipOnRead = true; + + reader.open("tests/trigger/resources/3000gt.csv"); + while (reader.haveMore()) { + reader.processLine(ð); + auto rpm = Sensor::getOrZero(SensorType::Rpm); + printf("rpm %f\n", rpm); + + if (!gotRpm && rpm) { + gotRpm = true; + +// EXPECT_EQ(eventCount, 7); + EXPECT_NEAR(rpm, 419.42f, 0.1); + } + } + ASSERT_TRUE(gotRpm); +}