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 layer
pull/232/head
Guðni Már Gilbert 2022-10-26 20:39:28 +00:00
parent 0e625dc551
commit ef4246dd9a
8 changed files with 24 additions and 0 deletions

View File

@ -100,6 +100,9 @@ bool CutFilament::StepInner() {
break;
case ProgressCode::OK:
return true;
case ProgressCode::ERRInternal:
// firmware panic triggered
return true;
default: // we got into an unhandled state, better report it
state = ProgressCode::ERRInternal;
error = ErrorCode::INTERNAL;

View File

@ -75,6 +75,9 @@ bool EjectFilament::StepInner() {
case ProgressCode::OK:
dbg_logic_fP(PSTR("FilamentLoadState after Eject %d"), mg::globals.FilamentLoaded());
return true;
case ProgressCode::ERRInternal:
// firmware panic triggered
return true;
default: // we got into an unhandled state, better report it
state = ProgressCode::ERRInternal;
error = ErrorCode::INTERNAL;

View File

@ -28,6 +28,9 @@ bool Home::StepInner() {
break;
case ProgressCode::OK:
return true;
case ProgressCode::ERRInternal:
// firmware panic triggered
return true;
default: // we got into an unhandled state, better report it
state = ProgressCode::ERRInternal;
error = ErrorCode::INTERNAL;

View File

@ -168,6 +168,9 @@ bool HWSanity::StepInner() {
}
case ProgressCode::OK:
return true;
case ProgressCode::ERRInternal:
// firmware panic triggered
return true;
default: // we got into an unhandled state, better report it
state = ProgressCode::ERRInternal;
error = ErrorCode::INTERNAL;

View File

@ -162,6 +162,9 @@ bool LoadFilament::StepInner() {
GoToErrDisengagingIdler(ErrorCode::FINDA_DIDNT_SWITCH_ON);
}
return false;
case ProgressCode::ERRInternal:
// firmware panic triggered
return true;
default: // we got into an unhandled state, better report it
state = ProgressCode::ERRInternal;
error = ErrorCode::INTERNAL;

View File

@ -31,6 +31,9 @@ bool MoveSelector::StepInner() {
break;
case ProgressCode::OK:
return true;
case ProgressCode::ERRInternal:
// firmware panic triggered
return true;
default: // we got into an unhandled state, better report it
state = ProgressCode::ERRInternal;
error = ErrorCode::INTERNAL;

View File

@ -179,6 +179,9 @@ bool ToolChange::StepInner() {
GoToErrDisengagingIdler(ErrorCode::FSENSOR_DIDNT_SWITCH_ON);
}
return false;
case ProgressCode::ERRInternal:
// firmware panic triggered
return true;
default: // we got into an unhandled state, better report it
state = ProgressCode::ERRInternal;
error = ErrorCode::INTERNAL;

View File

@ -159,6 +159,9 @@ bool UnloadFilament::StepInner() {
break;
case ProgressCode::OK:
return true; // successfully finished
case ProgressCode::ERRInternal:
// firmware panic triggered
return true;
default: // we got into an unhandled state, better report it
state = ProgressCode::ERRInternal;
error = ErrorCode::INTERNAL;