diff --git a/firmware/controllers/actuators/electronic_throttle.cpp b/firmware/controllers/actuators/electronic_throttle.cpp index f7cc54b567..8423d7f9f1 100644 --- a/firmware/controllers/actuators/electronic_throttle.cpp +++ b/firmware/controllers/actuators/electronic_throttle.cpp @@ -1041,7 +1041,8 @@ void doInitElectronicThrottle() { auto pid = getEtbPidForFunction(func); - bool etbConfigured = controller->init(func, motor, pid, &pedal2tpsMap, hasPedal); + bool dcConfigured = controller->init(func, motor, pid, &pedal2tpsMap, hasPedal); + bool etbConfigured = dcConfigured && controller->isEtbMode(); if (i == 0) { engineConfiguration->etb1configured = etbConfigured; } else if (i == 1) { diff --git a/unit_tests/tests/actuators/test_etb.cpp b/unit_tests/tests/actuators/test_etb.cpp index 9eda7c688f..bb8da5a48d 100644 --- a/unit_tests/tests/actuators/test_etb.cpp +++ b/unit_tests/tests/actuators/test_etb.cpp @@ -60,6 +60,9 @@ TEST(etb, initializationMissingThrottle) { TEST(etb, initializationSingleThrottle) { StrictMock mocks[ETB_COUNT]; + EXPECT_CALL(mocks[0], isEtbMode()) + .WillOnce(Return(TRUE)); + EngineTestHelper eth(TEST_ENGINE, [](engine_configuration_s* engineConfiguration) { engineConfiguration->etbFunctions[0] = DC_Throttle1; engineConfiguration->etbFunctions[1] = DC_None; @@ -85,6 +88,9 @@ TEST(etb, initializationSingleThrottle) { TEST(etb, initializationSingleThrottleInSecondSlot) { StrictMock mocks[ETB_COUNT]; + EXPECT_CALL(mocks[1], isEtbMode()) + .WillOnce(Return(TRUE)); + EngineTestHelper eth(TEST_ENGINE, [](engine_configuration_s* engineConfiguration) { engineConfiguration->etbFunctions[0] = DC_None; engineConfiguration->etbFunctions[1] = DC_Throttle1; @@ -110,6 +116,11 @@ TEST(etb, initializationSingleThrottleInSecondSlot) { TEST(etb, initializationDualThrottle) { StrictMock mocks[ETB_COUNT]; + EXPECT_CALL(mocks[0], isEtbMode()) + .WillOnce(Return(TRUE)); + EXPECT_CALL(mocks[1], isEtbMode()) + .WillOnce(Return(TRUE)); + EngineTestHelper eth(TEST_ENGINE); for (int i = 0; i < ETB_COUNT; i++) { @@ -138,6 +149,9 @@ TEST(etb, initializationDualThrottle) { TEST(etb, initializationWastegate) { StrictMock mocks[ETB_COUNT]; + EXPECT_CALL(mocks[0], isEtbMode()) + .WillOnce(Return(false)); + EngineTestHelper eth(TEST_ENGINE, [](engine_configuration_s* engineConfiguration) { engineConfiguration->etbFunctions[0] = DC_Wastegate; engineConfiguration->etbFunctions[1] = DC_None; @@ -155,7 +169,7 @@ TEST(etb, initializationWastegate) { doInitElectronicThrottle(); - ASSERT_TRUE(engineConfiguration->etb1configured); // huh?! + ASSERT_FALSE(engineConfiguration->etb1configured); } TEST(etb, initializationNoFunction) {