Fix issue where firmware panic error code is overwritten
If QUEUE_FULL error happened, it would be overwritten as INTERNAL and incorrectly display FW_RUNTIME_ERROR on MK3S. The fix is to add handling for ERRInternal in every StepInner() and forward the error to higher application layerpull/232/head
parent
0e625dc551
commit
ef4246dd9a
|
|
@ -100,6 +100,9 @@ bool CutFilament::StepInner() {
|
||||||
break;
|
break;
|
||||||
case ProgressCode::OK:
|
case ProgressCode::OK:
|
||||||
return true;
|
return true;
|
||||||
|
case ProgressCode::ERRInternal:
|
||||||
|
// firmware panic triggered
|
||||||
|
return true;
|
||||||
default: // we got into an unhandled state, better report it
|
default: // we got into an unhandled state, better report it
|
||||||
state = ProgressCode::ERRInternal;
|
state = ProgressCode::ERRInternal;
|
||||||
error = ErrorCode::INTERNAL;
|
error = ErrorCode::INTERNAL;
|
||||||
|
|
|
||||||
|
|
@ -75,6 +75,9 @@ bool EjectFilament::StepInner() {
|
||||||
case ProgressCode::OK:
|
case ProgressCode::OK:
|
||||||
dbg_logic_fP(PSTR("FilamentLoadState after Eject %d"), mg::globals.FilamentLoaded());
|
dbg_logic_fP(PSTR("FilamentLoadState after Eject %d"), mg::globals.FilamentLoaded());
|
||||||
return true;
|
return true;
|
||||||
|
case ProgressCode::ERRInternal:
|
||||||
|
// firmware panic triggered
|
||||||
|
return true;
|
||||||
default: // we got into an unhandled state, better report it
|
default: // we got into an unhandled state, better report it
|
||||||
state = ProgressCode::ERRInternal;
|
state = ProgressCode::ERRInternal;
|
||||||
error = ErrorCode::INTERNAL;
|
error = ErrorCode::INTERNAL;
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,9 @@ bool Home::StepInner() {
|
||||||
break;
|
break;
|
||||||
case ProgressCode::OK:
|
case ProgressCode::OK:
|
||||||
return true;
|
return true;
|
||||||
|
case ProgressCode::ERRInternal:
|
||||||
|
// firmware panic triggered
|
||||||
|
return true;
|
||||||
default: // we got into an unhandled state, better report it
|
default: // we got into an unhandled state, better report it
|
||||||
state = ProgressCode::ERRInternal;
|
state = ProgressCode::ERRInternal;
|
||||||
error = ErrorCode::INTERNAL;
|
error = ErrorCode::INTERNAL;
|
||||||
|
|
|
||||||
|
|
@ -168,6 +168,9 @@ bool HWSanity::StepInner() {
|
||||||
}
|
}
|
||||||
case ProgressCode::OK:
|
case ProgressCode::OK:
|
||||||
return true;
|
return true;
|
||||||
|
case ProgressCode::ERRInternal:
|
||||||
|
// firmware panic triggered
|
||||||
|
return true;
|
||||||
default: // we got into an unhandled state, better report it
|
default: // we got into an unhandled state, better report it
|
||||||
state = ProgressCode::ERRInternal;
|
state = ProgressCode::ERRInternal;
|
||||||
error = ErrorCode::INTERNAL;
|
error = ErrorCode::INTERNAL;
|
||||||
|
|
|
||||||
|
|
@ -162,6 +162,9 @@ bool LoadFilament::StepInner() {
|
||||||
GoToErrDisengagingIdler(ErrorCode::FINDA_DIDNT_SWITCH_ON);
|
GoToErrDisengagingIdler(ErrorCode::FINDA_DIDNT_SWITCH_ON);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
case ProgressCode::ERRInternal:
|
||||||
|
// firmware panic triggered
|
||||||
|
return true;
|
||||||
default: // we got into an unhandled state, better report it
|
default: // we got into an unhandled state, better report it
|
||||||
state = ProgressCode::ERRInternal;
|
state = ProgressCode::ERRInternal;
|
||||||
error = ErrorCode::INTERNAL;
|
error = ErrorCode::INTERNAL;
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,9 @@ bool MoveSelector::StepInner() {
|
||||||
break;
|
break;
|
||||||
case ProgressCode::OK:
|
case ProgressCode::OK:
|
||||||
return true;
|
return true;
|
||||||
|
case ProgressCode::ERRInternal:
|
||||||
|
// firmware panic triggered
|
||||||
|
return true;
|
||||||
default: // we got into an unhandled state, better report it
|
default: // we got into an unhandled state, better report it
|
||||||
state = ProgressCode::ERRInternal;
|
state = ProgressCode::ERRInternal;
|
||||||
error = ErrorCode::INTERNAL;
|
error = ErrorCode::INTERNAL;
|
||||||
|
|
|
||||||
|
|
@ -179,6 +179,9 @@ bool ToolChange::StepInner() {
|
||||||
GoToErrDisengagingIdler(ErrorCode::FSENSOR_DIDNT_SWITCH_ON);
|
GoToErrDisengagingIdler(ErrorCode::FSENSOR_DIDNT_SWITCH_ON);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
case ProgressCode::ERRInternal:
|
||||||
|
// firmware panic triggered
|
||||||
|
return true;
|
||||||
default: // we got into an unhandled state, better report it
|
default: // we got into an unhandled state, better report it
|
||||||
state = ProgressCode::ERRInternal;
|
state = ProgressCode::ERRInternal;
|
||||||
error = ErrorCode::INTERNAL;
|
error = ErrorCode::INTERNAL;
|
||||||
|
|
|
||||||
|
|
@ -159,6 +159,9 @@ bool UnloadFilament::StepInner() {
|
||||||
break;
|
break;
|
||||||
case ProgressCode::OK:
|
case ProgressCode::OK:
|
||||||
return true; // successfully finished
|
return true; // successfully finished
|
||||||
|
case ProgressCode::ERRInternal:
|
||||||
|
// firmware panic triggered
|
||||||
|
return true;
|
||||||
default: // we got into an unhandled state, better report it
|
default: // we got into an unhandled state, better report it
|
||||||
state = ProgressCode::ERRInternal;
|
state = ProgressCode::ERRInternal;
|
||||||
error = ErrorCode::INTERNAL;
|
error = ErrorCode::INTERNAL;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue