diff --git a/src/main/java/aero/t2s/modes/decoder/Decoder.java b/src/main/java/aero/t2s/modes/decoder/Decoder.java index 5b563f6..ab2792c 100644 --- a/src/main/java/aero/t2s/modes/decoder/Decoder.java +++ b/src/main/java/aero/t2s/modes/decoder/Decoder.java @@ -71,7 +71,7 @@ public DownlinkFormat decode(short[] data) throws UnknownDownlinkFormatException throw new UnknownDownlinkFormatException(downlinkFormat, data); } - return df.decode(); + return df.decode().aircraft(modeSDatabase.find(df.getIcao())); } public Track getTrack(String icao) { diff --git a/src/main/java/aero/t2s/modes/decoder/df/DownlinkFormat.java b/src/main/java/aero/t2s/modes/decoder/df/DownlinkFormat.java index 0e9bf08..6b567dd 100644 --- a/src/main/java/aero/t2s/modes/decoder/df/DownlinkFormat.java +++ b/src/main/java/aero/t2s/modes/decoder/df/DownlinkFormat.java @@ -1,6 +1,7 @@ package aero.t2s.modes.decoder.df; import aero.t2s.modes.Track; +import aero.t2s.modes.database.ModeSDatabase; import aero.t2s.modes.decoder.Common; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -12,6 +13,7 @@ public abstract class DownlinkFormat { protected final short[] data; private final String icao; + private ModeSDatabase.ModeSAircraft aircraft; public DownlinkFormat(short[] data, IcaoAddress icaoAddressFrom) { this.data = data; @@ -35,6 +37,16 @@ public short[] getData() { return data; } + public DownlinkFormat aircraft(ModeSDatabase.ModeSAircraft aircraft) { + this.aircraft = aircraft == null ? new ModeSDatabase.ModeSAircraft(this.getIcao(), null, null, null) : aircraft; + + return this; + } + + public ModeSDatabase.ModeSAircraft getAircraft() { + return this.aircraft; + } + protected enum IcaoAddress { FROM_MESSAGE, FROM_PARITY,