diff --git a/ArduCopter/commands_logic.cpp b/ArduCopter/commands_logic.cpp index 2e6da19730..a92d9a54a8 100644 --- a/ArduCopter/commands_logic.cpp +++ b/ArduCopter/commands_logic.cpp @@ -772,14 +772,14 @@ bool Copter::verify_payload_place() return false; // we'll do any cleanups required next time through the loop } // see if we've been descending long enough to calibrate a descend-throttle-level: - if (nav_payload_place.descend_throttle_level == 0 && + if (is_zero(nav_payload_place.descend_throttle_level) && now - nav_payload_place.descend_start_timestamp > descend_throttle_calibrate_time) { nav_payload_place.descend_throttle_level = current_throttle_level; } // watch the throttle to determine whether the load has been placed // debug("hover ratio: %f descend ratio: %f\n", current_throttle_level/nav_payload_place.hover_throttle_level, ((nav_payload_place.descend_throttle_level == 0) ? -1.0f : current_throttle_level/nav_payload_place.descend_throttle_level)); if (current_throttle_level/nav_payload_place.hover_throttle_level > hover_throttle_placed_fraction && - (nav_payload_place.descend_throttle_level == 0 || + (is_zero(nav_payload_place.descend_throttle_level) || current_throttle_level/nav_payload_place.descend_throttle_level > descent_throttle_placed_fraction)) { // throttle is above both threshold ratios (or above hover threshold ration and descent threshold ratio not yet valid) nav_payload_place.place_start_timestamp = 0;