[2.0.x] Automatically reset stepper timeout (#10179)
* Automatically reset stepper timeout in manage_inactivity Any code that adds moves to the planner can skip resetting the stepper timeout. We can let `idle` / `manage_inactivity` reset the timer whenever it detects any moves in the planner. * blocks_queued => has_blocks_queued
This commit is contained in:
@ -43,7 +43,7 @@ GcodeSuite gcode;
|
||||
#include "../Marlin.h" // for idle() and suspend_auto_report
|
||||
|
||||
uint8_t GcodeSuite::target_extruder;
|
||||
millis_t GcodeSuite::previous_cmd_ms;
|
||||
millis_t GcodeSuite::previous_move_ms;
|
||||
|
||||
bool GcodeSuite::axis_relative_modes[] = AXIS_RELATIVE_MODES;
|
||||
|
||||
@ -121,8 +121,7 @@ void GcodeSuite::get_destination_from_command() {
|
||||
* Dwell waits immediately. It does not synchronize. Use M400 instead of G4
|
||||
*/
|
||||
void GcodeSuite::dwell(millis_t time) {
|
||||
refresh_cmd_timeout();
|
||||
time += previous_cmd_ms;
|
||||
time += millis();
|
||||
while (PENDING(millis(), time)) idle();
|
||||
}
|
||||
|
||||
@ -735,6 +734,8 @@ void GcodeSuite::process_next_command() {
|
||||
#endif
|
||||
}
|
||||
|
||||
reset_stepper_timeout(); // Keep steppers powered
|
||||
|
||||
// Parse the next command in the queue
|
||||
parser.parse(current_command);
|
||||
process_parsed_command();
|
||||
|
Reference in New Issue
Block a user