Merge pull request #4958 from bgort/m48_improvements
Improve M48 output; Add min, max, range, etc.
This commit is contained in:
		
						commit
						30fee51e86
					
				
							
								
								
									
										37
									
								
								Marlin/Marlin_main.cpp
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										37
									
								
								Marlin/Marlin_main.cpp
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							| @ -4681,7 +4681,7 @@ inline void gcode_M42() { | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     if (verbose_level > 0) |     if (verbose_level > 0) | ||||||
|       SERIAL_PROTOCOLLNPGM("M48 Z-Probe Repeatability test"); |       SERIAL_PROTOCOLLNPGM("M48 Z-Probe Repeatability Test"); | ||||||
| 
 | 
 | ||||||
|     int8_t n_samples = code_seen('P') ? code_value_byte() : 10; |     int8_t n_samples = code_seen('P') ? code_value_byte() : 10; | ||||||
|     if (n_samples < 4 || n_samples > 50) { |     if (n_samples < 4 || n_samples > 50) { | ||||||
| @ -4747,7 +4747,8 @@ inline void gcode_M42() { | |||||||
| 
 | 
 | ||||||
|     randomSeed(millis()); |     randomSeed(millis()); | ||||||
| 
 | 
 | ||||||
|     double mean = 0, sigma = 0, sample_set[n_samples]; |     double mean = 0.0, sigma = 0.0, min = 99999.9, max = -99999.9, sample_set[n_samples]; | ||||||
|  | 
 | ||||||
|     for (uint8_t n = 0; n < n_samples; n++) { |     for (uint8_t n = 0; n < n_samples; n++) { | ||||||
|       if (n_legs) { |       if (n_legs) { | ||||||
|         int dir = (random(0, 10) > 5.0) ? -1 : 1;  // clockwise or counter clockwise
 |         int dir = (random(0, 10) > 5.0) ? -1 : 1;  // clockwise or counter clockwise
 | ||||||
| @ -4817,7 +4818,7 @@ inline void gcode_M42() { | |||||||
|       } // n_legs
 |       } // n_legs
 | ||||||
| 
 | 
 | ||||||
|       // Probe a single point
 |       // Probe a single point
 | ||||||
|       sample_set[n] = probe_pt(X_probe_location, Y_probe_location, stow_probe_after_each, verbose_level); |       sample_set[n] = probe_pt(X_probe_location, Y_probe_location, stow_probe_after_each, 0); | ||||||
| 
 | 
 | ||||||
|       /**
 |       /**
 | ||||||
|        * Get the current mean for the data points we have so far |        * Get the current mean for the data points we have so far | ||||||
| @ -4826,6 +4827,9 @@ inline void gcode_M42() { | |||||||
|       for (uint8_t j = 0; j <= n; j++) sum += sample_set[j]; |       for (uint8_t j = 0; j <= n; j++) sum += sample_set[j]; | ||||||
|       mean = sum / (n + 1); |       mean = sum / (n + 1); | ||||||
| 
 | 
 | ||||||
|  |       if(sample_set[n] < min) min = sample_set[n]; | ||||||
|  |       if(sample_set[n] > max) max = sample_set[n]; | ||||||
|  | 
 | ||||||
|       /**
 |       /**
 | ||||||
|        * Now, use that mean to calculate the standard deviation for the |        * Now, use that mean to calculate the standard deviation for the | ||||||
|        * data points we have so far |        * data points we have so far | ||||||
| @ -4840,13 +4844,19 @@ inline void gcode_M42() { | |||||||
|           SERIAL_PROTOCOL(n + 1); |           SERIAL_PROTOCOL(n + 1); | ||||||
|           SERIAL_PROTOCOLPGM(" of "); |           SERIAL_PROTOCOLPGM(" of "); | ||||||
|           SERIAL_PROTOCOL((int)n_samples); |           SERIAL_PROTOCOL((int)n_samples); | ||||||
|           SERIAL_PROTOCOLPGM("   z: "); |           SERIAL_PROTOCOLPGM(": z: "); | ||||||
|           SERIAL_PROTOCOL_F(current_position[Z_AXIS], 6); |           SERIAL_PROTOCOL_F(sample_set[n], 3); | ||||||
|           if (verbose_level > 2) { |           if (verbose_level > 2) { | ||||||
|             SERIAL_PROTOCOLPGM(" mean: "); |             SERIAL_PROTOCOLPGM(" mean: "); | ||||||
|             SERIAL_PROTOCOL_F(mean, 6); |             SERIAL_PROTOCOL_F(mean, 4); | ||||||
|             SERIAL_PROTOCOLPGM("   sigma: "); |             SERIAL_PROTOCOLPGM(" sigma: "); | ||||||
|             SERIAL_PROTOCOL_F(sigma, 6); |             SERIAL_PROTOCOL_F(sigma, 6); | ||||||
|  |             SERIAL_PROTOCOLPGM(" min: "); | ||||||
|  |             SERIAL_PROTOCOL_F(min, 3); | ||||||
|  |             SERIAL_PROTOCOLPGM(" max: "); | ||||||
|  |             SERIAL_PROTOCOL_F(max, 3); | ||||||
|  |             SERIAL_PROTOCOLPGM(" range: "); | ||||||
|  |             SERIAL_PROTOCOL_F(max-min, 3); | ||||||
|           } |           } | ||||||
|         } |         } | ||||||
|         SERIAL_EOL; |         SERIAL_EOL; | ||||||
| @ -4856,15 +4866,26 @@ inline void gcode_M42() { | |||||||
| 
 | 
 | ||||||
|     if (STOW_PROBE()) return; |     if (STOW_PROBE()) return; | ||||||
| 
 | 
 | ||||||
|  |     SERIAL_PROTOCOLPGM("Finished!"); | ||||||
|  |     SERIAL_EOL; | ||||||
|  | 
 | ||||||
|     if (verbose_level > 0) { |     if (verbose_level > 0) { | ||||||
|       SERIAL_PROTOCOLPGM("Mean: "); |       SERIAL_PROTOCOLPGM("Mean: "); | ||||||
|       SERIAL_PROTOCOL_F(mean, 6); |       SERIAL_PROTOCOL_F(mean, 6); | ||||||
|  |       SERIAL_PROTOCOLPGM(" Min: "); | ||||||
|  |       SERIAL_PROTOCOL_F(min, 3); | ||||||
|  |       SERIAL_PROTOCOLPGM(" Max: "); | ||||||
|  |       SERIAL_PROTOCOL_F(max, 3); | ||||||
|  |       SERIAL_PROTOCOLPGM(" Range: "); | ||||||
|  |       SERIAL_PROTOCOL_F(max-min, 3); | ||||||
|       SERIAL_EOL; |       SERIAL_EOL; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     SERIAL_PROTOCOLPGM("Standard Deviation: "); |     SERIAL_PROTOCOLPGM("Standard Deviation: "); | ||||||
|     SERIAL_PROTOCOL_F(sigma, 6); |     SERIAL_PROTOCOL_F(sigma, 6); | ||||||
|     SERIAL_EOL; SERIAL_EOL; |     SERIAL_EOL; | ||||||
|  | 
 | ||||||
|  |     SERIAL_EOL; | ||||||
| 
 | 
 | ||||||
|     clean_up_after_endstop_or_probe_move(); |     clean_up_after_endstop_or_probe_move(); | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user