From 27b0e9c40fb3f4bca6a829d16a51170173725456 Mon Sep 17 00:00:00 2001 From: Oliver Jowett Date: Thu, 15 Jun 2017 18:23:28 +0100 Subject: [PATCH] Rename TARGET_* -> INTENT_ALT_* Rearrange the intent tracking a bit. --- comm_b.c | 12 ++++++------ dump1090.h | 2 +- mode_s.c | 8 ++++---- track.c | 24 ++++++++++++------------ 4 files changed, 23 insertions(+), 23 deletions(-) diff --git a/comm_b.c b/comm_b.c index b03ea43..085454b 100644 --- a/comm_b.c +++ b/comm_b.c @@ -391,23 +391,23 @@ static int decodeBDS40(struct modesMessage *mm, bool store) if (source_valid) { switch (source_raw) { case 0: - mm->intent.altitude_source = TARGET_UNKNOWN; + mm->intent.altitude_source = INTENT_ALT_UNKNOWN; break; case 1: - mm->intent.altitude_source = TARGET_AIRCRAFT; + mm->intent.altitude_source = INTENT_ALT_AIRCRAFT; break; case 2: - mm->intent.altitude_source = TARGET_MCP; + mm->intent.altitude_source = INTENT_ALT_MCP; break; case 3: - mm->intent.altitude_source = TARGET_FMS; + mm->intent.altitude_source = INTENT_ALT_FMS; break; default: - mm->intent.altitude_source = TARGET_INVALID; + mm->intent.altitude_source = INTENT_ALT_INVALID; break; } } else { - mm->intent.altitude_source = TARGET_INVALID; + mm->intent.altitude_source = INTENT_ALT_INVALID; } } diff --git a/dump1090.h b/dump1090.h index ffc6c27..2e4408b 100644 --- a/dump1090.h +++ b/dump1090.h @@ -529,7 +529,7 @@ struct modesMessage { unsigned mcp_altitude; // MCP/FCU selected altitude float alt_setting; // altimeter setting (QFE or QNH/QNE), millibars - enum { TARGET_INVALID, TARGET_UNKNOWN, TARGET_AIRCRAFT, TARGET_MCP, TARGET_FMS } altitude_source; + enum { INTENT_ALT_INVALID, INTENT_ALT_UNKNOWN, INTENT_ALT_AIRCRAFT, INTENT_ALT_MCP, INTENT_ALT_FMS } altitude_source; unsigned mode_autopilot : 1; // Autopilot engaged unsigned mode_vnav : 1; // Vertical Navigation Mode active diff --git a/mode_s.c b/mode_s.c index 16aec58..7f087ce 100644 --- a/mode_s.c +++ b/mode_s.c @@ -1716,16 +1716,16 @@ void displayModesMessage(struct modesMessage *mm) { if (mm->intent.alt_setting_valid) printf(" Altimeter setting: %.1f millibars\n", mm->intent.alt_setting); - if (mm->intent.altitude_source != TARGET_INVALID) { + if (mm->intent.altitude_source != INTENT_ALT_INVALID) { printf(" Target altitude source: "); switch (mm->intent.altitude_source) { - case TARGET_AIRCRAFT: + case INTENT_ALT_AIRCRAFT: printf("aircraft altitude\n"); break; - case TARGET_MCP: + case INTENT_ALT_MCP: printf("MCP selected altitude\n"); break; - case TARGET_FMS: + case INTENT_ALT_FMS: printf("FMS selected altitude\n"); break; default: diff --git a/track.c b/track.c index 8fb3f24..b2ae5dd 100644 --- a/track.c +++ b/track.c @@ -622,20 +622,20 @@ struct aircraft *trackUpdateFromMessage(struct modesMessage *mm) memcpy(a->callsign, mm->callsign, sizeof(a->callsign)); } - if (mm->intent.valid) { - if (mm->intent.mcp_altitude_valid && accept_data(&a->intent_altitude_valid, mm->source, now)) { - a->intent_altitude = mm->intent.mcp_altitude; - } else if (mm->intent.fms_altitude_valid && accept_data(&a->intent_altitude_valid, mm->source, now)) { - a->intent_altitude = mm->intent.fms_altitude; - } + // prefer MCP over FMS + // unless the source says otherwise + if (mm->intent.mcp_altitude_valid && mm->intent.altitude_source != INTENT_ALT_FMS && accept_data(&a->intent_altitude_valid, mm->source, now)) { + a->intent_altitude = mm->intent.mcp_altitude; + } else if (mm->intent.fms_altitude_valid && accept_data(&a->intent_altitude_valid, mm->source, now)) { + a->intent_altitude = mm->intent.fms_altitude; + } - if (mm->intent.heading_valid && accept_data(&a->intent_heading_valid, mm->source, now)) { - a->intent_heading = mm->intent.heading; - } + if (mm->intent.heading_valid && accept_data(&a->intent_heading_valid, mm->source, now)) { + a->intent_heading = mm->intent.heading; + } - if (mm->intent.alt_setting_valid && accept_data(&a->alt_setting_valid, mm->source, now)) { - a->alt_setting = mm->intent.alt_setting; - } + if (mm->intent.alt_setting_valid && accept_data(&a->alt_setting_valid, mm->source, now)) { + a->alt_setting = mm->intent.alt_setting; } // CPR, even