From 3d89cc2093e31c8a8c310e2196dc5348410dff0c Mon Sep 17 00:00:00 2001 From: rusefi Date: Wed, 7 Apr 2021 15:17:01 -0400 Subject: [PATCH] trigger and VVT duty cycle integration into limp manager #2523 --- firmware/controllers/algo/engine.cpp | 17 ++++++++++++----- .../controllers/trigger/trigger_decoder.cpp | 7 ++++++- firmware/controllers/trigger/trigger_decoder.h | 1 + 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/firmware/controllers/algo/engine.cpp b/firmware/controllers/algo/engine.cpp index 94ce0f9c78..0f6eee6238 100644 --- a/firmware/controllers/algo/engine.cpp +++ b/firmware/controllers/algo/engine.cpp @@ -105,20 +105,26 @@ trigger_type_e getVvtTriggerType(vvt_mode_e vvtMode) { } } -static void initVvtShape(Logging *logger, int index, TriggerState &initState DECLARE_ENGINE_PARAMETER_SUFFIX) { - vvt_mode_e vvtMode = engineConfiguration->vvtMode[index]; - TriggerWaveform *shape = &ENGINE(triggerCentral).vvtShape[index]; +static void initVvtShape(Logging *logger, int camIndex, TriggerState &initState DECLARE_ENGINE_PARAMETER_SUFFIX) { + vvt_mode_e vvtMode = engineConfiguration->vvtMode[camIndex]; + TriggerWaveform *shape = &ENGINE(triggerCentral).vvtShape[camIndex]; + + // not ideas but good for now code + ENGINE(triggerCentral).vvtState[0][0].name = "vvt00"; + ENGINE(triggerCentral).vvtState[0][1].name = "vvt01"; + ENGINE(triggerCentral).vvtState[1][0].name = "vvt10"; + ENGINE(triggerCentral).vvtState[1][1].name = "vvt11"; if (vvtMode != VVT_INACTIVE) { trigger_config_s config; - ENGINE(triggerCentral).vvtTriggerType[index] = config.type = getVvtTriggerType(vvtMode); + ENGINE(triggerCentral).vvtTriggerType[camIndex] = config.type = getVvtTriggerType(vvtMode); shape->initializeTriggerWaveform(logger, engineConfiguration->ambiguousOperationMode, CONFIG(vvtCamSensorUseRise), &config); shape->initializeSyncPoint(initState, - engine->vvtTriggerConfiguration[index], + engine->vvtTriggerConfiguration[camIndex], config); } @@ -150,6 +156,7 @@ void Engine::initializeTriggerWaveform(Logging *logger DECLARE_ENGINE_PARAMETER_ calculateTriggerSynchPoint(ENGINE(triggerCentral.triggerShape), initState PASS_ENGINE_PARAMETER_SUFFIX); + ENGINE(triggerCentral.triggerState).name = "TRG"; engine->engineCycleEventCount = TRIGGER_WAVEFORM(getLength()); } diff --git a/firmware/controllers/trigger/trigger_decoder.cpp b/firmware/controllers/trigger/trigger_decoder.cpp index e759989ae6..7af7a0aff1 100644 --- a/firmware/controllers/trigger/trigger_decoder.cpp +++ b/firmware/controllers/trigger/trigger_decoder.cpp @@ -550,7 +550,12 @@ void TriggerState::decodeTriggerEvent( int rpm = GET_RPM(); floatms_t engineCycleDuration = getEngineCycleDuration(rpm PASS_ENGINE_PARAMETER_SUFFIX); - scheduleMsg(logger, "duty %f", currentCycle.totalTimeNt[0] / engineCycleDuration); + int time = currentCycle.totalTimeNt[0]; + scheduleMsg(logger, "%s duty %f %d", + name, + time / engineCycleDuration, + time + ); for (int i = 0;i