UBL no longer needs ubl_state
This commit is contained in:
		| @@ -65,10 +65,9 @@ | ||||
|     safe_delay(10); | ||||
|   } | ||||
|  | ||||
|   ubl_state unified_bed_leveling::state; | ||||
|   int8_t unified_bed_leveling::storage_slot; | ||||
|  | ||||
|   float unified_bed_leveling::z_values[GRID_MAX_POINTS_X][GRID_MAX_POINTS_Y], | ||||
|         unified_bed_leveling::last_specified_z; | ||||
|   float unified_bed_leveling::z_values[GRID_MAX_POINTS_X][GRID_MAX_POINTS_Y]; | ||||
|  | ||||
|   // 15 is the maximum nubmer of grid points supported + 1 safety margin for now, | ||||
|   // until determinism prevails | ||||
| @@ -91,12 +90,11 @@ | ||||
|  | ||||
|   void unified_bed_leveling::reset() { | ||||
|     set_bed_leveling_enabled(false); | ||||
|     state.storage_slot = -1; | ||||
|     storage_slot = -1; | ||||
|     #if ENABLED(ENABLE_LEVELING_FADE_HEIGHT) | ||||
|       planner.set_z_fade_height(10.0); | ||||
|     #endif | ||||
|     ZERO(z_values); | ||||
|     last_specified_z = -999.9; | ||||
|   } | ||||
|  | ||||
|   void unified_bed_leveling::invalidate() { | ||||
|   | ||||
| @@ -70,16 +70,9 @@ extern uint8_t ubl_cnt; | ||||
| #define MESH_X_DIST (float(UBL_MESH_MAX_X - (UBL_MESH_MIN_X)) / float(GRID_MAX_POINTS_X - 1)) | ||||
| #define MESH_Y_DIST (float(UBL_MESH_MAX_Y - (UBL_MESH_MIN_Y)) / float(GRID_MAX_POINTS_Y - 1)) | ||||
|  | ||||
| typedef struct { | ||||
|   bool active = false; | ||||
|   int8_t storage_slot = -1; | ||||
| } ubl_state; | ||||
|  | ||||
| class unified_bed_leveling { | ||||
|   private: | ||||
|  | ||||
|     static float last_specified_z; | ||||
|  | ||||
|     static int    g29_verbose_level, | ||||
|                   g29_phase_value, | ||||
|                   g29_repetition_cnt, | ||||
| @@ -161,7 +154,7 @@ class unified_bed_leveling { | ||||
|       static void G26(); | ||||
|     #endif | ||||
|  | ||||
|     static ubl_state state; | ||||
|     static int8_t storage_slot; | ||||
|  | ||||
|     static float z_values[GRID_MAX_POINTS_X][GRID_MAX_POINTS_Y]; | ||||
|  | ||||
|   | ||||
| @@ -424,8 +424,8 @@ | ||||
|     #endif // HAS_BED_PROBE | ||||
|  | ||||
|     if (parser.seen('P')) { | ||||
|       if (WITHIN(g29_phase_value, 0, 1) && state.storage_slot == -1) { | ||||
|         state.storage_slot = 0; | ||||
|       if (WITHIN(g29_phase_value, 0, 1) && storage_slot == -1) { | ||||
|         storage_slot = 0; | ||||
|         SERIAL_PROTOCOLLNPGM("Default storage slot 0 selected."); | ||||
|       } | ||||
|  | ||||
| @@ -604,7 +604,7 @@ | ||||
|     // | ||||
|  | ||||
|     if (parser.seen('L')) {     // Load Current Mesh Data | ||||
|       g29_storage_slot = parser.has_value() ? parser.value_int() : state.storage_slot; | ||||
|       g29_storage_slot = parser.has_value() ? parser.value_int() : storage_slot; | ||||
|  | ||||
|       int16_t a = settings.calc_num_meshes(); | ||||
|  | ||||
| @@ -620,7 +620,7 @@ | ||||
|       } | ||||
|  | ||||
|       settings.load_mesh(g29_storage_slot); | ||||
|       state.storage_slot = g29_storage_slot; | ||||
|       storage_slot = g29_storage_slot; | ||||
|  | ||||
|       SERIAL_PROTOCOLLNPGM("Done."); | ||||
|     } | ||||
| @@ -630,7 +630,7 @@ | ||||
|     // | ||||
|  | ||||
|     if (parser.seen('S')) {     // Store (or Save) Current Mesh Data | ||||
|       g29_storage_slot = parser.has_value() ? parser.value_int() : state.storage_slot; | ||||
|       g29_storage_slot = parser.has_value() ? parser.value_int() : storage_slot; | ||||
|  | ||||
|       if (g29_storage_slot == -1) {                     // Special case, we are going to 'Export' the mesh to the | ||||
|         SERIAL_ECHOLNPGM("G29 I 999");              // host in a form it can be reconstructed on a different machine | ||||
| @@ -662,7 +662,7 @@ | ||||
|       } | ||||
|  | ||||
|       settings.store_mesh(g29_storage_slot); | ||||
|       state.storage_slot = g29_storage_slot; | ||||
|       storage_slot = g29_storage_slot; | ||||
|  | ||||
|       SERIAL_PROTOCOLLNPGM("Done."); | ||||
|     } | ||||
| @@ -1195,10 +1195,10 @@ | ||||
|   void unified_bed_leveling::g29_what_command() { | ||||
|     report_state(); | ||||
|  | ||||
|     if (state.storage_slot == -1) | ||||
|     if (storage_slot == -1) | ||||
|       SERIAL_PROTOCOLPGM("No Mesh Loaded."); | ||||
|     else { | ||||
|       SERIAL_PROTOCOLPAIR("Mesh ", state.storage_slot); | ||||
|       SERIAL_PROTOCOLPAIR("Mesh ", storage_slot); | ||||
|       SERIAL_PROTOCOLPGM(" Loaded."); | ||||
|     } | ||||
|     SERIAL_EOL(); | ||||
|   | ||||
| @@ -51,7 +51,7 @@ void GcodeSuite::M420() { | ||||
|     if (parser.seen('L')) { | ||||
|  | ||||
|       #if ENABLED(EEPROM_SETTINGS) | ||||
|         const int8_t storage_slot = parser.has_value() ? parser.value_int() : ubl.state.storage_slot; | ||||
|         const int8_t storage_slot = parser.has_value() ? parser.value_int() : ubl.storage_slot; | ||||
|         const int16_t a = settings.calc_num_meshes(); | ||||
|  | ||||
|         if (!a) { | ||||
| @@ -66,7 +66,7 @@ void GcodeSuite::M420() { | ||||
|         } | ||||
|  | ||||
|         settings.load_mesh(storage_slot); | ||||
|         ubl.state.storage_slot = storage_slot; | ||||
|         ubl.storage_slot = storage_slot; | ||||
|  | ||||
|       #else | ||||
|  | ||||
| @@ -80,7 +80,7 @@ void GcodeSuite::M420() { | ||||
|     if (parser.seen('L') || parser.seen('V')) { | ||||
|       ubl.display_map(0);  // Currently only supports one map type | ||||
|       SERIAL_ECHOLNPAIR("ubl.mesh_is_valid = ", ubl.mesh_is_valid()); | ||||
|       SERIAL_ECHOLNPAIR("ubl.state.storage_slot = ", ubl.state.storage_slot); | ||||
|       SERIAL_ECHOLNPAIR("ubl.storage_slot = ", ubl.storage_slot); | ||||
|     } | ||||
|  | ||||
|   #endif // AUTO_BED_LEVELING_UBL | ||||
|   | ||||
| @@ -89,7 +89,7 @@ | ||||
|  * | ||||
|  * AUTO_BED_LEVELING_UBL:                           2 bytes | ||||
|  *  324  G29 A     planner.leveling_active          (bool) | ||||
|  *  325  G29 S     ubl.state.storage_slot           (int8_t) | ||||
|  *  325  G29 S     ubl.storage_slot                 (int8_t) | ||||
|  * | ||||
|  * DELTA:                                           48 bytes | ||||
|  *  344  M666 XYZ  delta_endstop_adj                (float x3) | ||||
| @@ -411,7 +411,7 @@ void MarlinSettings::postprocess() { | ||||
|  | ||||
|     #if ENABLED(AUTO_BED_LEVELING_UBL) | ||||
|       EEPROM_WRITE(planner.leveling_active); | ||||
|       EEPROM_WRITE(ubl.state.storage_slot); | ||||
|       EEPROM_WRITE(ubl.storage_slot); | ||||
|     #else | ||||
|       const bool ubl_active = false; | ||||
|       const int8_t storage_slot = -1; | ||||
| @@ -634,8 +634,8 @@ void MarlinSettings::postprocess() { | ||||
|     } | ||||
|  | ||||
|     #if ENABLED(UBL_SAVE_ACTIVE_ON_M500) | ||||
|       if (ubl.state.storage_slot >= 0) | ||||
|         store_mesh(ubl.state.storage_slot); | ||||
|       if (ubl.storage_slot >= 0) | ||||
|         store_mesh(ubl.storage_slot); | ||||
|     #endif | ||||
|     EEPROM_FINISH(); | ||||
|     return !eeprom_error; | ||||
| @@ -798,7 +798,7 @@ void MarlinSettings::postprocess() { | ||||
|  | ||||
|       #if ENABLED(AUTO_BED_LEVELING_UBL) | ||||
|         EEPROM_READ(planner.leveling_active); | ||||
|         EEPROM_READ(ubl.state.storage_slot); | ||||
|         EEPROM_READ(ubl.storage_slot); | ||||
|       #else | ||||
|         uint8_t dummyui8; | ||||
|         EEPROM_READ(dummyb); | ||||
| @@ -1015,10 +1015,10 @@ void MarlinSettings::postprocess() { | ||||
|           ubl.reset(); | ||||
|         } | ||||
|  | ||||
|         if (ubl.state.storage_slot >= 0) { | ||||
|           load_mesh(ubl.state.storage_slot); | ||||
|         if (ubl.storage_slot >= 0) { | ||||
|           load_mesh(ubl.storage_slot); | ||||
|           #if ENABLED(EEPROM_CHITCHAT) | ||||
|             SERIAL_ECHOPAIR("Mesh ", ubl.state.storage_slot); | ||||
|             SERIAL_ECHOPAIR("Mesh ", ubl.storage_slot); | ||||
|             SERIAL_ECHOLNPGM(" loaded from storage."); | ||||
|           #endif | ||||
|         } | ||||
| @@ -1570,7 +1570,7 @@ void MarlinSettings::reset() { | ||||
|         SERIAL_EOL(); | ||||
|         ubl.report_state(); | ||||
|  | ||||
|         SERIAL_ECHOLNPAIR("\nActive Mesh Slot: ", ubl.state.storage_slot); | ||||
|         SERIAL_ECHOLNPAIR("\nActive Mesh Slot: ", ubl.storage_slot); | ||||
|         SERIAL_ECHOPAIR("EEPROM can hold ", calc_num_meshes()); | ||||
|         SERIAL_ECHOLNPGM(" meshes.\n"); | ||||
|       } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user