Split up endstop_move functions
This commit is contained in:
		@@ -1582,34 +1582,40 @@ inline void set_destination_to_current() { memcpy(destination, current_position,
 | 
				
			|||||||
//
 | 
					//
 | 
				
			||||||
//  - Save current feedrates
 | 
					//  - Save current feedrates
 | 
				
			||||||
//  - Reset the rate multiplier
 | 
					//  - Reset the rate multiplier
 | 
				
			||||||
//  - Enable the endstops
 | 
					 | 
				
			||||||
//  - Reset the command timeout
 | 
					//  - Reset the command timeout
 | 
				
			||||||
 | 
					//  - Enable the endstops (for endstop moves)
 | 
				
			||||||
//
 | 
					//
 | 
				
			||||||
// clean_up_after_endstop_move() restores
 | 
					// clean_up_after_endstop_move() restores
 | 
				
			||||||
// feedrates, sets endstops back to global state.
 | 
					// feedrates, sets endstops back to global state.
 | 
				
			||||||
//
 | 
					//
 | 
				
			||||||
static void setup_for_endstop_move() {
 | 
					static void setup_for_endstop_or_probe_move() {
 | 
				
			||||||
 | 
					  #if ENABLED(DEBUG_LEVELING_FEATURE)
 | 
				
			||||||
 | 
					    if (DEBUGGING(LEVELING)) DEBUG_POS("setup_for_endstop_or_probe_move", current_position);
 | 
				
			||||||
 | 
					  #endif
 | 
				
			||||||
  saved_feedrate = feedrate;
 | 
					  saved_feedrate = feedrate;
 | 
				
			||||||
  saved_feedrate_multiplier = feedrate_multiplier;
 | 
					  saved_feedrate_multiplier = feedrate_multiplier;
 | 
				
			||||||
  feedrate_multiplier = 100;
 | 
					  feedrate_multiplier = 100;
 | 
				
			||||||
  refresh_cmd_timeout();
 | 
					  refresh_cmd_timeout();
 | 
				
			||||||
  #if ENABLED(DEBUG_LEVELING_FEATURE)
 | 
					}
 | 
				
			||||||
    if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("setup_for_endstop_move > endstops.enable()");
 | 
					static void setup_for_endstop_move() {
 | 
				
			||||||
  #endif
 | 
					  setup_for_endstop_or_probe_move();
 | 
				
			||||||
  endstops.enable();
 | 
					  endstops.enable();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if HAS_BED_PROBE
 | 
					#if HAS_BED_PROBE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  static void clean_up_after_endstop_move() {
 | 
					  static void clean_up_after_endstop_or_probe_move() {
 | 
				
			||||||
    #if ENABLED(DEBUG_LEVELING_FEATURE)
 | 
					    #if ENABLED(DEBUG_LEVELING_FEATURE)
 | 
				
			||||||
      if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("clean_up_after_endstop_move > endstops.not_homing()");
 | 
					      if (DEBUGGING(LEVELING)) DEBUG_POS("clean_up_after_endstop_or_probe_move", current_position);
 | 
				
			||||||
    #endif
 | 
					    #endif
 | 
				
			||||||
    endstops.not_homing();
 | 
					 | 
				
			||||||
    feedrate = saved_feedrate;
 | 
					    feedrate = saved_feedrate;
 | 
				
			||||||
    feedrate_multiplier = saved_feedrate_multiplier;
 | 
					    feedrate_multiplier = saved_feedrate_multiplier;
 | 
				
			||||||
    refresh_cmd_timeout();
 | 
					    refresh_cmd_timeout();
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					  static void clean_up_after_endstop_move() {
 | 
				
			||||||
 | 
					    clean_up_after_endstop_or_probe_move();
 | 
				
			||||||
 | 
					    endstops.not_homing();
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  #if ENABLED(DELTA)
 | 
					  #if ENABLED(DELTA)
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
@@ -3475,7 +3481,7 @@ inline void gcode_G28() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    stepper.synchronize();
 | 
					    stepper.synchronize();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    setup_for_endstop_move();
 | 
					    setup_for_endstop_or_probe_move();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    feedrate = homing_feedrate[Z_AXIS];
 | 
					    feedrate = homing_feedrate[Z_AXIS];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -3589,7 +3595,7 @@ inline void gcode_G28() {
 | 
				
			|||||||
        if (DEBUGGING(LEVELING)) DEBUG_POS("> probing complete", current_position);
 | 
					        if (DEBUGGING(LEVELING)) DEBUG_POS("> probing complete", current_position);
 | 
				
			||||||
      #endif
 | 
					      #endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      clean_up_after_endstop_move();
 | 
					      clean_up_after_endstop_or_probe_move();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      #if ENABLED(DELTA)
 | 
					      #if ENABLED(DELTA)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -3715,7 +3721,7 @@ inline void gcode_G28() {
 | 
				
			|||||||
                                  ABL_PROBE_PT_3_Y + home_offset[Y_AXIS],
 | 
					                                  ABL_PROBE_PT_3_Y + home_offset[Y_AXIS],
 | 
				
			||||||
                                  current_position[Z_AXIS] + Z_RAISE_BETWEEN_PROBINGS,
 | 
					                                  current_position[Z_AXIS] + Z_RAISE_BETWEEN_PROBINGS,
 | 
				
			||||||
                                  p3, verbose_level);
 | 
					                                  p3, verbose_level);
 | 
				
			||||||
      clean_up_after_endstop_move();
 | 
					      clean_up_after_endstop_or_probe_move();
 | 
				
			||||||
      if (!dryrun) set_bed_level_equation_3pts(z_at_pt_1, z_at_pt_2, z_at_pt_3);
 | 
					      if (!dryrun) set_bed_level_equation_3pts(z_at_pt_1, z_at_pt_2, z_at_pt_3);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #endif // !AUTO_BED_LEVELING_GRID
 | 
					    #endif // !AUTO_BED_LEVELING_GRID
 | 
				
			||||||
@@ -3830,7 +3836,7 @@ inline void gcode_G28() {
 | 
				
			|||||||
   */
 | 
					   */
 | 
				
			||||||
  inline void gcode_G30() {
 | 
					  inline void gcode_G30() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    setup_for_endstop_move();
 | 
					    setup_for_endstop_or_probe_move();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    deploy_z_probe();
 | 
					    deploy_z_probe();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -3849,7 +3855,7 @@ inline void gcode_G28() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    stow_z_probe();
 | 
					    stow_z_probe();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    clean_up_after_endstop_move();
 | 
					    clean_up_after_endstop_or_probe_move();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    report_current_position();
 | 
					    report_current_position();
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
@@ -4259,7 +4265,7 @@ inline void gcode_M42() {
 | 
				
			|||||||
     * OK, do the initial probe to get us close to the bed.
 | 
					     * OK, do the initial probe to get us close to the bed.
 | 
				
			||||||
     * Then retrace the right amount and use that in subsequent probes
 | 
					     * Then retrace the right amount and use that in subsequent probes
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    setup_for_endstop_move();
 | 
					    setup_for_endstop_or_probe_move();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Height before each probe (except the first)
 | 
					    // Height before each probe (except the first)
 | 
				
			||||||
    float z_between = home_offset[Z_AXIS] + (deploy_probe_for_each_reading ? Z_RAISE_BEFORE_PROBING : Z_RAISE_BETWEEN_PROBINGS);
 | 
					    float z_between = home_offset[Z_AXIS] + (deploy_probe_for_each_reading ? Z_RAISE_BEFORE_PROBING : Z_RAISE_BETWEEN_PROBINGS);
 | 
				
			||||||
@@ -4413,7 +4419,7 @@ inline void gcode_M42() {
 | 
				
			|||||||
    SERIAL_PROTOCOL_F(sigma, 6);
 | 
					    SERIAL_PROTOCOL_F(sigma, 6);
 | 
				
			||||||
    SERIAL_EOL; SERIAL_EOL;
 | 
					    SERIAL_EOL; SERIAL_EOL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    clean_up_after_endstop_move();
 | 
					    clean_up_after_endstop_or_probe_move();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    report_current_position();
 | 
					    report_current_position();
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user