From 5af0125672a1a86ddf7058f5f037edc903cc8f22 Mon Sep 17 00:00:00 2001 From: "D.R.racer" Date: Wed, 29 Sep 2021 09:08:30 +0200 Subject: [PATCH] LoadFilament should not set filament loaded (surprisingly) because of the change of semantics of LoadFilament operation. LoadFilament pushes the filament into FINDA and then retracts it back just to keep the filament ready to be grabbed by the idler and pulley and loaded into the printer's nozzle. So the selector is not blocked by the filament -> filament NOT loaded --- src/logic/feed_to_bondtech.cpp | 1 + src/logic/load_filament.cpp | 1 - tests/unit/logic/load_filament/test_load_filament.cpp | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/logic/feed_to_bondtech.cpp b/src/logic/feed_to_bondtech.cpp index d8d0164..0d9bb50 100644 --- a/src/logic/feed_to_bondtech.cpp +++ b/src/logic/feed_to_bondtech.cpp @@ -48,6 +48,7 @@ bool FeedToBondtech::Step() { state = OK; mm::motion.Disable(mm::Pulley); ml::leds.SetMode(mg::globals.ActiveSlot(), ml::green, ml::on); + mg::globals.SetFilamentLoaded(true); } return false; case OK: diff --git a/src/logic/load_filament.cpp b/src/logic/load_filament.cpp index c027602..7069ad8 100644 --- a/src/logic/load_filament.cpp +++ b/src/logic/load_filament.cpp @@ -71,7 +71,6 @@ bool LoadFilament::StepInner() { ml::leds.SetMode(mg::globals.ActiveSlot(), ml::red, ml::off); ml::leds.SetMode(mg::globals.ActiveSlot(), ml::green, ml::on); mm::motion.Disable(mm::Pulley); - mg::globals.SetFilamentLoaded(true); } break; case ProgressCode::OK: diff --git a/tests/unit/logic/load_filament/test_load_filament.cpp b/tests/unit/logic/load_filament/test_load_filament.cpp index 187c655..a75b1a3 100644 --- a/tests/unit/logic/load_filament/test_load_filament.cpp +++ b/tests/unit/logic/load_filament/test_load_filament.cpp @@ -73,7 +73,7 @@ void LoadFilamentSuccessful(uint8_t slot, logic::LoadFilament &lf) { // Stage 4 - disengaging idler REQUIRE(WhileTopState(lf, ProgressCode::DisengagingIdler, idlerEngageDisengageMaxSteps)); - REQUIRE(VerifyState(lf, true, mi::Idler::IdleSlotIndex(), slot, false, false, ml::on, ml::off, ErrorCode::OK, ProgressCode::OK)); + REQUIRE(VerifyState(lf, false, mi::Idler::IdleSlotIndex(), slot, false, false, ml::on, ml::off, ErrorCode::OK, ProgressCode::OK)); } TEST_CASE("load_filament::regular_load_to_slot_0-4", "[load_filament]") {