fome-fw/unit_tests/tests/trigger/test_map_cam.cpp

40 lines
1.3 KiB
C++
Raw Normal View History

2021-11-24 18:53:32 -08:00
#include "pch.h"
2021-11-24 19:36:36 -08:00
#include "trigger_central.h"
#include "spark_logic.h"
2021-11-24 18:53:32 -08:00
TEST(trigger, map_cam_by_magic_point) {
EngineTestHelper eth(TEST_CRANK_ENGINE);
engineConfiguration->isFasterEngineSpinUpEnabled = false;
engineConfiguration->camInputs[0] = GPIOA_0;
engineConfiguration->vvtMode[0] = VVT_MAP_V_TWIN_ANOTHER;
engine->outputChannels.instantMAPValue = 100;
engineConfiguration->mapCamDetectionAnglePosition = 90;
eth.smartFireTriggerEvents2(/*count*/10, /*delayMs*/200);
2022-01-20 19:58:12 -08:00
ASSERT_EQ(150, Sensor::getOrZero(SensorType::Rpm)) << "RPM";
ASSERT_EQ(1, engine->outputChannels.TEMPLOG_map_peak);
ASSERT_EQ(0, engine->outputChannels.vvtSyncCounter);
// Nothing should have been scheduled yet
ASSERT_EQ(0, engine->executor.size());
engine->outputChannels.instantMAPValue = 120;
eth.smartFireTriggerEvents2(/*count*/4, /*delayMs*/200);
ASSERT_EQ(2, engine->outputChannels.TEMPLOG_map_peak);
ASSERT_EQ(1, engine->outputChannels.vvtSyncCounter);
ASSERT_EQ(10, engine->outputChannels.TEMPLOG_MAP_AT_CYCLE_COUNT);
// We have "VVT" sync, things should be scheduled!
ASSERT_EQ(2, engine->executor.size());
eth.assertEvent5("spark down#0", 0, (void*)turnSparkPinHigh, 185333);
eth.assertEvent5("spark down#1", 1, (void*)fireSparkAndPrepareNextSchedule, 188333);
}