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"
This commit is contained in:
Oliver Jowett 2019-05-02 17:58:03 +08:00
parent c9bea6a21c
commit d5741bf8c8

View file

@ -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;
}