Commit Graph

92 Commits

Author SHA1 Message Date
antirez
2fe188286e Do not modify the packet when AP gets decoded. 2013-01-19 18:45:00 +01:00
antirez
c9bb48675c Squawk extraction fixed. 2013-01-19 18:44:54 +01:00
antirez
b4805ea7d4 Two important fixes to CPR decoding: wrong cast and more precise timing.
This commit address two issues with the implementation of CPR decoding:

Fix #1: The two functions N() and DLon() used to have the latitude
parameter as an integer (!), basically truncating the fractional part
before calling the NL() function to perform the lookup.

This resulted into random strange movements of aircrafts, especially
jumps or shifted positions.

Fix #2: Use milliseconds for CPR odd/even timestamps. Dump1090 already
tried to use the most recent packet received among the odd and even
packets currently available, however to do this correctly millisecond
resolution should be used, otherwise many times the odd and even packet
appear to have the same time in seconds and we don't always use the
latest received.
2013-01-18 23:05:08 +01:00
antirez
03759a3eb0 Google map view enhanced: color by altitude and more. 2013-01-16 20:25:28 +01:00
antirez
21fc9de47a HTTP keep-alive fixed. Network debugging capabilities. 2013-01-16 20:07:35 +01:00
antirez
e40e55bfe0 Less buggy network requests parser. 2013-01-16 00:40:47 +01:00
antirez
dc91712741 Aggressive mode implemented. 2013-01-15 22:37:47 +01:00
antirez
0bf65d8646 Better error handling for network clients. 2013-01-15 00:35:21 +01:00
antirez
e1d3724271 Regression fixed: set client socket non-blocking. 2013-01-15 00:24:19 +01:00
antirez
42eb990685 HTTP: Set clen correctly when serving gmap.html. 2013-01-14 20:25:11 +01:00
antirez
a583615b66 Initial HTTP support with planes animated using google map. 2013-01-14 15:13:43 +01:00
antirez
4203b9caf6 Minor README improvements. 2013-01-12 20:28:24 +01:00
antirez
b10c8dab35 CPR decoding fixed. 2013-01-12 18:18:23 +01:00
antirez
f3a705f57e README -> README.md 2013-01-12 11:58:25 +01:00
antirez
ddb1aa2209 README improved with more antennas info. 2013-01-12 11:46:53 +01:00
antirez
0ce746dc5f Ability to receive traffic from network. 2013-01-12 11:46:32 +01:00
antirez
b5ff48e5f5 Network server sending raw data to clients. 2013-01-10 20:58:13 +01:00
antirez
539039f037 Set heading to 0 when speed is 0. 2013-01-10 19:03:41 +01:00
antirez
af4964d72f With --raw fflush() at every output to avoid delays. 2013-01-10 19:01:28 +01:00
antirez
9c8ad1c6b7 More stuff on .gitignore. 2013-01-10 19:00:07 +01:00
antirez
b6907f400a CPR position decoding. Track calculation from velocity components. 2013-01-09 22:51:29 +01:00
antirez
ec1f34f572 Fix for --metric 2013-01-08 20:02:58 +01:00
antirez
32fe8d8d69 New --metric option to use meters and km/h in --interactive. 2013-01-08 19:46:50 +01:00
antirez
f231c7adb2 Remove idle aircrafts in interactive mode. 2013-01-08 19:25:28 +01:00
antirez
3f47bb6f47 Initialize aircraft speed in interactive mode.
The effect of this bug was random speeds displayed with --interactive.
2013-01-08 19:23:51 +01:00
antirez
1576b61af5 Minor aesthetic change to interactive mode. 2013-01-07 01:50:34 +01:00
antirez
840a005d16 Interactive mode with --ifile: play at natural speed. 2013-01-07 01:47:39 +01:00
antirez
69ae2491a5 New AP brute forcing algorithm.
The old approach was to loop over a small circular buffer of recently
seen addresses recomputing the CRC every time: this prevented the use of
a big cache, and 20 entries was too small in case of high traffic and
big range antennas.

@prog on ##rtlsdr suggested to use an alternative algorithm where
instead we compute the CRC of the message, and xor it to obtain the
address, that is later checked in our list of recently seen addresses.
This is a lot better and allows for bigger tables in O(1) lookup time.

I used this idea to implement a larger 1024 elements table. Instead of
writing a proper hash table I used the fact we are just dealing with a
cache, so I just hash the ICAO addess and overwrite the old entry at
that idex with the address-timestamp pair, not caring about collisions.

The bigger table makes a huge difference:
In a test vector of 113 seconds recording with 76 simultaneous aircrafts
the new algorithm detected around 10k more messages (!).
2013-01-07 01:15:29 +01:00
antirez
fed415b699 Show 16 bit magnitude value with --debug. 2013-01-07 00:29:35 +01:00
antirez
0a7c5c2e2e Threads locking model fixed (reliable --ifile). 2013-01-06 22:56:32 +01:00
antirez
c653e0e95d Added a new --onlyaddr option to just output ICAO addresses. 2013-01-06 17:09:31 +01:00
antirez
b3945d1b4f Use 16 bit for the magnitude vector to improve sensitivity.
As @keenerd noted on ##rtlsdr, using an 8 bit magnitude vector is not
enough in order to distinguish every different I/Q pair.

With this commit a few more messages with good CRC are detected.
2013-01-06 16:54:54 +01:00
antirez
417cab5fda Improved message detection and --stats option.
The demodulation algorithm now only skips the current message if the
CRC is valid, this improves the amount of messages detected with good
CRC by ~ 4% since sometimes we are just a few samples out of sync.

This also improves the amount of messages that can be fixed.

The --stats option was added in order to better evaluate how the
algorithm performs on the same input after some change. So if you run
the program with both --ifile and --stats no Mode S message is logged
at all, but at the end of the processing the program shows you the
amount of messages decoded with good, bad crc, bit corrections, valid
preambles and so forth.
2013-01-06 15:13:40 +01:00
antirez
3833673f3f Git ignore the right executable name. 2013-01-05 21:42:26 +01:00
antirez
f01324cea4 Interactive mode: new switch --interactive-rows for max # of rows. 2013-01-05 21:41:09 +01:00
antirez
d974a4db90 Everything renamed dump1090 (was mode1090). 2013-01-05 20:00:46 +01:00
Steve Markgraf
c059d01feb Makefile: use pkgconfig instead of hardcoded paths 2013-01-05 20:00:42 +01:00
antirez
f01670e425 Use 1.408 factor to create the magnitude look up talbe.
Previously 1.4 was used that prevented to use the full 0-255 scale.
Thanks to @keenerd for reporting this issue.
2013-01-05 17:03:03 +01:00
antirez
d709a21f4f TODO list updated. 2013-01-05 16:56:25 +01:00
antirez
cae1d0cda1 Fixed errors and typos in --help. 2013-01-05 16:46:08 +01:00
antirez
1971ba9706 --raw output format is now compatible with adsbhub. 2013-01-05 14:30:23 +01:00
antirez
7ca5a4b3a4 Initial commit of Dump1090, a simple Mode S decoder. 2013-01-05 13:52:25 +01:00