Prusa-MMU-Private
PrusaMultiMaterialUpgradev3firmwareforMK3SMK4
|
Sets the mode of TMC2130 for all motors at once. In the original proposal, the M0/M1 message was declared as a query, since it can be processed immediately. The reality is a bit different - the TMC2130 driver cannot change from SpreadCycle into StealthMode while moving the motor, at least not without serious jerking in most cases. Therefore the M0/M1 messages were reconsidered into a command, because only one command at a time can be performed (regardless of how long it takes it to finish) - that implies no motor moves are being performed while M0/M1 is being applied. More...
#include <set_mode.h>
Public Member Functions | |
bool | Reset (uint8_t param) 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 |
Sets the mode of TMC2130 for all motors at once. In the original proposal, the M0/M1 message was declared as a query, since it can be processed immediately. The reality is a bit different - the TMC2130 driver cannot change from SpreadCycle into StealthMode while moving the motor, at least not without serious jerking in most cases. Therefore the M0/M1 messages were reconsidered into a command, because only one command at a time can be performed (regardless of how long it takes it to finish) - that implies no motor moves are being performed while M0/M1 is being applied.
|
inlineoverridevirtual |
Implements logic::CommandBase.