Reset MMU upon start + fix reporting its start errors
This commit is contained in:
parent
1ff7459743
commit
b880559ba7
|
|
@ -103,7 +103,9 @@ void MMU2::Start() {
|
||||||
|
|
||||||
mmu2Serial.begin(MMU_BAUD);
|
mmu2Serial.begin(MMU_BAUD);
|
||||||
|
|
||||||
PowerOn();
|
// PowerOn(); we cannot do that on MK3, but at least reset the MMU
|
||||||
|
Reset(ResetForm::ResetPin);
|
||||||
|
|
||||||
mmu2Serial.flush(); // make sure the UART buffer is clear before starting communication
|
mmu2Serial.flush(); // make sure the UART buffer is clear before starting communication
|
||||||
|
|
||||||
extruder = MMU2_NO_TOOL;
|
extruder = MMU2_NO_TOOL;
|
||||||
|
|
|
||||||
|
|
@ -294,6 +294,19 @@ StepStatus Idle::Step() {
|
||||||
logic->SwitchFromIdleToCommand();
|
logic->SwitchFromIdleToCommand();
|
||||||
return Processing;
|
return Processing;
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
case RequestMsgCodes::Reset:
|
||||||
|
// this one is kind of special
|
||||||
|
// we do not transfer to any "running" command (i.e. we stay in Idle),
|
||||||
|
// but in case there is an error reported we must make sure it gets propagated
|
||||||
|
if( logic->rsp.paramCode != ResponseMsgParamCodes::Finished ){
|
||||||
|
logic->errorCode = static_cast<ErrorCode>(logic->rsp.paramValue);
|
||||||
|
SendFINDAQuery(); // continue Idle state without restarting the communication
|
||||||
|
return CommandError;
|
||||||
|
} else {
|
||||||
|
logic->errorCode = ErrorCode::OK;
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue