From d18d4496d1945a67dee1e5bf5a96a55559dde73c Mon Sep 17 00:00:00 2001 From: Andrey Date: Fri, 2 Jul 2021 17:32:29 -0400 Subject: [PATCH] Nissan progress --- unit_tests/global_execution_queue.cpp | 1 - .../tests/trigger/test_nissan_vq_vvt.cpp | 57 ++++++++++++++++++- 2 files changed, 55 insertions(+), 3 deletions(-) diff --git a/unit_tests/global_execution_queue.cpp b/unit_tests/global_execution_queue.cpp index 38b24fb964..cf786eaeae 100644 --- a/unit_tests/global_execution_queue.cpp +++ b/unit_tests/global_execution_queue.cpp @@ -8,7 +8,6 @@ #include "global_execution_queue.h" bool_t debugSignalExecutor = false; -extern bool verboseMode; TestExecutor::~TestExecutor() { // Flush the queue and reset all scheduling_s at the end of a test's execution diff --git a/unit_tests/tests/trigger/test_nissan_vq_vvt.cpp b/unit_tests/tests/trigger/test_nissan_vq_vvt.cpp index ac11673e01..ccde7a5966 100644 --- a/unit_tests/tests/trigger/test_nissan_vq_vvt.cpp +++ b/unit_tests/tests/trigger/test_nissan_vq_vvt.cpp @@ -6,8 +6,61 @@ */ #include "engine_test_helper.h" +#include "trigger_nissan.h" + +class TriggerCallback { +public: + Engine *engine; + int index; + TriggerWaveform *form; +}; + +void func(TriggerCallback *callback) { + int formIndex = callback->index % callback->form->getSize(); + Engine *engine = callback->engine; + EXPAND_Engine; + + int value = callback->form->wave.channels[0].getState(formIndex); + trigger_event_e signal; + if (value) { + signal = SHAFT_PRIMARY_RISING; + } else { + signal = SHAFT_PRIMARY_FALLING; + } + efitick_t nowNt = getTimeNowNt(); + engine->triggerCentral.handleShaftSignal(SHAFT_PRIMARY_RISING, nowNt PASS_ENGINE_PARAMETER_SUFFIX); + +} + +TEST(nissan, vq_vvt) { + WITH_ENGINE_TEST_HELPER (HELLEN_121_NISSAN); + + { + + TriggerWaveform crank; + initializeNissanVQcrank(&crank); + + int totalIndex = 0; + + for (int r = 0; r < 20; r++) { + for (int i = 0; i < crank.getSize(); i++) { + float angle = crank.getAngle(totalIndex); + TriggerCallback *param = new TriggerCallback(); + param->engine = engine; + param->index = totalIndex; + + scheduling_s *sch = new scheduling_s(); + engine->executor.scheduleByTimestamp(sch, 1000 * angle, { func, param }); + totalIndex++; + } + } + } + + for (int r = 0; r < 20 * 720; r++) { +// eth.moveTimeForwardMs(1); +// eth.executeActions(); + } + ASSERT_EQ(0, GET_RPM()); -TEST(nissan, vq_vvt) { - WITH_ENGINE_TEST_HELPER(HELLEN_121_NISSAN); }