From d5741bf8c83d339bd2f5d462c77a3083d7b1ae45 Mon Sep 17 00:00:00 2001 From: Oliver Jowett Date: Thu, 2 May 2019 17:58:03 +0800 Subject: [PATCH] Require more fields to be populated in BDS5,0/BDS6,0 before we'll accept them at all. Before: 7090 GICB_CAPS 10667 AMBIGUOUS 19173 EMPTY_RESPONSE 62527 UNKNOWN 76469 AIRCRAFT_IDENT 127603 ACAS_RA 210286 HEADING_SPEED 223068 DATALINK_CAPS 232824 TRACK_TURN 271598 VERTICAL_INTENT 2517 "suspicious" After: 575 AMBIGUOUS 7090 GICB_CAPS 19173 EMPTY_RESPONSE 71686 UNKNOWN 76469 AIRCRAFT_IDENT 127603 ACAS_RA 212887 HEADING_SPEED 223068 DATALINK_CAPS 230008 TRACK_TURN 272746 VERTICAL_INTENT 861 "suspicious" --- comm_b.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/comm_b.c b/comm_b.c index 41e195d..9dc2921 100644 --- a/comm_b.c +++ b/comm_b.c @@ -459,7 +459,7 @@ static int decodeBDS50(struct modesMessage *mm, bool store) unsigned tas_valid = getbit(msg, 46); unsigned tas_raw = getbits(msg, 47, 56); - if (!roll_valid && !track_valid && !gs_valid && !track_rate_valid && !tas_valid) { + if (!roll_valid || !track_valid || !gs_valid || !tas_valid) { return 0; } @@ -621,7 +621,7 @@ static int decodeBDS60(struct modesMessage *mm, bool store) unsigned inertial_rate_sign = getbit(msg, 47); unsigned inertial_rate_raw = getbits(msg, 48, 56); - if (!heading_valid && !ias_valid && !mach_valid && !baro_rate_valid && !inertial_rate_valid) { + if (!heading_valid || !ias_valid || !mach_valid || (!baro_rate_valid && !inertial_rate_valid)) { return 0; }