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);
|
||||
|
||||
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
|
||||
|
||||
extruder = MMU2_NO_TOOL;
|
||||
|
|
|
|||
|
|
@ -294,6 +294,19 @@ StepStatus Idle::Step() {
|
|||
logic->SwitchFromIdleToCommand();
|
||||
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:
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue