void wait_for_empty_queue();
bool is_queue_empty() { return queue.is_empty(); };
+ bool is_queue_full() { return queue.is_full(); };
void ensure_running(void);
void dump_queue(void);
void flush_queue(void);
bool is_flushing() const { return flush; }
-
+ float get_current_feedrate() const { return current_feedrate; }
friend class Planner; // for queue
private:
typedef HeapRing<Block> Queue_t;
Queue_t queue; // Queue of Blocks
+ volatile unsigned int gc_pending;
+ float current_feedrate{0}; // actual nominal feedrate that current block is running at in mm/sec
struct {
volatile bool running:1;
volatile bool flush:1;
+ volatile bool halted:1;
};
- volatile unsigned int gc_pending;
};
#endif // CONVEYOR_H