Prusa-MMU-Private
PrusaMultiMaterialUpgradev3firmwareforMK3SMK4
Public Member Functions | List of all members
logic::Home Class Reference

A high-level command state machine - wrapps the rehoming procedure to be used from a printer. More...

#include <home.h>

Inheritance diagram for logic::Home:
Inheritance graph
[legend]
Collaboration diagram for logic::Home:
Collaboration graph
[legend]

Public Member Functions

bool Reset (uint8_t) override
 Restart the automaton.
 
bool StepInner () override
 
- Public Member Functions inherited from logic::CommandBase
bool Step ()
 
virtual ProgressCode State () const
 
ProgressCode TopLevelState () const
 
virtual ErrorCode Error () const
 
virtual ResultCode Result () const
 
void Panic (ErrorCode ec)
 

Additional Inherited Members

- Static Public Member Functions inherited from logic::CommandBase
static void InvalidateHoming ()
 Invalidates homing state on Idler and Selector - doesn't change anything about filament load status.
 
static void InvalidateHomingAndFilamentState ()
 
static void HoldIdlerSelector ()
 Put Idler and Selector on-hold - they shall not move (not even home) until ResumeIdlerSelector is called.
 
static void ResumeIdlerSelector ()
 Allow Idler and Selector to move/home again. Any move needs to be newly planned.
 
- Protected Member Functions inherited from logic::CommandBase
bool CheckToolIndex (uint8_t index)
 
bool WaitForModulesErrorRecovery ()
 
bool WaitForOneModuleErrorRecovery (ErrorCode iState, modules::motion::MovableBase &m, uint8_t axisMask)
 
void ErrDisengagingIdler ()
 Perform disengaging idler in ErrDisengagingIdler state.
 
void GoToErrDisengagingIdler (ErrorCode deferredEC)
 Transit the state machine into ErrDisengagingIdler.
 
void GoToErrEngagingIdler ()
 Transit the state machine into ErrEngagingIdler.
 
void FinishedOK ()
 Process end of command which finished OK.
 
- Protected Attributes inherited from logic::CommandBase
ProgressCode state
 current progress state of the state machine
 
ErrorCode error
 current error code
 
ErrorCode deferredErrorCode
 planned error code - occurs when doing GoToErrDisengagingIdler - after the idler disengaged, the error is set (not before)
 
ProgressCode stateBeforeModuleFailed
 saved state of the state machine before a common error happened
 
ErrorCode errorBeforeModuleFailed
 saved error of the state machine before a common error happened
 
uint8_t recoveringMovableErrorAxisMask
 

Detailed Description

A high-level command state machine - wrapps the rehoming procedure to be used from a printer.

The home operation consists of:

Beware - Idler and Selector will NOT perform the homing moves if filament sensor state is not in the right state

Moreover - Idler and Selector try to home automagically a runtime when they know it is safe. This high-level command is just a way to invoke re-homing from the printer while all safety measures are kept.

Member Function Documentation

◆ StepInner()

bool logic::Home::StepInner ( )
overridevirtual
Returns
true if the state machine finished its job, false otherwise

Implements logic::CommandBase.


The documentation for this class was generated from the following files: