Don't use DF18 when updating the known-Mode-S-address set.
DF18 transponders don't necessarily do Mode S, so we shouldn't assume that Mode S messages from that address are valid merely because we heard a DF18. If it really is Mode S equipped, we should hear a DF11 at some point.
This commit is contained in:
parent
9c124b3f2b
commit
c05aea65a4
8
mode_s.c
8
mode_s.c
|
@ -681,12 +681,12 @@ int decodeModesMessage(struct modesMessage *mm, unsigned char *msg)
|
|||
mm->airground = AG_UNCERTAIN;
|
||||
}
|
||||
|
||||
if (!mm->correctedbits && (mm->msgtype == 17 || mm->msgtype == 18 || (mm->msgtype == 11 && mm->IID == 0))) {
|
||||
// No CRC errors seen, and either it was an DF17/18 extended squitter
|
||||
if (!mm->correctedbits && (mm->msgtype == 17 || (mm->msgtype == 11 && mm->IID == 0))) {
|
||||
// No CRC errors seen, and either it was an DF17 extended squitter
|
||||
// or a DF11 acquisition squitter with II = 0. We probably have the right address.
|
||||
|
||||
// We wait until here to do this as we may have needed to decode an ES to note
|
||||
// the type of address in DF18 messages.
|
||||
// Don't do this for DF18, as a DF18 transmitter doesn't necessarily have a
|
||||
// Mode S transponder.
|
||||
|
||||
// NB this is the only place that adds addresses!
|
||||
icaoFilterAdd(mm->addr);
|
||||
|
|
Loading…
Reference in a new issue