From 967a3e9558ad171a7f9ed83b7886cd6796871892 Mon Sep 17 00:00:00 2001 From: Oliver Jowett Date: Wed, 11 Feb 2015 12:10:40 +0000 Subject: [PATCH] If maxRange is >= 360NM, don't do receiver-centered local CPR at all. --- track.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/track.c b/track.c index ae7f66f..7751885 100644 --- a/track.c +++ b/track.c @@ -198,8 +198,12 @@ static int doLocalCPR(struct aircraft *a, int fflag, int surface, uint64_t now) // ambiguity. (e.g. if we receive a position report // at 200NM distance, this may resolve to a position // at (200-360) = 160NM in the wrong direction) - if (Modes.maxRange > 1852*180) + + if (Modes.maxRange > 1852*180) { range_limit = (1852*360) - Modes.maxRange; + if (range_limit <= 0) + return (-1); // Can't do receiver-centered checks at all + } } else { // No local reference, give up return (-1);