3 #include "../config/config.h"
17 inline constexpr
Idler()
18 : MovableBase(mm::Idler)
19 , plannedMove(Operation::disengage)
20 , currentlyEngaged(Operation::disengage) {}
44 inline bool Engaged()
const {
return currentlyEngaged == Operation::engage; }
45 inline bool Disengaged()
const {
return currentlyEngaged == Operation::disengage; }
46 inline bool PartiallyDisengaged()
const {
return currentlyEngaged == Operation::intermediate; }
68 virtual void PrepareMoveToPlannedSlot()
override;
69 virtual void PlanHomingMoveForward()
override;
70 virtual void PlanHomingMoveBack()
override;
72 virtual void FinishMove()
override;
76 enum class Operation : uint8_t {
85 Operation plannedMove;
88 Operation currentlyEngaged;
The Idler model handles asynchronnous Engaging / Disengaging operations and keeps track of idler's cu...
Definition: idler.h:15
OperationResult PartiallyDisengage(uint8_t slot)
Definition: idler.cpp:95
virtual bool FinishHomingAndPlanMoveToParkPos() override
Definition: idler.cpp:39
static constexpr mm::I_pos_t IntermediateSlotPosition(uint8_t slot)
Definition: idler.h:54
void Init()
Definition: idler.cpp:168
bool Engaged() const
Definition: idler.h:44
OperationResult Disengage()
Definition: idler.cpp:71
virtual bool StallGuardAllowed(bool forward) const override
Definition: idler.cpp:66
static constexpr mm::I_pos_t SlotPosition(uint8_t slot)
Definition: idler.h:49
static constexpr uint8_t IdleSlotIndex()
Definition: idler.h:59
OperationResult Engage(uint8_t slot)
Definition: idler.cpp:99
bool Step()
Definition: idler.cpp:134
Base class for movable modules - modules::idler::Idler and modules::selector::Selector contains the c...
Definition: movable_base.h:11
OperationResult
Operation (Engage/Disengage/MoveToSlot) return values.
Definition: movable_base.h:26
static constexpr U_deg idlerSlotPositions[toolCount+1]
Idler offset from home to slots.
Definition: config.h:208
static constexpr U_deg idlerIntermediateSlotPositions[toolCount+1]
Intermediate positions for Idler's slots: 0-4 are the real ones, the 5th index is the idle position.
Definition: config.h:218
static constexpr AxisConfig idler
End: Selector configuration.
Definition: config.h:186
static constexpr const uint8_t toolCount
Definition: config.h:24
The idler namespace provides all necessary facilities related to the logical model of the idler devic...
Definition: idler.cpp:11
Idler idler
The one and only instance of Idler in the FW.
Definition: idler.cpp:13
Definition: command_base.h:9
The modules namespace contains models of MMU's components.
Definition: command_base.h:8
Definition: axisunit.h:68