diff --git a/libraries/AP_RangeFinder/AP_RangeFinder_TeraRangerI2C.cpp b/libraries/AP_RangeFinder/AP_RangeFinder_TeraRangerI2C.cpp index 54304a7de0..b617f67c63 100644 --- a/libraries/AP_RangeFinder/AP_RangeFinder_TeraRangerI2C.cpp +++ b/libraries/AP_RangeFinder/AP_RangeFinder_TeraRangerI2C.cpp @@ -129,8 +129,8 @@ bool AP_RangeFinder_TeraRangerI2C::collect_raw(uint16_t &raw_distance) if (d[2] != crc_crc8(d, 2)) { return false; } else { - raw_distance = ((uint16_t(d[0]) << 8) | d[1]); - return true; + raw_distance = ((uint16_t(d[0]) << 8) | d[1]); + return true; } } @@ -139,11 +139,12 @@ bool AP_RangeFinder_TeraRangerI2C::process_raw_measure(uint16_t raw_distance, ui { // Check for error codes if (raw_distance == 0xFFFF) { - // Too far away + // Too far away is unreliable so we dont enforce max range here return false; } else if (raw_distance == 0x0000) { // Too close - return false; + output_distance_cm = state.min_distance_cm; + return true; } else if (raw_distance == 0x0001) { // Unable to measure return false;