fome-fw/unit_tests/tests/ignition_injection/test_ignition_scheduling.cpp

42 lines
1.2 KiB
C++
Raw Normal View History

2019-11-17 06:32:12 -08:00
/*
* @file test_ignition_scheduling.cpp
*
* @date Nov 17, 2019
2020-01-07 21:02:40 -08:00
* @author Andrey Belomutskiy, (c) 2012-2020
2019-11-17 06:32:12 -08:00
*/
#include "engine_test_helper.h"
#include "spark_logic.h"
TEST(ignition, twoCoils) {
2019-11-18 20:54:08 -08:00
WITH_ENGINE_TEST_HELPER(BMW_M73_F);
2019-11-17 06:32:12 -08:00
// first one to fire uses first coil
ASSERT_EQ(ENGINE(ignitionPin[ID2INDEX(1)]), 0);
ASSERT_EQ(ENGINE(ignitionPin[ID2INDEX(2)]), 1);
ASSERT_EQ(ENGINE(ignitionPin[ID2INDEX(3)]), 0);
ASSERT_EQ(ENGINE(ignitionPin[ID2INDEX(4)]), 1);
ASSERT_EQ(ENGINE(ignitionPin[ID2INDEX(11)]), 0);
ASSERT_EQ(ENGINE(ignitionPin[ID2INDEX(12)]), 1);
// let's recalculate with zero timing so that we can focus on relation advance between cylinders
engine->engineState.timingAdvance = 0;
initializeIgnitionActions(PASS_ENGINE_PARAMETER_SIGNATURE);
2019-11-23 20:49:39 -08:00
ASSERT_EQ(engine->ignitionEvents.elements[0].sparkAngle, 0);
2019-11-17 06:32:12 -08:00
ASSERT_EQ((void*)engine->ignitionEvents.elements[0].outputs[0], (void*)&enginePins.coils[0]);
2019-11-23 20:49:39 -08:00
ASSERT_EQ(engine->ignitionEvents.elements[1].sparkAngle, 720 / 12);
2019-11-17 06:32:12 -08:00
ASSERT_EQ((void*)engine->ignitionEvents.elements[1].outputs[0], (void*)&enginePins.coils[6]);
2019-11-23 20:49:39 -08:00
ASSERT_EQ(engine->ignitionEvents.elements[3].sparkAngle, 3 * 720 / 12);
2019-11-17 06:32:12 -08:00
ASSERT_EQ((void*)engine->ignitionEvents.elements[3].outputs[0], (void*)&enginePins.coils[6]);
}