Skip to content
This repository has been archived by the owner on Jul 1, 2022. It is now read-only.

Commit

Permalink
🏗️ Planner::busy() (MarlinFirmware#23145)
Browse files Browse the repository at this point in the history
  • Loading branch information
espr14 authored and 0xk1f0 committed Dec 26, 2021
1 parent 13f2196 commit a40ad56
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 10 deletions.
12 changes: 2 additions & 10 deletions Marlin/src/module/planner.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -91,10 +91,6 @@
#include "../feature/power.h"
#endif

#if ENABLED(EXTERNAL_CLOSED_LOOP_CONTROLLER)
#include "../feature/closedloop.h"
#endif

#if ENABLED(BACKLASH_COMPENSATION)
#include "../feature/backlash.h"
#endif
Expand Down Expand Up @@ -1763,13 +1759,9 @@ float Planner::get_axis_position_mm(const AxisEnum axis) {
}

/**
* Block until all buffered steps are executed / cleaned
* Block until the planner is finished processing
*/
void Planner::synchronize() {
while (has_blocks_queued() || cleaning_buffer_counter
|| TERN0(EXTERNAL_CLOSED_LOOP_CONTROLLER, CLOSED_LOOP_WAITING())
) idle();
}
void Planner::synchronize() { while (busy()) idle(); }

/**
* Planner::_buffer_steps
Expand Down
11 changes: 11 additions & 0 deletions Marlin/src/module/planner.h
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,10 @@
#define IS_PAGE(B) false
#endif

#if ENABLED(EXTERNAL_CLOSED_LOOP_CONTROLLER)
#include "../feature/closedloop.h"
#endif

// Feedrate for manual moves
#ifdef MANUAL_FEEDRATE
constexpr xyze_feedrate_t _mf = MANUAL_FEEDRATE,
Expand Down Expand Up @@ -865,6 +869,13 @@ class Planner {
// Triggered position of an axis in mm (not core-savvy)
static float triggered_position_mm(const AxisEnum axis);

// Blocks are queued, or we're running out moves, or the closed loop controller is waiting
static inline bool busy() {
return (has_blocks_queued() || cleaning_buffer_counter
|| TERN0(EXTERNAL_CLOSED_LOOP_CONTROLLER, CLOSED_LOOP_WAITING())
);
}

// Block until all buffered steps are executed / cleaned
static void synchronize();

Expand Down

0 comments on commit a40ad56

Please sign in to comment.