bed_mesh: Added PROFILE name option (#4522)

Added optional PROFILE parameter to allow bed_mesh_calibrate to
save the mesh directly into the provided profile name instead of
default. If omitted, it will be stored in default.

Signed-off-by: Randell L Hodges <rhodges@taxfodder.com>
This commit is contained in:
Randell Hodges 2021-08-17 14:30:14 -05:00 committed by GitHub
parent 8ad5cbfff5
commit f313a2294a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 5 deletions

View File

@ -347,13 +347,17 @@ are identified in green.
### Calibration ### Calibration
`BED_MESH_CALIBRATE METHOD=[manual | automatic] [<probe_parameter>=<value>] `BED_MESH_CALIBRATE PROFILE=name METHOD=[manual | automatic] [<probe_parameter>=<value>]
[<mesh_parameter>=<value>]`\ [<mesh_parameter>=<value>]`\
_Default Profile: default_\
_Default Method: automatic if a probe is detected, otherwise manual_ _Default Method: automatic if a probe is detected, otherwise manual_
Initiates the probing procedure for Bed Mesh Calibration. If `METHOD=manual` Initiates the probing procedure for Bed Mesh Calibration.
is selected then manual probing will occur. When switching between automatic
and manual probing the generated mesh points will automatically be adjusted. The mesh will be saved into a profile specified by the `PROFILE` parameter,
or `default` if unspecified. If `METHOD=manual` is selected then manual probing
will occur. When switching between automatic and manual probing the generated
mesh points will automatically be adjusted.
It is possible to specify mesh parameters to modify the probed area. The It is possible to specify mesh parameters to modify the probed area. The
following parameters are available: following parameters are available:

View File

@ -265,6 +265,7 @@ class BedMeshCalibrate:
self.mesh_config = collections.OrderedDict() self.mesh_config = collections.OrderedDict()
self._init_mesh_config(config) self._init_mesh_config(config)
self._generate_points(config.error) self._generate_points(config.error)
self._profile_name = None
self.orig_points = self.points self.orig_points = self.points
self.probe_helper = probe.ProbePointsHelper( self.probe_helper = probe.ProbePointsHelper(
config, self.probe_finalize, self._get_adjusted_points()) config, self.probe_finalize, self._get_adjusted_points())
@ -573,6 +574,7 @@ class BedMeshCalibrate:
return adj_pts return adj_pts
cmd_BED_MESH_CALIBRATE_help = "Perform Mesh Bed Leveling" cmd_BED_MESH_CALIBRATE_help = "Perform Mesh Bed Leveling"
def cmd_BED_MESH_CALIBRATE(self, gcmd): def cmd_BED_MESH_CALIBRATE(self, gcmd):
self._profile_name = gcmd.get('PROFILE', "default")
self.bedmesh.set_mesh(None) self.bedmesh.set_mesh(None)
self.update_config(gcmd) self.update_config(gcmd)
self.probe_helper.start_probe(gcmd) self.probe_helper.start_probe(gcmd)
@ -693,7 +695,7 @@ class BedMeshCalibrate:
raise self.gcode.error(str(e)) raise self.gcode.error(str(e))
self.bedmesh.set_mesh(z_mesh) self.bedmesh.set_mesh(z_mesh)
self.gcode.respond_info("Mesh Bed Leveling Complete") self.gcode.respond_info("Mesh Bed Leveling Complete")
self.bedmesh.save_profile("default") self.bedmesh.save_profile(self._profile_name)
def _dump_points(self, probed_pts, corrected_pts, offsets): def _dump_points(self, probed_pts, corrected_pts, offsets):
# logs generated points with offset applied, points received # logs generated points with offset applied, points received
# from the finalize callback, and the list of corrected points # from the finalize callback, and the list of corrected points