From 603523537e6ce35b2f2704971bbb6d2af61002de Mon Sep 17 00:00:00 2001 From: Matthias Wirth Date: Sun, 15 Sep 2024 14:20:33 +0200 Subject: [PATCH] copy full DB details to aircraft struct --- aircraft.c | 4 ++++ json_out.c | 31 +++++++++++++------------------ track.h | 3 +++ 3 files changed, 20 insertions(+), 18 deletions(-) diff --git a/aircraft.c b/aircraft.c index 64a74cdf..07f842ab 100644 --- a/aircraft.c +++ b/aircraft.c @@ -692,11 +692,15 @@ void updateTypeReg(struct aircraft *a) { memcpy(a->registration, d->registration, sizeof(a->registration)); memcpy(a->typeCode, d->typeCode, sizeof(a->typeCode)); memcpy(a->typeLong, d->typeLong, sizeof(a->typeLong)); + memcpy(a->ownOp, d->ownOp, sizeof(a->ownOp)); + memcpy(a->year, d->year, sizeof(a->year)); a->dbFlags = d->dbFlags; } else { memset(a->registration, 0, sizeof(a->registration)); memset(a->typeCode, 0, sizeof(a->typeCode)); memset(a->typeLong, 0, sizeof(a->typeLong)); + memset(a->ownOp, 0, sizeof(a->ownOp)); + memset(a->year, 0, sizeof(a->year)); a->dbFlags = 0; } uint32_t i = a->addr; diff --git a/json_out.c b/json_out.c index 32f91d13..eefbaa75 100644 --- a/json_out.c +++ b/json_out.c @@ -658,15 +658,12 @@ char *sprintAircraftObject(char *p, char *end, struct aircraft *a, int64_t now, } if (Modes.jsonLongtype) { - dbEntry *e = dbGet(a->addr, Modes.dbIndex); - if (e) { - if (e->typeLong[0]) - p = safe_snprintf(p, end, ",\"desc\":\"%.*s\"", (int) sizeof(e->typeLong), e->typeLong); - if (e->ownOp[0]) - p = safe_snprintf(p, end, ",\n\"ownOp\":\"%.*s\"", (int) sizeof(e->ownOp), e->ownOp); - if (e->year[0]) - p = safe_snprintf(p, end, ",\n\"year\":\"%.*s\"", (int) sizeof(e->year), e->year); - } + if (a->typeLong[0]) + p = safe_snprintf(p, end, ",\"desc\":\"%.*s\"", (int) sizeof(a->typeLong), a->typeLong); + if (a->ownOp[0]) + p = safe_snprintf(p, end, ",\n\"ownOp\":\"%.*s\"", (int) sizeof(a->ownOp), a->ownOp); + if (a->year[0]) + p = safe_snprintf(p, end, ",\n\"year\":\"%.*s\"", (int) sizeof(a->year), a->year); } } @@ -1770,15 +1767,13 @@ struct char_buffer generateTraceJson(struct aircraft *a, traceBuffer tb, int sta dbFlags &= ~(1 << 7); p = safe_snprintf(p, end, ",\n\"dbFlags\":%u", dbFlags); } - dbEntry *e = dbGet(a->addr, Modes.dbIndex); - if (e) { - if (e->typeLong[0]) - p = safe_snprintf(p, end, ",\n\"desc\":\"%.*s\"", (int) sizeof(e->typeLong), e->typeLong); - if (e->ownOp[0]) - p = safe_snprintf(p, end, ",\n\"ownOp\":\"%.*s\"", (int) sizeof(e->ownOp), e->ownOp); - if (e->year[0]) - p = safe_snprintf(p, end, ",\n\"year\":\"%.*s\"", (int) sizeof(e->year), e->year); - } + + if (a->typeLong[0]) + p = safe_snprintf(p, end, ",\"desc\":\"%.*s\"", (int) sizeof(a->typeLong), a->typeLong); + if (a->ownOp[0]) + p = safe_snprintf(p, end, ",\n\"ownOp\":\"%.*s\"", (int) sizeof(a->ownOp), a->ownOp); + if (a->year[0]) + p = safe_snprintf(p, end, ",\n\"year\":\"%.*s\"", (int) sizeof(a->year), a->year); if (p == regInfo) p = safe_snprintf(p, end, ",\n\"noRegData\":true"); } diff --git a/track.h b/track.h index baba4df7..20574eeb 100644 --- a/track.h +++ b/track.h @@ -567,6 +567,9 @@ struct aircraft char zeroStart; + char ownOp[64]; + char year[4]; + float messageRate; uint16_t messageRateAcc[MESSAGE_RATE_CALC_POINTS]; int64_t nextMessageRateCalc;