Add ToolChange Error resolve Button2 unit tests
parent
515119edc8
commit
151adf810a
|
|
@ -114,10 +114,12 @@ bool ToolChange::StepInner() {
|
||||||
state = ProgressCode::ERRWaitingForUser; // stand still
|
state = ProgressCode::ERRWaitingForUser; // stand still
|
||||||
} else if (!mfs::fsensor.Pressed()) {
|
} else if (!mfs::fsensor.Pressed()) {
|
||||||
// printer's filament sensor is still NOT pressed - that smells bad
|
// printer's filament sensor is still NOT pressed - that smells bad
|
||||||
|
mg::globals.SetFilamentLoaded(plannedSlot, mg::FilamentLoadState::InSelector); // only assume the filament is in selector
|
||||||
error = ErrorCode::FSENSOR_DIDNT_SWITCH_ON;
|
error = ErrorCode::FSENSOR_DIDNT_SWITCH_ON;
|
||||||
state = ProgressCode::ERRWaitingForUser; // stand still
|
state = ProgressCode::ERRWaitingForUser; // stand still - we may even try loading the filament into the nozzle
|
||||||
} else {
|
} else {
|
||||||
// all sensors are ok
|
// all sensors are ok, we assume the user pushed the filament into the nozzle
|
||||||
|
mg::globals.SetFilamentLoaded(plannedSlot, mg::FilamentLoadState::InNozzle);
|
||||||
FinishedCorrectly();
|
FinishedCorrectly();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -241,18 +241,30 @@ void ToolChangeFailLoadToFindaButton1(logic::ToolChange &tc, uint8_t toSlot) {
|
||||||
CheckFinishedCorrectly(tc, toSlot);
|
CheckFinishedCorrectly(tc, toSlot);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ToolChangeFailLoadToFindaButton2(logic::ToolChange &tc, uint8_t toSlot) {
|
void ToolChangeFailLoadToFindaButton2FINDA_FSensor(logic::ToolChange &tc, uint8_t toSlot) {
|
||||||
// now waiting for user input
|
// now waiting for user input - press FINDA and FSensor
|
||||||
|
hal::gpio::WritePin(FINDA_PIN, hal::gpio::Level::high);
|
||||||
|
mfs::fsensor.ProcessMessage(true);
|
||||||
PressButtonAndDebounce(tc, 2);
|
PressButtonAndDebounce(tc, 2);
|
||||||
|
|
||||||
// the user resolved the situation by hand
|
|
||||||
FeedingToFinda(tc, toSlot);
|
|
||||||
|
|
||||||
FeedingToBondtech(tc, toSlot);
|
|
||||||
|
|
||||||
CheckFinishedCorrectly(tc, toSlot);
|
CheckFinishedCorrectly(tc, toSlot);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ToolChangeFailLoadToFindaButton2FINDA(logic::ToolChange &tc, uint8_t toSlot) {
|
||||||
|
// now waiting for user input - press FINDA
|
||||||
|
hal::gpio::WritePin(FINDA_PIN, hal::gpio::Level::high);
|
||||||
|
PressButtonAndDebounce(tc, 2);
|
||||||
|
|
||||||
|
REQUIRE(VerifyState(tc, mg::FilamentLoadState::InSelector, mi::Idler::IdleSlotIndex(), toSlot, true, false, ml::off, ml::blink0, ErrorCode::FSENSOR_DIDNT_SWITCH_ON, ProgressCode::ERRWaitingForUser));
|
||||||
|
}
|
||||||
|
|
||||||
|
void ToolChangeFailLoadToFindaButton2(logic::ToolChange &tc, uint8_t toSlot) {
|
||||||
|
// now waiting for user input - do not press anything
|
||||||
|
PressButtonAndDebounce(tc, 2);
|
||||||
|
|
||||||
|
REQUIRE(VerifyState(tc, mg::FilamentLoadState::InSelector, mi::Idler::IdleSlotIndex(), toSlot, false, false, ml::off, ml::blink0, ErrorCode::FINDA_DIDNT_SWITCH_ON, ProgressCode::ERRWaitingForUser));
|
||||||
|
}
|
||||||
|
|
||||||
TEST_CASE("tool_change::load_fail_FINDA_resolve_btn0", "[tool_change]") {
|
TEST_CASE("tool_change::load_fail_FINDA_resolve_btn0", "[tool_change]") {
|
||||||
logic::ToolChange tc;
|
logic::ToolChange tc;
|
||||||
for (uint8_t fromSlot = 0; fromSlot < config::toolCount; ++fromSlot) {
|
for (uint8_t fromSlot = 0; fromSlot < config::toolCount; ++fromSlot) {
|
||||||
|
|
@ -276,3 +288,27 @@ TEST_CASE("tool_change::load_fail_FINDA_resolve_btn1", "[tool_change]") {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_CASE("tool_change::load_fail_FINDA_resolve_btn2_FINDA_FSensor", "[tool_change]") {
|
||||||
|
logic::ToolChange tc;
|
||||||
|
for (uint8_t fromSlot = 0; fromSlot < config::toolCount; ++fromSlot) {
|
||||||
|
for (uint8_t toSlot = 0; toSlot < config::toolCount; ++toSlot) {
|
||||||
|
if (fromSlot != toSlot) {
|
||||||
|
ToolChangeFailLoadToFinda(tc, fromSlot, toSlot);
|
||||||
|
ToolChangeFailLoadToFindaButton2FINDA_FSensor(tc, toSlot);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_CASE("tool_change::load_fail_FINDA_resolve_btn2_FINDA", "[tool_change]") {
|
||||||
|
logic::ToolChange tc;
|
||||||
|
for (uint8_t fromSlot = 0; fromSlot < config::toolCount; ++fromSlot) {
|
||||||
|
for (uint8_t toSlot = 0; toSlot < config::toolCount; ++toSlot) {
|
||||||
|
if (fromSlot != toSlot) {
|
||||||
|
ToolChangeFailLoadToFinda(tc, fromSlot, toSlot);
|
||||||
|
ToolChangeFailLoadToFindaButton2FINDA(tc, toSlot);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue