From 090599c27e949b44df0c8c452a3cad6441f2d96f Mon Sep 17 00:00:00 2001 From: Andrey Date: Sun, 24 Mar 2024 08:03:32 -0400 Subject: [PATCH] bosch quick start decoding issue or else #6281 test VVT decoding from file --- .../trigger/test_real_bosch_quick_start.cpp | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/unit_tests/tests/trigger/test_real_bosch_quick_start.cpp b/unit_tests/tests/trigger/test_real_bosch_quick_start.cpp index f9f8f3bee8..c4c3c41bc3 100644 --- a/unit_tests/tests/trigger/test_real_bosch_quick_start.cpp +++ b/unit_tests/tests/trigger/test_real_bosch_quick_start.cpp @@ -30,3 +30,35 @@ TEST(realBQS, readAsPrimarySensor) { ASSERT_FLOAT_EQ(Sensor::get(SensorType::Rpm).Value, 2035.53467); } + +TEST(realBQS, readAsCam) { + EngineTestHelper eth(engine_type_e::ET_TEST_WITH_BOSCH_QUICK_START); + + hwHandleShaftSignal(0, true, 0); + hwHandleShaftSignal(0, false, 1000000); + hwHandleShaftSignal(0, true, 2000000); + hwHandleShaftSignal(0, false, 3000000); + eth.assertRpm(3000); + + int eventCount = 0; + CsvReader reader(/*triggerCount*/0, /* vvtCount */ 1); + reader.open("tests/trigger/resources/BQS-longer.csv"); + reader.flipVvtOnRead = true; + + TriggerCentral *tc = getTriggerCentral(); + ASSERT_TRUE(tc->triggerState.getShaftSynchronized()); + TriggerDecoderBase& vvtDecoder = tc->vvtState[0][0]; + + bool gotVvt = false; + while (reader.haveMore()) { + reader.processLine(ð); + eventCount++; + + if (!gotVvt && vvtDecoder.getShaftSynchronized()) { + gotVvt = true; + EXPECT_EQ(eventCount, 13); + } + } + ASSERT_DOUBLE_EQ(-247.03125, tc->getVVTPosition(0, 0)); + ASSERT_TRUE(vvtDecoder.getShaftSynchronized()); +}