bed_mesh: add get_status() method
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
This commit is contained in:
parent
8ecec4be8e
commit
6458def588
|
@ -175,6 +175,27 @@ class BedMesh:
|
||||||
raise self.gcode.error(
|
raise self.gcode.error(
|
||||||
"Mesh Leveling: Error splitting move ")
|
"Mesh Leveling: Error splitting move ")
|
||||||
self.last_position[:] = newpos
|
self.last_position[:] = newpos
|
||||||
|
def get_status(self, eventtime=None):
|
||||||
|
status = {
|
||||||
|
"profile_name": "",
|
||||||
|
"mesh_min": (0., 0.),
|
||||||
|
"mesh_max": (0., 0.),
|
||||||
|
"probed_matrix": [[]],
|
||||||
|
"mesh_matrix": [[]]
|
||||||
|
}
|
||||||
|
if self.z_mesh is not None:
|
||||||
|
params = self.z_mesh.mesh_params
|
||||||
|
mesh_min = (params['min_x'], params['min_y'])
|
||||||
|
mesh_max = (params['max_x'], params['max_y'])
|
||||||
|
probed_matrix = [[round(z, 6) for z in line]
|
||||||
|
for line in self.bmc.probed_matrix]
|
||||||
|
mesh_matrix = self.z_mesh.get_mesh_matrix()
|
||||||
|
status['profile_name'] = self.bmc.current_profile
|
||||||
|
status['mesh_min'] = mesh_min
|
||||||
|
status['mesh_max'] = mesh_max
|
||||||
|
status['probed_matrix'] = probed_matrix
|
||||||
|
status['mesh_matrix'] = mesh_matrix
|
||||||
|
return status
|
||||||
cmd_BED_MESH_OUTPUT_help = "Retrieve interpolated grid of probed z-points"
|
cmd_BED_MESH_OUTPUT_help = "Retrieve interpolated grid of probed z-points"
|
||||||
def cmd_BED_MESH_OUTPUT(self, gcmd):
|
def cmd_BED_MESH_OUTPUT(self, gcmd):
|
||||||
if gcmd.get_int('PGP', 0):
|
if gcmd.get_int('PGP', 0):
|
||||||
|
@ -206,6 +227,7 @@ class BedMeshCalibrate:
|
||||||
def __init__(self, config, bedmesh):
|
def __init__(self, config, bedmesh):
|
||||||
self.printer = config.get_printer()
|
self.printer = config.get_printer()
|
||||||
self.name = config.get_name()
|
self.name = config.get_name()
|
||||||
|
self.current_profile = ""
|
||||||
self.radius = self.origin = None
|
self.radius = self.origin = None
|
||||||
self.relative_reference_index = config.getint(
|
self.relative_reference_index = config.getint(
|
||||||
'relative_reference_index', None)
|
'relative_reference_index', None)
|
||||||
|
@ -433,6 +455,7 @@ class BedMeshCalibrate:
|
||||||
zmesh.build_mesh(self.probed_matrix)
|
zmesh.build_mesh(self.probed_matrix)
|
||||||
except BedMeshError as e:
|
except BedMeshError as e:
|
||||||
raise self.gcode.error(e.message)
|
raise self.gcode.error(e.message)
|
||||||
|
self.current_profile = prof_name
|
||||||
self.bedmesh.set_mesh(zmesh)
|
self.bedmesh.set_mesh(zmesh)
|
||||||
def remove_profile(self, prof_name):
|
def remove_profile(self, prof_name):
|
||||||
if prof_name in self.profiles:
|
if prof_name in self.profiles:
|
||||||
|
@ -550,6 +573,7 @@ class BedMeshCalibrate:
|
||||||
mesh.build_mesh(self.probed_matrix)
|
mesh.build_mesh(self.probed_matrix)
|
||||||
except BedMeshError as e:
|
except BedMeshError as e:
|
||||||
raise self.gcode.error(e.message)
|
raise self.gcode.error(e.message)
|
||||||
|
self.current_profile = "default"
|
||||||
self.bedmesh.set_mesh(mesh)
|
self.bedmesh.set_mesh(mesh)
|
||||||
self.gcode.respond_info("Mesh Bed Leveling Complete")
|
self.gcode.respond_info("Mesh Bed Leveling Complete")
|
||||||
self.save_profile("default")
|
self.save_profile("default")
|
||||||
|
@ -655,8 +679,14 @@ class ZMesh:
|
||||||
(self.mesh_x_count - 1)
|
(self.mesh_x_count - 1)
|
||||||
self.mesh_y_dist = (self.mesh_y_max - self.mesh_y_min) / \
|
self.mesh_y_dist = (self.mesh_y_max - self.mesh_y_min) / \
|
||||||
(self.mesh_y_count - 1)
|
(self.mesh_y_count - 1)
|
||||||
def print_mesh(self, print_func, move_z=None):
|
def get_mesh_matrix(self):
|
||||||
if self.mesh_matrix is not None:
|
if self.mesh_matrix is not None:
|
||||||
|
return [[round(z + self.mesh_offset, 6) for z in line]
|
||||||
|
for line in self.mesh_matrix]
|
||||||
|
return None
|
||||||
|
def print_mesh(self, print_func, move_z=None):
|
||||||
|
matrix = self.get_mesh_matrix()
|
||||||
|
if matrix is not None:
|
||||||
msg = "Mesh X,Y: %d,%d\n" % (self.mesh_x_count, self.mesh_y_count)
|
msg = "Mesh X,Y: %d,%d\n" % (self.mesh_x_count, self.mesh_y_count)
|
||||||
if move_z is not None:
|
if move_z is not None:
|
||||||
msg += "Search Height: %d\n" % (move_z)
|
msg += "Search Height: %d\n" % (move_z)
|
||||||
|
@ -667,8 +697,8 @@ class ZMesh:
|
||||||
% (self.mesh_params['algo'])
|
% (self.mesh_params['algo'])
|
||||||
msg += "Measured points:\n"
|
msg += "Measured points:\n"
|
||||||
for y_line in range(self.mesh_y_count - 1, -1, -1):
|
for y_line in range(self.mesh_y_count - 1, -1, -1):
|
||||||
for z in self.mesh_matrix[y_line]:
|
for z in matrix[y_line]:
|
||||||
msg += " %f" % (z + self.mesh_offset)
|
msg += " %f" % (z)
|
||||||
msg += "\n"
|
msg += "\n"
|
||||||
print_func(msg)
|
print_func(msg)
|
||||||
else:
|
else:
|
||||||
|
|
Loading…
Reference in New Issue