|
|
|
@ -145,16 +145,16 @@ bool AP_Proximity_TeraRangerTowerEvo::read_sensor_data()
@@ -145,16 +145,16 @@ bool AP_Proximity_TeraRangerTowerEvo::read_sensor_data()
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// process reply
|
|
|
|
|
void AP_Proximity_TeraRangerTowerEvo::update_sector_data(int16_t angle_deg, uint16_t distance_cm) |
|
|
|
|
void AP_Proximity_TeraRangerTowerEvo::update_sector_data(int16_t angle_deg, uint16_t distance_mm) |
|
|
|
|
{ |
|
|
|
|
// Get location on 3-D boundary based on angle to the object
|
|
|
|
|
const AP_Proximity_Boundary_3D::Face face = boundary.get_face(angle_deg); |
|
|
|
|
//check for target too far, target too close and sensor not connected
|
|
|
|
|
const bool valid = (distance_cm != 0xffff) && (distance_cm > 0x0001); |
|
|
|
|
if (valid && !ignore_reading(angle_deg, distance_cm * 0.001f, false)) { |
|
|
|
|
boundary.set_face_attributes(face, angle_deg, ((float) distance_cm) / 1000); |
|
|
|
|
const bool valid = (distance_mm != 0xffff) && (distance_mm > 0x0001); |
|
|
|
|
if (valid && !ignore_reading(angle_deg, distance_mm * 0.001f, false)) { |
|
|
|
|
boundary.set_face_attributes(face, angle_deg, ((float) distance_mm) / 1000); |
|
|
|
|
// update OA database
|
|
|
|
|
database_push(angle_deg, ((float) distance_cm) / 1000); |
|
|
|
|
database_push(angle_deg, ((float) distance_mm) / 1000); |
|
|
|
|
} else { |
|
|
|
|
boundary.reset_face(face); |
|
|
|
|
} |
|
|
|
|