From c148fdca846d4f5e465104ab0773bb4ab5a612c0 Mon Sep 17 00:00:00 2001 From: Oliver Jowett Date: Thu, 29 Jul 2021 19:04:51 +0800 Subject: [PATCH] Distinguish "unknown format" from "didn't even try to decode" when decoding Comm-B messages --- comm_b.c | 5 +++-- dump1090.h | 1 + mode_s.c | 2 ++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/comm_b.c b/comm_b.c index e7e57a7..1da2397 100644 --- a/comm_b.c +++ b/comm_b.c @@ -47,12 +47,11 @@ static CommBDecoderFn comm_b_decoders[] = { void decodeCommB(struct modesMessage *mm) { - mm->commb_format = COMMB_UNKNOWN; - // If DR or UM are set, this message is _probably_ noise // as nothing really seems to use the multisite broadcast stuff? // Also skip anything that had errors corrected if (mm->DR != 0 || mm->UM != 0 || mm->correctedbits > 0) { + mm->commb_format = COMMB_NOT_DECODED; return; } @@ -79,6 +78,8 @@ void decodeCommB(struct modesMessage *mm) // decode it bestDecoder(mm, true); } + } else { + mm->commb_format = COMMB_UNKNOWN; } } diff --git a/dump1090.h b/dump1090.h index 31d48e2..3864f43 100644 --- a/dump1090.h +++ b/dump1090.h @@ -202,6 +202,7 @@ typedef enum { typedef enum { COMMB_UNKNOWN, COMMB_AMBIGUOUS, + COMMB_NOT_DECODED, COMMB_EMPTY_RESPONSE, COMMB_DATALINK_CAPS, COMMB_GICB_CAPS, diff --git a/mode_s.c b/mode_s.c index f1c9ce0..5f7b666 100644 --- a/mode_s.c +++ b/mode_s.c @@ -1681,6 +1681,8 @@ static const char *commb_format_to_string(commb_format_t format) { return "empty response"; case COMMB_AMBIGUOUS: return "ambiguous format"; + case COMMB_NOT_DECODED: + return "not decoded"; case COMMB_DATALINK_CAPS: return "BDS1,0 Datalink capabilities"; case COMMB_GICB_CAPS: