Add reporting to M290 (#15376)
This commit is contained in:
parent
e942b352c6
commit
0ca6abce72
3 changed files with 60 additions and 28 deletions
|
@ -36,13 +36,10 @@
|
|||
Babystep babystep;
|
||||
|
||||
volatile int16_t Babystep::steps[BS_TODO_AXIS(Z_AXIS) + 1];
|
||||
|
||||
#if HAS_LCD_MENU || ENABLED(EXTENSIBLE_UI)
|
||||
int16_t Babystep::accum;
|
||||
#if ENABLED(BABYSTEP_DISPLAY_TOTAL)
|
||||
int16_t Babystep::axis_total[BS_TOTAL_AXIS(Z_AXIS) + 1];
|
||||
#endif
|
||||
#if ENABLED(BABYSTEP_DISPLAY_TOTAL)
|
||||
int16_t Babystep::axis_total[BS_TOTAL_AXIS(Z_AXIS) + 1];
|
||||
#endif
|
||||
int16_t Babystep::accum;
|
||||
|
||||
void Babystep::step_axis(const AxisEnum axis) {
|
||||
const int16_t curTodo = steps[BS_TODO_AXIS(axis)]; // get rid of volatile for performance
|
||||
|
@ -75,11 +72,9 @@ void Babystep::add_steps(const AxisEnum axis, const int16_t distance) {
|
|||
|
||||
if (!CAN_BABYSTEP(axis)) return;
|
||||
|
||||
#if HAS_LCD_MENU || ENABLED(EXTENSIBLE_UI)
|
||||
accum += distance; // Count up babysteps for the UI
|
||||
#if ENABLED(BABYSTEP_DISPLAY_TOTAL)
|
||||
axis_total[BS_TOTAL_AXIS(axis)] += distance;
|
||||
#endif
|
||||
accum += distance; // Count up babysteps for the UI
|
||||
#if ENABLED(BABYSTEP_DISPLAY_TOTAL)
|
||||
axis_total[BS_TOTAL_AXIS(axis)] += distance;
|
||||
#endif
|
||||
|
||||
#if ENABLED(BABYSTEP_ALWAYS_AVAILABLE)
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
#define BS_TODO_AXIS(A) 0
|
||||
#endif
|
||||
|
||||
#if (HAS_LCD_MENU || ENABLED(EXTENSIBLE_UI)) && ENABLED(BABYSTEP_DISPLAY_TOTAL)
|
||||
#if ENABLED(BABYSTEP_DISPLAY_TOTAL)
|
||||
#if ENABLED(BABYSTEP_XY)
|
||||
#define BS_TOTAL_AXIS(A) A
|
||||
#else
|
||||
|
@ -40,22 +40,17 @@
|
|||
class Babystep {
|
||||
public:
|
||||
static volatile int16_t steps[BS_TODO_AXIS(Z_AXIS) + 1];
|
||||
static int16_t accum; // Total babysteps in current edit
|
||||
|
||||
#if HAS_LCD_MENU || ENABLED(EXTENSIBLE_UI)
|
||||
|
||||
static int16_t accum; // Total babysteps in current edit
|
||||
|
||||
#if ENABLED(BABYSTEP_DISPLAY_TOTAL)
|
||||
static int16_t axis_total[BS_TOTAL_AXIS(Z_AXIS) + 1]; // Total babysteps since G28
|
||||
static inline void reset_total(const AxisEnum axis) {
|
||||
if (true
|
||||
#if ENABLED(BABYSTEP_XY)
|
||||
&& axis == Z_AXIS
|
||||
#endif
|
||||
) axis_total[BS_TOTAL_AXIS(axis)] = 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if ENABLED(BABYSTEP_DISPLAY_TOTAL)
|
||||
static int16_t axis_total[BS_TOTAL_AXIS(Z_AXIS) + 1]; // Total babysteps since G28
|
||||
static inline void reset_total(const AxisEnum axis) {
|
||||
if (true
|
||||
#if ENABLED(BABYSTEP_XY)
|
||||
&& axis == Z_AXIS
|
||||
#endif
|
||||
) axis_total[BS_TOTAL_AXIS(axis)] = 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
static void add_steps(const AxisEnum axis, const int16_t distance);
|
||||
|
|
|
@ -34,6 +34,10 @@
|
|||
#include "../../core/serial.h"
|
||||
#endif
|
||||
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#include "../../feature/bedlevel/bedlevel.h"
|
||||
#endif
|
||||
|
||||
#if ENABLED(BABYSTEP_ZPROBE_OFFSET)
|
||||
|
||||
FORCE_INLINE void mod_zprobe_zoffset(const float &offs) {
|
||||
|
@ -60,13 +64,15 @@
|
|||
/**
|
||||
* M290: Babystepping
|
||||
*
|
||||
* Send 'R' or no parameters for a report.
|
||||
*
|
||||
* X<linear> - Distance to step X
|
||||
* Y<linear> - Distance to step Y
|
||||
* Z<linear> - Distance to step Z
|
||||
* S<linear> - Distance to step Z (alias for Z)
|
||||
*
|
||||
* With BABYSTEP_ZPROBE_OFFSET:
|
||||
* P0 - Don't adjust the Z probe offset.
|
||||
* P0 - Don't adjust the Z probe offset
|
||||
*/
|
||||
void GcodeSuite::M290() {
|
||||
#if ENABLED(BABYSTEP_XY)
|
||||
|
@ -87,6 +93,42 @@ void GcodeSuite::M290() {
|
|||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
if (!parser.seen("XYZ") || parser.seen('R')) {
|
||||
SERIAL_ECHO_START();
|
||||
|
||||
#if ENABLED(BABYSTEP_ZPROBE_OFFSET)
|
||||
SERIAL_ECHOLNPAIR(MSG_PROBE_OFFSET " " MSG_Z, probe_offset[Z_AXIS]);
|
||||
#endif
|
||||
|
||||
#if ENABLED(BABYSTEP_HOTEND_Z_OFFSET)
|
||||
{
|
||||
SERIAL_ECHOLNPAIR("Hotend ", int(active_extruder), "Offset"
|
||||
#if ENABLED(BABYSTEP_XY)
|
||||
" X", hotend_offset[X_AXIS][active_extruder],
|
||||
" Y", hotend_offset[Y_AXIS][active_extruder],
|
||||
#endif
|
||||
" Z", hotend_offset[Z_AXIS][active_extruder]
|
||||
);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
SERIAL_ECHOLNPAIR("MBL Adjust Z", mbl.z_offset);
|
||||
#endif
|
||||
|
||||
#if ENABLED(BABYSTEP_DISPLAY_TOTAL)
|
||||
{
|
||||
SERIAL_ECHOLNPAIR("Babystep"
|
||||
#if ENABLED(BABYSTEP_XY)
|
||||
" X", babystep.axis_total[X_AXIS],
|
||||
" Y", babystep.axis_total[Y_AXIS],
|
||||
#endif
|
||||
" Z", babystep.axis_total[Z_AXIS]
|
||||
);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
#endif // BABYSTEPPING
|
||||
|
|
Reference in a new issue