Browse Source

Modify UBL mesh_is_valid and use in leveling_is_valid (#10746)

pull/1/head
Scott Lahteine 7 years ago
committed by GitHub
parent
commit
eb2eb72720
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      Marlin/src/feature/bedlevel/bedlevel.cpp
  2. 16
      Marlin/src/feature/bedlevel/ubl/ubl.h
  3. 5
      Marlin/src/gcode/bedlevel/M420.cpp

2
Marlin/src/feature/bedlevel/bedlevel.cpp

@ -53,7 +53,7 @@ bool leveling_is_valid() {
#elif ENABLED(AUTO_BED_LEVELING_BILINEAR) #elif ENABLED(AUTO_BED_LEVELING_BILINEAR)
!!bilinear_grid_spacing[X_AXIS] !!bilinear_grid_spacing[X_AXIS]
#elif ENABLED(AUTO_BED_LEVELING_UBL) #elif ENABLED(AUTO_BED_LEVELING_UBL)
true ubl.mesh_is_valid()
#else // 3POINT, LINEAR #else // 3POINT, LINEAR
true true
#endif #endif

16
Marlin/src/feature/bedlevel/ubl/ubl.h

@ -363,17 +363,11 @@ class unified_bed_leveling {
static void line_to_destination_cartesian(const float &fr, const uint8_t e); static void line_to_destination_cartesian(const float &fr, const uint8_t e);
#endif #endif
#define _CMPZ(a,b) (z_values[a][b] == z_values[a][b+1]) inline static bool mesh_is_valid() {
#define CMPZ(a) (_CMPZ(a, 0) && _CMPZ(a, 1)) for (uint8_t x = 0; x < GRID_MAX_POINTS_X; x++)
#define ZZER(a) (z_values[a][0] == 0) for (uint8_t y = 0; y < GRID_MAX_POINTS_Y; y++)
if (isnan(z_values[x][y])) return false;
FORCE_INLINE bool mesh_is_valid() { return true;
return !(
( CMPZ(0) && CMPZ(1) && CMPZ(2) // adjacent z values all equal?
&& ZZER(0) && ZZER(1) && ZZER(2) // all zero at the edge?
)
|| isnan(z_values[0][0])
);
} }
}; // class unified_bed_leveling }; // class unified_bed_leveling

5
Marlin/src/gcode/bedlevel/M420.cpp

@ -96,8 +96,9 @@ void GcodeSuite::M420() {
// L or V display the map info // L or V display the map info
if (parser.seen('L') || parser.seen('V')) { if (parser.seen('L') || parser.seen('V')) {
ubl.display_map(parser.byteval('T')); ubl.display_map(parser.byteval('T'));
SERIAL_ECHOLNPAIR("ubl.mesh_is_valid = ", ubl.mesh_is_valid()); SERIAL_ECHOPGM("Mesh is ");
SERIAL_ECHOLNPAIR("ubl.storage_slot = ", ubl.storage_slot); if (!ubl.mesh_is_valid()) SERIAL_ECHOPGM("in");
SERIAL_ECHOLNPAIR("valid\nStorage slot: ", ubl.storage_slot);
} }
#endif // AUTO_BED_LEVELING_UBL #endif // AUTO_BED_LEVELING_UBL

Loading…
Cancel
Save