From 85d3ecee626284e6d86a07c2269d7694a8484dac Mon Sep 17 00:00:00 2001 From: Oliver Jowett Date: Tue, 11 Oct 2016 17:55:02 +0100 Subject: [PATCH] Add source & address type for Mode A/C --- dump1090.h | 3 +++ mode_ac.c | 2 ++ mode_s.c | 2 ++ 3 files changed, 7 insertions(+) diff --git a/dump1090.h b/dump1090.h index b1cba8f..45f0829 100644 --- a/dump1090.h +++ b/dump1090.h @@ -142,6 +142,7 @@ typedef struct rtlsdr_dev rtlsdr_dev_t; /* Where did a bit of data arrive from? In order of increasing priority */ typedef enum { SOURCE_INVALID, /* data is not valid */ + SOURCE_MODE_AC, /* A/C message */ SOURCE_MLAT, /* derived from mlat */ SOURCE_MODE_S, /* data from a Mode S message, no full CRC */ SOURCE_MODE_S_CHECKED, /* data from a Mode S message with full CRC */ @@ -163,6 +164,8 @@ typedef enum { ADDR_TISB_TRACKFILE, /* TIS-B, Mode A code + track file number */ ADDR_TISB_OTHER, /* TIS-B, other address format */ + ADDR_MODE_A, /* Mode A */ + ADDR_UNKNOWN /* unknown address format */ } addrtype_t; diff --git a/mode_ac.c b/mode_ac.c index f1af6c5..baac314 100644 --- a/mode_ac.c +++ b/mode_ac.c @@ -78,6 +78,8 @@ int ModeAToModeC(unsigned int ModeA) // void decodeModeAMessage(struct modesMessage *mm, int ModeA) { + mm->source = SOURCE_MODE_AC; + mm->addrtype = ADDR_MODE_A; mm->msgtype = 32; // Valid Mode S DF's are DF-00 to DF-31. // so use 32 to indicate Mode A/C diff --git a/mode_s.c b/mode_s.c index 1580ba0..e4ada73 100644 --- a/mode_s.c +++ b/mode_s.c @@ -1381,6 +1381,8 @@ static const char *addrtype_to_string(addrtype_t type) { return "ADS-R"; case ADDR_ADSR_OTHER: return "ADS-R, other addressing scheme"; + case ADDR_MODE_A: + return "Mode A"; default: return "unknown addressing scheme"; }