diff --git a/firmware/controllers/actuators/electronic_throttle.cpp b/firmware/controllers/actuators/electronic_throttle.cpp index e75c65edd3..3e7e04d366 100644 --- a/firmware/controllers/actuators/electronic_throttle.cpp +++ b/firmware/controllers/actuators/electronic_throttle.cpp @@ -257,8 +257,7 @@ expected EtbController::getSetpoint() { case ETB_IdleValve: return getSetpointIdleValve(); case ETB_Wastegate: - firmwareError(OBD_PCM_Processor_Fault, "Wastegate should not run closed loop controller"); - return unexpected; + return getSetpointWastegate(); default: return unexpected; } @@ -273,7 +272,7 @@ expected EtbController::getSetpointIdleValve() const { return clampF(0, m_idlePosition, 100); } -percent_t EtbController::getWastegateOutput() const { +expected EtbController::getSetpointWastegate() const { return clampF(0, m_wastegatePosition, 100); } @@ -630,13 +629,6 @@ void EtbController::update() { return; } - if (getFunction() == ETB_Wastegate) { - // boost controller runs it's own PID we just take the result - m_motor->enable(); - m_motor->set(getWastegateOutput() / PERCENT_MULT); - return; - } - bool isOk = checkStatus(); if (!isOk) { diff --git a/firmware/controllers/actuators/electronic_throttle_impl.h b/firmware/controllers/actuators/electronic_throttle_impl.h index b559fb28a1..3478fad3c2 100644 --- a/firmware/controllers/actuators/electronic_throttle_impl.h +++ b/firmware/controllers/actuators/electronic_throttle_impl.h @@ -47,7 +47,7 @@ public: expected getSetpoint() override; expected getSetpointEtb(); - percent_t getWastegateOutput() const; + expected getSetpointWastegate() const; expected getSetpointIdleValve() const; expected getOpenLoop(percent_t target) override; diff --git a/unit_tests/tests/actuators/test_etb.cpp b/unit_tests/tests/actuators/test_etb.cpp index 4b8c42264e..266624e22d 100644 --- a/unit_tests/tests/actuators/test_etb.cpp +++ b/unit_tests/tests/actuators/test_etb.cpp @@ -475,8 +475,6 @@ TEST(etb, setpointWastegateController) { EtbController etb; etb.init(ETB_Wastegate, nullptr, nullptr, nullptr, false); -/* - * we need some unit test but this unit test seems pretty wrong etb.setWastegatePosition(0); EXPECT_FLOAT_EQ(0, etb.getSetpoint().value_or(-1)); @@ -490,7 +488,6 @@ TEST(etb, setpointWastegateController) { EXPECT_FLOAT_EQ(0, etb.getSetpoint().value_or(-1)); etb.setWastegatePosition(110); EXPECT_FLOAT_EQ(100, etb.getSetpoint().value_or(-1)); - */ } TEST(etb, setpointLuaAdder) {