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

A high-level command state machine - handles the complex logic of loading filament into a filament slot. More...

#include <load_filament.h>

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

Public Member Functions

bool Reset (uint8_t param) override
 
void ResetLimited (uint8_t param)
 
bool StepInner () override
 
virtual ResultCode Result () const override
 
- Public Member Functions inherited from logic::CommandBase
bool Step ()
 
virtual ProgressCode State () const
 
ProgressCode TopLevelState () const
 
virtual ErrorCode Error () 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 - handles the complex logic of loading filament into a filament slot.

Member Function Documentation

◆ Reset()

bool logic::LoadFilament::Reset ( uint8_t  param)
overridevirtual

Restart the automaton - performs unlimited rotation of the Pulley

Parameters
paramindex of filament slot to load

Implements logic::CommandBase.

◆ ResetLimited()

void logic::LoadFilament::ResetLimited ( uint8_t  param)

Restart the automaton for a limited rotation of the Pulley

Parameters
paramindex of filament slot to load

◆ Result()

virtual ResultCode logic::LoadFilament::Result ( ) const
inlineoverridevirtual
Returns
result of a command - only valid after the command finished its work. Default returned value is OK for all commands. So far there is only one example usage: LoadFilament can be terminated with a button -> Result will be Cancelled. The printer then can display "Loading cancelled"

Reimplemented from logic::CommandBase.

◆ StepInner()

bool logic::LoadFilament::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: