diff --git a/Firmware/mmu2_protocol_logic.cpp b/Firmware/mmu2_protocol_logic.cpp index 65b5a4115c..78122ab6af 100644 --- a/Firmware/mmu2_protocol_logic.cpp +++ b/Firmware/mmu2_protocol_logic.cpp @@ -809,14 +809,11 @@ StepStatus ProtocolLogic::Step() { // We are ok, switching to Idle if there is no potential next request planned. // But the trouble is we must report a finished command if the previous command has just been finished // i.e. only try to find some planned command if we just finished the Idle cycle - bool previousCommandFinished = currentScope == Scope::Command; // @@TODO this is a nasty hack :( if (!ActivatePlannedRequest()) { // if nothing is planned, switch to Idle SwitchToIdle(); - } else { + } else if (ExpectsResponse()) { // if the previous cycle was Idle and now we have planned a new command -> avoid returning Finished - if (!previousCommandFinished && currentScope == Scope::Command) { - currentStatus = Processing; - } + currentStatus = Processing; } } break; case CommandRejected: