Skip to content

Commit

Permalink
PFW-1354 Fix slow button processing (#37)
Browse files Browse the repository at this point in the history
* Fix MK3S buttons being processed too slowly

After a button is selected on the MK3S MMU error screen, we need to process it before asking for another MMU Query.

Because the MMU Query will make the Error screen return and overwrite the status screen

* Add back CheckUserInput for ButtonPushed event
  • Loading branch information
gudnimg authored Jul 9, 2022
1 parent a7e9bff commit 85a6c81
Showing 1 changed file with 2 additions and 5 deletions.
7 changes: 2 additions & 5 deletions Firmware/mmu2.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -678,6 +678,7 @@ void MMU2::manage_response(const bool move_axes, const bool turn_off_nozzle) {
}

StepStatus MMU2::LogicStep() {
CheckUserInput(); // Process any buttons before proceeding with another MMU Query
StepStatus ss = logic.Step();
switch (ss) {
case Finished:
Expand All @@ -686,27 +687,23 @@ StepStatus MMU2::LogicStep() {
break;
case CommandError:
ReportError(logic.Error());
CheckUserInput();
break;
case CommunicationTimeout:
state = xState::Connecting;
ReportError(ErrorCode::MMU_NOT_RESPONDING);
CheckUserInput();
break;
case ProtocolError:
state = xState::Connecting;
ReportError(ErrorCode::PROTOCOL_ERROR);
CheckUserInput();
break;
case VersionMismatch:
StopKeepPowered();
ReportError(ErrorCode::VERSION_MISMATCH);
CheckUserInput();
break;
case ButtonPushed:
lastButton = logic.Button();
LogEchoEvent("MMU Button pushed");
CheckUserInput();
CheckUserInput(); // Process the button immediately
break;
default:
break;
Expand Down

0 comments on commit 85a6c81

Please sign in to comment.