From 5020d75b9e77203f291ef79bfb26fddaee81b593 Mon Sep 17 00:00:00 2001 From: Oliver Jowett Date: Thu, 22 Jan 2015 22:19:38 +0000 Subject: [PATCH] Move setting of CF earlier so we can use its value while decoding AA. (Needed to notice non-ICAO addresses in TIS-B) --- mode_s.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/mode_s.c b/mode_s.c index 9344e10..28f66c3 100644 --- a/mode_s.c +++ b/mode_s.c @@ -542,6 +542,12 @@ int decodeModesMessage(struct modesMessage *mm, unsigned char *msg) mm->bFlags = 0; + // CF (Control field) + // done first so we can use it in AA. + if (mm->msgtype == 18) { + mm->cf = msg[0] & 7; + } + // AA (Address announced) if (mm->msgtype == 11 || mm->msgtype == 17 || mm->msgtype == 18) { mm->addr = (msg[1] << 16) | (msg[2] << 8) | (msg[3]); @@ -581,11 +587,6 @@ int decodeModesMessage(struct modesMessage *mm, unsigned char *msg) // CC (Cross-link capability) not decoded - // CF (Control field) - if (mm->msgtype == 18) { - mm->cf = msg[0] & 7; - } - // DR (Downlink Request) not decoded // FS (Flight Status)