more zprobe refactor, remove probeDistance()
authorJim Morris <morris@wolfman.com>
Wed, 28 Sep 2016 05:40:30 +0000 (22:40 -0700)
committerJim Morris <morris@wolfman.com>
Wed, 28 Sep 2016 05:40:30 +0000 (22:40 -0700)
src/modules/tools/zprobe/ThreePointStrategy.cpp
src/modules/tools/zprobe/ZProbe.cpp
src/modules/tools/zprobe/ZProbe.h

index b0bbc32..c90231f 100644 (file)
@@ -290,10 +290,11 @@ bool ThreePointStrategy::doProbing(StreamOutput *stream)
     // probe the three points
     Vector3 v[3];
     for (int i = 0; i < 3; ++i) {
+        float z;
         std::tie(x, y) = probe_points[i];
         // offset moves by the probe XY offset
-        float z = zprobe->probeDistance(x-std::get<X_AXIS>(this->probe_offsets), y-std::get<Y_AXIS>(this->probe_offsets));
-        if(isnan(z)) return false; // probe failed
+        if(!zprobe->doProbeAt(z, x-std::get<X_AXIS>(this->probe_offsets), y-std::get<Y_AXIS>(this->probe_offsets))) return false;
+
         z= zprobe->getProbeHeight() - z; // relative distance between the probe points, lower is negative z
         stream->printf("DEBUG: P%d:%1.4f\n", i, z);
         v[i] = Vector3(x, y, z);
@@ -337,8 +338,9 @@ bool ThreePointStrategy::test_probe_points(Gcode *gcode)
             return false;
         }
 
-        float z = zprobe->probeDistance(x-std::get<X_AXIS>(this->probe_offsets), y-std::get<Y_AXIS>(this->probe_offsets));
-        if(isnan(z)) return false; // probe failed
+        float z;
+        if(!zprobe->doProbeAt(z, x-std::get<X_AXIS>(this->probe_offsets), y-std::get<Y_AXIS>(this->probe_offsets))) return false;
+
         gcode->stream->printf("X:%1.4f Y:%1.4f Z:%1.4f\n", x, y, z);
 
         if(isnan(last_z)) {
index dc3843d..1b33296 100644 (file)
@@ -221,10 +221,7 @@ bool ZProbe::run_probe_return(float& mm, float feedrate, float max_dist, bool re
         if(fr > this->fast_feedrate) fr = this->fast_feedrate; // unless that is greater than fast feedrate
     }
 
-    bool dir= ((mm < 0) != reverse_z); // xor
-    if(reverse) dir= !dir;
-
-    // absolute move to starting position
+    // absolute move back to saved starting position
     coordinated_move(save_pos[0], save_pos[1], save_pos[2], fr, false);
 
     return ok;
@@ -237,13 +234,6 @@ bool ZProbe::doProbeAt(float &mm, float x, float y)
     return run_probe_return(mm, slow_feedrate);
 }
 
-float ZProbe::probeDistance(float x, float y)
-{
-    float s;
-    if(!doProbeAt(s, x, y)) return NAN;
-    return s;
-}
-
 void ZProbe::on_gcode_received(void *argument)
 {
     Gcode *gcode = static_cast<Gcode *>(argument);
index 558956e..ad057f7 100644 (file)
@@ -35,7 +35,6 @@ public:
     bool run_probe(float& mm, float feedrate, float max_dist= -1, bool reverse= false);
     bool run_probe_return(float& mm, float feedrate, float max_dist= -1, bool reverse= false);
     bool doProbeAt(float &mm, float x, float y);
-    float probeDistance(float x, float y);
 
     void coordinated_move(float x, float y, float z, float feedrate, bool relative=false);
     void home();