From 7f4e4b1212a6d18b18d3d032bed718f92af942f1 Mon Sep 17 00:00:00 2001
From: Scott Lahteine <github@thinkyhead.com>
Date: Tue, 16 May 2017 02:34:36 -0500
Subject: [PATCH] UBL name/state methods
---
Marlin/Marlin_main.cpp | 10 +++----
Marlin/configuration_store.cpp | 50 +++++++++++++++++++---------------
Marlin/ubl.cpp | 10 +++++++
Marlin/ubl.h | 2 ++
Marlin/ubl_G29.cpp | 43 +++++++++--------------------
5 files changed, 58 insertions(+), 57 deletions(-)
diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp
index 0d7e249297..3ec817abfa 100644
--- a/Marlin/Marlin_main.cpp
+++ b/Marlin/Marlin_main.cpp
@@ -3940,7 +3940,7 @@ void home_all_axes() { gcode_G28(true); }
#if ENABLED(MESH_BED_LEVELING)
// Save 130 bytes with non-duplication of PSTR
- void say_not_entered() { SERIAL_PROTOCOLLNPGM(" not entered."); }
+ void echo_not_entered() { SERIAL_PROTOCOLLNPGM(" not entered."); }
void mbl_mesh_report() {
SERIAL_PROTOCOLLNPGM("Num X,Y: " STRINGIFY(GRID_MAX_POINTS_X) "," STRINGIFY(GRID_MAX_POINTS_Y));
@@ -4071,7 +4071,7 @@ void home_all_axes() { gcode_G28(true); }
}
}
else {
- SERIAL_CHAR('X'); say_not_entered();
+ SERIAL_CHAR('X'); echo_not_entered();
return;
}
@@ -4083,7 +4083,7 @@ void home_all_axes() { gcode_G28(true); }
}
}
else {
- SERIAL_CHAR('Y'); say_not_entered();
+ SERIAL_CHAR('Y'); echo_not_entered();
return;
}
@@ -4091,7 +4091,7 @@ void home_all_axes() { gcode_G28(true); }
mbl.z_values[px][py] = code_value_linear_units();
}
else {
- SERIAL_CHAR('Z'); say_not_entered();
+ SERIAL_CHAR('Z'); echo_not_entered();
return;
}
break;
@@ -4101,7 +4101,7 @@ void home_all_axes() { gcode_G28(true); }
mbl.z_offset = code_value_linear_units();
}
else {
- SERIAL_CHAR('Z'); say_not_entered();
+ SERIAL_CHAR('Z'); echo_not_entered();
return;
}
break;
diff --git a/Marlin/configuration_store.cpp b/Marlin/configuration_store.cpp
index 6ca18b0d8e..4ea56ff6f8 100644
--- a/Marlin/configuration_store.cpp
+++ b/Marlin/configuration_store.cpp
@@ -425,7 +425,7 @@ void MarlinSettings::postprocess() {
EEPROM_WRITE(ubl.state.z_offset);
EEPROM_WRITE(ubl.state.storage_slot);
#else
- const bool ubl_active = 0;
+ const bool ubl_active = false;
dummy = 0.0f;
const int8_t storage_slot = -1;
EEPROM_WRITE(ubl_active);
@@ -991,18 +991,20 @@ void MarlinSettings::postprocess() {
}
#if ENABLED(AUTO_BED_LEVELING_UBL)
- meshes_begin = (eeprom_index + 32) & 0xFFF8; // Pad the end of configuration data so it
- // can float up or down a little bit without
- // disrupting the mesh data
- SERIAL_ECHOPGM(" UBL ");
- if (!ubl.state.active) SERIAL_ECHO("not ");
- SERIAL_ECHOLNPGM("active!");
+ meshes_begin = (eeprom_index + 32) & 0xFFF8; // Pad the end of configuration data so it
+ // can float up or down a little bit without
+ // disrupting the mesh data
+ ubl.report_state();
if (!ubl.sanity_check()) {
- SERIAL_ECHOLNPGM("\nUnified Bed Leveling system initialized.\n");
+ SERIAL_EOL;
+ ubl.echo_name();
+ SERIAL_ECHOLNPGM(" initialized.\n");
}
else {
- SERIAL_PROTOCOLPGM("?Unable to enable Unified Bed Leveling system.\n");
+ SERIAL_PROTOCOLPGM("?Can't enable ");
+ ubl.echo_name();
+ SERIAL_PROTOCOLLNPGM(".");
ubl.reset();
}
@@ -1028,6 +1030,12 @@ void MarlinSettings::postprocess() {
#if ENABLED(AUTO_BED_LEVELING_UBL)
+ void ubl_invalid_slot(const int s) {
+ SERIAL_PROTOCOLLNPGM("?Invalid slot.");
+ SERIAL_PROTOCOL(s);
+ SERIAL_PROTOCOLLNPGM(" mesh slots available.");
+ }
+
int MarlinSettings::calc_num_meshes() {
//obviously this will get more sophisticated once we've added an actual MAT
@@ -1041,12 +1049,10 @@ void MarlinSettings::postprocess() {
#if ENABLED(AUTO_BED_LEVELING_UBL)
const int a = calc_num_meshes();
if (!WITHIN(slot, 0, a - 1)) {
- SERIAL_PROTOCOLLNPGM("?Invalid slot.");
- SERIAL_PROTOCOL(a);
- SERIAL_PROTOCOLLNPGM(" mesh slots available.");
- SERIAL_PROTOCOLLNPAIR("E2END : ", E2END);
- SERIAL_PROTOCOLLNPAIR("meshes_end : ", (int)meshes_end);
- SERIAL_PROTOCOLLNPAIR("slot : ", slot);
+ ubl_invalid_slot(a);
+ SERIAL_PROTOCOLPAIR("E2END=", E2END);
+ SERIAL_PROTOCOLPAIR(" meshes_end=", (int)meshes_end);
+ SERIAL_PROTOCOLLNPAIR(" slot=", slot);
SERIAL_EOL;
return;
}
@@ -1074,9 +1080,7 @@ void MarlinSettings::postprocess() {
const int16_t a = settings.calc_num_meshes();
if (!WITHIN(slot, 0, a - 1)) {
- SERIAL_PROTOCOLLNPGM("?Invalid Slot.");
- SERIAL_PROTOCOL(a);
- SERIAL_PROTOCOLLNPGM(" mesh slots available.");
+ ubl_invalid_slot(a);
return;
}
@@ -1538,7 +1542,8 @@ void MarlinSettings::reset() {
if (!forReplay) {
CONFIG_ECHO_START;
- SERIAL_ECHOLNPGM("Unified Bed Leveling:");
+ ubl.echo_name();
+ SERIAL_ECHOLNPGM(":");
}
CONFIG_ECHO_START;
SERIAL_ECHOPAIR(" M420 S", ubl.state.active ? 1 : 0);
@@ -1548,9 +1553,10 @@ void MarlinSettings::reset() {
SERIAL_EOL;
if (!forReplay) {
- SERIAL_ECHOPGM("\nUBL is ");
- ubl.state.active ? SERIAL_CHAR('A') : SERIAL_ECHOPGM("Ina");
- SERIAL_ECHOLNPAIR("ctive\n\nActive Mesh Slot: ", ubl.state.storage_slot);
+ SERIAL_EOL;
+ ubl.report_state();
+
+ SERIAL_ECHOLNPAIR("\nActive Mesh Slot: ", ubl.state.storage_slot);
SERIAL_ECHOPGM("z_offset: ");
SERIAL_ECHO_F(ubl.state.z_offset, 6);
diff --git a/Marlin/ubl.cpp b/Marlin/ubl.cpp
index b4ee7d2382..8ca43c5be1 100644
--- a/Marlin/ubl.cpp
+++ b/Marlin/ubl.cpp
@@ -41,6 +41,16 @@
uint8_t ubl_cnt = 0;
+ void unified_bed_leveling::echo_name() { SERIAL_PROTOCOLPGM("Unified Bed Leveling"); }
+
+ void unified_bed_leveling::report_state() {
+ echo_name();
+ SERIAL_PROTOCOLPGM(" System v" UBL_VERSION " ");
+ if (!state.active) SERIAL_PROTOCOLPGM("in");
+ SERIAL_PROTOCOLLNPGM("active.");
+ safe_delay(50);
+ }
+
static void serial_echo_xy(const int16_t x, const int16_t y) {
SERIAL_CHAR('(');
SERIAL_ECHO(x);
diff --git a/Marlin/ubl.h b/Marlin/ubl.h
index 7ad191f6d2..b1a6b9f7ee 100644
--- a/Marlin/ubl.h
+++ b/Marlin/ubl.h
@@ -103,6 +103,8 @@
public:
+ void echo_name();
+ void report_state();
void find_mean_mesh_height();
void shift_mesh_height();
void probe_entire_mesh(const float &lx, const float &ly, const bool do_ubl_mesh_map, const bool stow_probe, bool do_furthest);
diff --git a/Marlin/ubl_G29.cpp b/Marlin/ubl_G29.cpp
index 493ee1d881..4c14322cb3 100644
--- a/Marlin/ubl_G29.cpp
+++ b/Marlin/ubl_G29.cpp
@@ -906,7 +906,7 @@
return current_position[Z_AXIS];
}
- static void say_and_take_a_measurement() {
+ static void echo_and_take_a_measurement() {
SERIAL_PROTOCOLLNPGM(" and take a measurement.");
}
@@ -922,15 +922,15 @@
SERIAL_PROTOCOLPGM("Place shim under nozzle");
LCD_MESSAGEPGM("Place shim & measure");
lcd_goto_screen(lcd_status_screen);
- say_and_take_a_measurement();
+ echo_and_take_a_measurement();
const float z1 = use_encoder_wheel_to_measure_point();
do_blocking_move_to_z(current_position[Z_AXIS] + SIZE_OF_LITTLE_RAISE);
stepper.synchronize();
SERIAL_PROTOCOLPGM("Remove shim");
- LCD_MESSAGEPGM("Remove & measure bed");
- say_and_take_a_measurement();
+ LCD_MESSAGEPGM("Remove & measure bed"); // TODO: Make translatable string
+ echo_and_take_a_measurement();
const float z2 = use_encoder_wheel_to_measure_point();
@@ -1031,17 +1031,6 @@
do_blocking_move_to_xy(lx, ly);
}
- static void say_ubl_name() {
- SERIAL_PROTOCOLPGM("Unified Bed Leveling ");
- }
-
- static void report_ubl_state() {
- say_ubl_name();
- SERIAL_PROTOCOLPGM("System ");
- if (!ubl.state.active) SERIAL_PROTOCOLPGM("de");
- SERIAL_PROTOCOLLNPGM("activated.\n");
- }
-
bool g29_parameter_parsing() {
bool err_flag = false;
@@ -1110,12 +1099,12 @@
SERIAL_PROTOCOLLNPGM("?Can't activate and deactivate at the same time.\n");
return UBL_ERR;
}
- ubl.state.active = 1;
- report_ubl_state();
+ ubl.state.active = true;
+ ubl.report_state();
}
else if (code_seen('D')) {
- ubl.state.active = 0;
- report_ubl_state();
+ ubl.state.active = false;
+ ubl.report_state();
}
// Set global 'C' flag and its value
@@ -1171,14 +1160,7 @@
* good to have the extra information. Soon... we prune this to just a few items
*/
void unified_bed_leveling::g29_what_command() {
- say_ubl_name();
- SERIAL_PROTOCOLPGM("System Version " UBL_VERSION " ");
- if (state.active)
- SERIAL_PROTOCOLCHAR('A');
- else
- SERIAL_PROTOCOLPGM("Ina");
- SERIAL_PROTOCOLLNPGM("ctive.\n");
- safe_delay(50);
+ report_state();
if (state.storage_slot == -1)
SERIAL_PROTOCOLPGM("No Mesh Loaded.");
@@ -1260,8 +1242,8 @@
safe_delay(25);
if (!sanity_check()) {
- say_ubl_name();
- SERIAL_PROTOCOLLNPGM("sanity checks passed.");
+ echo_name();
+ SERIAL_PROTOCOLLNPGM(" sanity checks passed.");
}
}
@@ -1319,7 +1301,8 @@
float tmp_z_values[GRID_MAX_POINTS_X][GRID_MAX_POINTS_Y];
settings.load_mesh(storage_slot, &tmp_z_values);
- SERIAL_ECHOPAIR("Subtracting current mesh from mesh loaded from slot ", storage_slot);
+ SERIAL_PROTOCOLPAIR("Subtracting mesh in slot ", storage_slot);
+ SERIAL_PROTOCOLLNPGM(" from current mesh.");
for (uint8_t x = 0; x < GRID_MAX_POINTS_X; x++)
for (uint8_t y = 0; y < GRID_MAX_POINTS_Y; y++)
--
GitLab