When `unreliable_tracks` was added to the JSON output, the trailing `}` after `single_message` should likely have been removed.
Side note: should this just be `unreliable` since it is nested inside `tracks`? `all` and `single_message` don't have the `tracks` suffix.
residual, use the full 24-bit syndrome.
Previously this would mask off the low 7 bits, which isn't particularly
great - it doesn't really make sense in that it implies a somewhat
random IID value, and it would actually only correct 20 possible bit
errors out of the 51 possible errors, 16 of which were errors in
the top 16 bits of the CRC itself. It is also risky as it will accept
a larger number of possible garbage messages as the lower 7 bits may take
any value.
Instead, use the full syndrome, assuming that the damaged message
had IID=0 - which seems more likely than assuming a random IID, since
IID=0 is used for acquisition squitters and should be arriving regularly.
The reduced rate of corrections for DF11 messages shouldn't have
much of an impact as DF11s carry very little data themselves - they
are mainly used to acquire the aircraft address. Once one good message
for an aircraft turns up (which would require IID=0 anyway before we'd
accept it) it doesn't really matter if we discard more damaged messages,
as they're not contributing to anything useful in the aircraft state
beyond air/ground status, which is also carried in many other messages.
nb: messages with a correctable 2-bit error are only forwarded to network
clients that have enabled verbatim mode (and they will be forwarded with
the 2-bit error still present, so the downstream client must apply its own
correction if desired)
Make --net-verbatim just control the default setting.
0x1A '1' 'v' disables verbatim mode (send "cooked" output);
0x1A '1' 'V' enables verbatim mode
Support clients with different settings by switching them between output
writers depending on what setting they want, so clients with different
settings can co-exist (unlike the Mode A/C setting)
In cooked mode, FEC corrections are applied to messages before they are send
and only trustworthy messages are forwarded; this is the default case for
downstream clients that don't want to apply their own rules and are happy with
the decisions that dump1090 makes.
In verbatim mode, all messages are forwarded, but no FEC corrections are applied;
the downstream client needs to make its own FEC / noise filtering decisions.
Usually the default for new connections is cooked mode. --net-verbatim changes the
default to be verbatim mode.
A "reliable" message is a DF17 or DF11 with good CRC.
A "reliable" aircraft is one that's probably real - we decide it's reliable when
we've seen enough reliable messages, or just enough messages in total, that it's unlikely
to be noise.
Check the return value from accept_data to determine if we want to
use the decoded position.
Avoid a position from local CPR with a synthetic MLAT message being used
when the position may still be valid and either odd or even CPR already
stale allowing the MLAT CPR to be used.
Set the position expiration correctly for global surface CPR, the
previous code could have an up to 50 second old CPR being used, which
would result in combine_validity setting an expiry time for the position
only 10 seconds in the future.
In addition to the usual updated data, this update fixes a number
of ICAO type designator errors in the FlightAware static data
export (notably for the A330).
Fixes#17
registrations.js would miscalculate the end of the address range
in these cases, causing the mapping to be skipped for addresses
that we could have handled.
This specifically affected German registrations beginning with
D-AP through D-AZ and D-BP through D-BZ
rather than blanking them out entirely.
This lets csv-to-json.py handle the case where an earlier input file has (e.g.)
a registration value which does not match the computed value, and then a later
input file has a value that does match. In this case we want to override the
older value with the newer value, then notice that the registration can be
omitted when writing the database. Previously in this case the older (incorrect)
value would be used.
When determining the color for a given altitude, don't check the current
altitude if it's ground but the altitude passed as an argument to the
function.
Without this fix, when clicking an aircraft on ground, its entire trail
is drawn in the color for ground.
When loading the history, the check for stale aircraft tracks is done
differently.
This results in lots of dotted/stale track after opening the web page.
Improve this by using the same 5 second timeout stale criterion to
postions loaded from history. Add an additional check to better detect
stale tracks when loading history positions that are spaced 30 seconds
apart.