🏗️ Planner::busy() (#23145)
This commit is contained in:
		@@ -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
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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,
 | 
			
		||||
@@ -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();
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user