[hamradio-commits] [dump1090] 387/389: merge new upstream version
Matthew Ernisse
mernisse-guest at moszumanska.debian.org
Wed Nov 5 00:20:17 UTC 2014
This is an automated email from the git hooks/post-receive script.
mernisse-guest pushed a commit to branch master
in repository dump1090.
commit 1070715333c7b0862b6ba759562fecb807d35b2d
Merge: e14d4cc bff92c4
Author: Matthew Ernisse <mernisse at ub3rgeek.net>
Date: Tue Nov 4 19:18:34 2014 -0500
merge new upstream version
debian/CHANGES | 283 +++++++++++++++++++++
debian/changelog | 9 +-
debian/patches/01-jquery.patch | 6 +-
.../{03-excanvas.patch => 02-excanvas.patch} | 4 +-
debian/patches/02-http-buffer.patch | 111 --------
debian/patches/04-socket_leak.patch | 177 -------------
.../05-disable-local-file-http-access.patch | 105 +-------
debian/patches/series | 4 +-
debian/rules | 1 +
dump1090.c | 3 +
dump1090.dsp | 4 +
dump1090.h | 3 +-
dump1090.rc | 115 +++++++++
mode_s.c | 111 +++++---
net_io.c | 101 +++++---
public_html/config.js | 1 +
public_html/gmap.html | 4 +-
public_html/planeObject.js | 6 +
public_html/script.js | 38 ++-
public_html/style.css | 2 +-
winstubs.h | 3 +-
21 files changed, 617 insertions(+), 474 deletions(-)
diff --cc debian/CHANGES
index 504d547,0000000..e7ee819
mode 100644,000000..100644
--- a/debian/CHANGES
+++ b/debian/CHANGES
@@@ -1,3482 -1,0 +1,3765 @@@
+# Generated with: git log --pretty=format:"Commit: %h%n%B%N%n%aN <%ae>%n%n"
++Commit: bff92c4
++Merge pull request #36 from mutability/improve-phase-enhancement
++
++Rearrange phase enhancement so that it handles phase errors in both directions
++MalcolmRobb <Support at ATTAvionics.com>
++
++
++Commit: 960ebfc
++Publish version 1.10.3010.14
++
++Malcolm Robb <Support at ATTAvionics.com>
++
++
++Commit: b8ea754
++Merge pull request #13 from bovine/faurl
++
++link to FlightAware for flight details
++MalcolmRobb <Support at ATTAvionics.com>
++
++
++Commit: a9cd75d
++More Updates to Pull #54
++
++Pull #54 breaks the Windows version of dump1090 due to a bug in the
++inet_aton() windows function.
++
++1) Fix the bug in the windows inet_aton()
++2) Modify the command line code to strdup() the command line string.
++3) Leave the Modes.net_bind_address pointer NULL if no command line
++specified
++
++Malcolm Robb <Support at ATTAvionics.com>
++
++
++Commit: cd09210
++Merge branch 'master' into faurl
++
++Jeff Lawson <jeff at bovine.net>
++
++
++Commit: 6d55cf6
++Publish version 1.10.2910.14
++
++Malcolm Robb <Support at ATTAvionics.com>
++
++
++Commit: 68f1220
++Change default binding to 0.0.0.0
++
++Pull #54 permits changing the default bind address. The default was
++127.0.0.1. This prevents external access unless a command line switch is
++used. Since many users of dump1090 are using dump1090 as remote receiver
++heads for programs such as plane plotter, this is undesirable. If you
++want to lock down your RPi for local use only then use the command line
++switch. If not, retain legacy open mode by binding to 0.0.0.0 by
++default.
++
++Malcolm Robb <Support at ATTAvionics.com>
++
++
++Commit: 5f18f6c
++Fix warnings and Windows compile problems
++
++Malcolm Robb <Support at ATTAvionics.com>
++
++
++Commit: 3447f7e
++Add Windows resource file for version numbering
++
++Malcolm Robb <Support at ATTAvionics.com>
++
++
++Commit: abaf9d8
++Fix W3C Validation Errors #34
++
++Submitted by ddeitterick, but the push didn't work on IE8/9. I hope I've
++extracted the required parts and implemented them correctly here.
++
++Malcolm Robb <Support at ATTAvionics.com>
++
++
++Commit: 5699e48
++Merge pull request #54 from l0calguest/bind_address
++
++Ability to assign bind address for services
++MalcolmRobb <Support at ATTAvionics.com>
++
++
++Commit: 7b2e4ca
++Merge pull request #49 from mutability/show-stale-planes
++
++Change the marker color for aircraft with no recent updates.
++MalcolmRobb <Support at ATTAvionics.com>
++
++
++Commit: da3cf96
++Merge pull request #38 from hhm0/http_server_wk
++
++HTTP server fixes
++MalcolmRobb <Support at ATTAvionics.com>
++
++
++Commit: 027ab92
++Merge branch 'master' of https://www.github.com/MalcolmRobb/dump1090 into http_server_wk
++
++hhm <heehooman+vcs-ci at gmail.com>
++
++
++Commit: c142c1f
++Merge pull request #33 from hhm0/socket_hang
++
++Close network file descriptors when finished with them
++MalcolmRobb <Support at ATTAvionics.com>
++
++
++Commit: 3333fcd
++Merge branch 'master' of https://www.github.com/MalcolmRobb/dump1090 into socket_hang
++
++hhm <heehooman+vcs-ci at gmail.com>
++
++
++Commit: cbab205
++Merge branch 'master' of https://www.github.com/MalcolmRobb/dump1090 into http_server_wk
++
++hhm <heehooman+vcs-ci at gmail.com>
++
++
++Commit: d1ad4b9
++Merge pull request #30 from tslocum/fr24link
++
++Add flightradar24.com link
++MalcolmRobb <Support at ATTAvionics.com>
++
++
++Commit: f95d54e
++Merge pull request #25 from ddeitterick/center_selected_plane_distance
++
++Center "Distance from Site" for Selected Plane
++MalcolmRobb <Support at ATTAvionics.com>
++
++
++Commit: e225b5d
++Merge pull request #24 from ddeitterick/add_distance_to_table
++
++Add Distance to Table Info
++MalcolmRobb <Support at ATTAvionics.com>
++
++
++Commit: 5b4d811
++Ability to assign bind address for services
++
++demonx <demonx at spiru.la>
++
++
++Commit: 87a88c9
++Merge branch 'master' into faurl
++
++Jeff Lawson <jeff at bovine.net>
++
++
++Commit: f71bc6c
++Merge branch 'master' of https://www.github.com/MalcolmRobb/dump1090 into http_server_wk
++
++hhm <heehooman+vcs-ci at gmail.com>
++
++
++Commit: e20e240
++B"H Merge branch 'master' of https://www.github.com/MalcolmRobb/dump1090 into socket_hang
++
++Conflicts:
++ net_io.c
++
++hhm <heehooman+vcs-ci at gmail.com>
++
++
++Commit: 75438d5
++Change the marker color for aircraft with no recent updates.
++
++Oliver Jowett <oliver at mutability.co.uk>
++
+
+Commit: 65751ed
+Merge pull request #45 from mutability/net-client-eof-handling
+
+Detect client EOF properly. Handle EWOULDBLOCK.
+MalcolmRobb <Support at ATTAvionics.com>
+
+
+Commit: dee6ded
+Merge pull request #35 from mutability/use-repaired-checksums
+
+Check if bit correction happened before bailing out due to a bad CRC.
+MalcolmRobb <Support at ATTAvionics.com>
+
+
+Commit: 4f449a8
+Make Pull # compatible with Pull #42
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 16a900c
+Merge pull request #42 from mutability/prefer-global-cpr
+
+Prefer to use global CPR decoding where possible.
+MalcolmRobb <Support at ATTAvionics.com>
+
+
+Commit: bc496fb
+Merge pull request #43 from mutability/more-stats
+
+Add --stats-every option, add sample block counters
+MalcolmRobb <Support at ATTAvionics.com>
+
+
+Commit: 5a5c52d
+Merge remote-tracking branch 'origin/pr/46'
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 98f5105
+Merge pull request #47 from mutability/flightradar-compat-fix
+
+Always emit a message reception time, as otherwise the FR24 uploader is unhappy.
+MalcolmRobb <Support at ATTAvionics.com>
+
+
+Commit: 15f3408
+Always emit a message reception time, as otherwise the FR24 uploader is unhappy.
+
+When we don't have a time available (e.g. remote message) use the system time.
+
+Oliver Jowett <oliver at mutability.co.uk>
+
+
++Commit: 13fe375
++Merge branch 'master' of https://www.github.com/MalcolmRobb/dump1090 into http_server_wk
++
++hhm <heehooman+vcs-ci at gmail.com>
++
++
++Commit: 8b4d5b3
++Merge branch 'master' of https://www.github.com/MalcolmRobb/dump1090 into socket_hang
++
++hhm <heehooman+vcs-ci at gmail.com>
++
++
+Commit: bf11136
+Merge pull request #44 from mutability/fix-obinary
+
+Only use O_BINARY on Win32
+MalcolmRobb <Support at ATTAvionics.com>
+
+
+Commit: 186cac5
+Use the anet-reported error string when reporting bind errors.
+
+errno may have been modified by the time you see it.
+
+Oliver Jowett <oliver at mutability.co.uk>
+
+
+Commit: a513c36
+Detect client EOF properly. Handle EWOULDBLOCK.
+
+Client disconnection appears as a read of 0 bytes.
+Without a test for this, dump1090 continues to poll that client forever.
+
+Also, read() may return EWOULDBLOCK as well as EAGAIN
+for "no data right now", so handle that.
+
+I don't know if there is an equivalent Win32 bug here as the Win32
+interfaces seem subtly different to vanilla POSIX.
+
+The following test/break can probably be removed if Win32 needs
+the same fix.
+
+Oliver Jowett <oliver at mutability.co.uk>
+
+
+Commit: 98c7c73
+Only use O_BINARY on Win32
+
+Oliver Jowett <oliver at mutability.co.uk>
+
+
+Commit: c09c684
+Merge pull request #41 from mutability/skip-remote-timestamps
+
+Don't output message reception time in SBS format for remote messages.
+MalcolmRobb <Support at ATTAvionics.com>
+
+
+Commit: e3bbf7b
+Read Files are binary
+
+When replaying recordings, the read files are binary, so the file open
+needs to reflect this so that spurious end of file characters aren't
+misinterpreted.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: aa063ba
+Undo Parts of Pull request #29
+
+The table sizing doesn't seem to work in M$ IE8 and IE9.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 732fe52
+Merge pull request #28 from ddeitterick/change_plotted_plane_table_bg_color
+
+Change the Background Color for a Plotted Plane
+MalcolmRobb <Support at ATTAvionics.com>
+
+
+Commit: 9d3452f
+Merge pull request #27 from ddeitterick/format_track_field
+
+Add Degree Symbol to Track Value
+MalcolmRobb <Support at ATTAvionics.com>
+
+
+Commit: 5cdcc22
+Merge pull request #29 from tslocum/bettermap
+
+Improve map display layout and styling
+MalcolmRobb <Support at ATTAvionics.com>
+
+
+Commit: bd151e1
+Merge pull request #40 from mutability/discard-bad-cpr-latitudes
+
+Reject out-of-range latitudes when doing CPR decoding.
+MalcolmRobb <Support at ATTAvionics.com>
+
+
+Commit: 8725ba0
+Merge pull request #39 from mutability/fractional-gain
+
+Fix --gain with fractional gain values.
+MalcolmRobb <Support at ATTAvionics.com>
+
+
+Commit: b98c685
+Move the stats reset strictly after stats display, so the total message count is shown correctly.
+
+Oliver Jowett <oliver at mutability.co.uk>
+
+
+Commit: 3eb39ab
+Don't output message reception time in SBS format for remote messages.
+
+For remotely received messages that have a mlat timestamp, we have no
+useful way of turning that timestamp into a wallclock timestamp, so
+don't try, or we'll just produce wildly wrong results (_days_ in error)
+
+Oliver Jowett <oliver at mutability.co.uk>
+
+
+Commit: 4fc2697
+Add stats for number of sample blocks processed and dropped.
+
+Oliver Jowett <oliver at mutability.co.uk>
+
+
+Commit: 1006167
+Add --stats-every <secs> option.
+
+Periodically displays and resets stats.
+Useful for unattended operation.
+
+Oliver Jowett <oliver at mutability.co.uk>
+
+
+Commit: 661246d
+Prefer to use global CPR decoding where possible.
+
+There is a danger in always using relative decoding where possible.
+If there is an undetected error in the first pair of messages received,
+then global CPR decoding will give a bad position, and subsequent
+relative decoding will just walk around near that bad position even
+though many error-free pairs of odd/even messages may have been received.
+
+The first pair of position messages also tends to be the most error-prone, as
+they are usually received at the extreme edge of receiver range.
+
+(I see this happen at least once a day in practice)
+
+So, instead, prefer to use global decoding when we have sufficiently recent data.
+With recent data this should always be as good as relative decoding, and it
+avoids getting stuck with bad data for long periods of time. If we don't have
+enough recent data for a global solution, fall back to relative decoding.
+
+Oliver Jowett <oliver at mutability.co.uk>
+
+
+Commit: e5b3572
+Reject out-of-range latitudes when doing CPR decoding.
+
+If a CPR message with an undetected error is received this can produce out-of-range results for latitude.
+e.g. even latitude of 78000, odd latitude of 0 produces a latitude index j=35 and rlat0 = 213.
+
+Oliver Jowett <oliver at mutability.co.uk>
+
+
+Commit: 95ccb90
+Fix --gain with fractional gain values.
+
+Oliver Jowett <oliver at mutability.co.uk>
+
+
++Commit: c265ea1
++B"H net_io.c http server: hopefully mem code is OK now
++
++Still learning the ropes memory-wise :-)
++
++hhm <heehooman+vcs-ci at gmail.com>
++
++
++Commit: 32fc5fd
++B"H net_io.c: http server: content should be dynamically allocated
++
++hhm <heehooman+vcs-ci at gmail.com>
++
++
++Commit: df19d51
++B"H net_io.c: use %d like local code
++
++hhm <heehooman+vcs-ci at gmail.com>
++
++
++Commit: 8d307cd
++B"H net_io.c: http serve: return HTTP response codes
++
++hhm <heehooman+vcs-ci at gmail.com>
++
++
++Commit: 04f4abd
++B"H net_io.c: add missing else statement
++
++hhm <heehooman+vcs-ci at gmail.com>
++
++
++Commit: 31b28b3
++Rearrange phase enhancement so that it handles phase errors in both directions.
++This almost doubles the number of messages recovered by phase enhancement.
++
++Oliver Jowett <oliver at mutability.co.uk>
++
++
++Commit: eb41be3
++B"H net_io: http: check if file can be sent
++
++hhm <heehooman+vcs-ci at gmail.com>
++
++
+Commit: 7fab5b0
+Check if bit correction happened before bailing out due to a bad CRC.
+
+Oliver Jowett <oliver at mutability.co.uk>
+
+
++Commit: 84fa09c
++B"H net_io.c: revert previous change and advertise HTTP 1.1
++
++It seems server code should be compatible with HTTP 1.1; the features
++unique to 1.1 mostly are upon the client to support, and some headers
++used (for example Cache-Control) may need 1.1.
++
++hhm <heehooman+vcs-ci at gmail.com>
++
++
++Commit: 0317c48
++B"H make sure to close sockets when finished
++
++hhm <heehooman+vcs-ci at gmail.com>
++
++
++Commit: e5fddba
++Add flightradar24.com link
++
++Trevor Slocum <tslocum at gmail.com>
++
++
+Commit: b7d01c5
+Don't restrict sidebar width
+
+Trevor Slocum <tslocum at gmail.com>
+
+
+Commit: 14ff25b
+Improve map display layout and styling
+
+Trevor Slocum <tslocum at gmail.com>
+
+
+Commit: a82df07
+Version 1.09.0608.14
+
+Release of COAA PlanePlotter MLAT and SMU support for RPi
+
+ppup1090 now supports Ground Stations functions required for MLAT and
+SMU operation. This is *ONLY* available for RPi and similar linux
+hardware.
+
+Also included are sample startup scripts for dump1090 only and
+dump1090+ppup1090 together.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 90fa1da
+net_io port 30003 bug
+
+Thanks to "Harrie" for this one.
+Fix the SBS port 30003 stream to always include speed and/or heading
+when available.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: f1b85ec
+Tidy up interactive.c
+
+Remove spaces from the end of line.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 845289a
+Version 1.09.1607.14
+
+Improvements to COAA MLAT functions
+Reduce CPU load in PPUP1090 and DUMP1090 during cleanup
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 8b05286
+Version 1.09.1007.14
+
+Updates to support COAA Planeplotter Ground Station on an RPi
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: df4a8ce
+Change the Background Color for a Plotted Plane
+
+Changed the background color for a plotted plane in the planes table to
+something that was more easily visible.
+
+ddeitterick <doug at deitterick.com>
+
+
+Commit: 0c2487d
+Add Degree Symbol to Track Value
+
+Add the degree symbol to the "Track:" value in the plane details
+section.
+
+ddeitterick <doug at deitterick.com>
+
+
++Commit: f933ed2
++Center "Distance from Site" for Selected Plane
++
++Center "Distance from Site" under "Lat/Long" for selected plane.
++
++ddeitterick <doug at deitterick.com>
++
++
++Commit: a13c2f8
++Add Distance to Table Info
++
++Add distance to table if site coordinates are provided and sort the
++table by distance. If coordinates aren't provided, the column isn't
++displayed.
++
++ddeitterick <doug at deitterick.com>
++
++
+Commit: a17e5b0
+Merge pull request #23 from hhm0/decoding
+
+use last recent airplane position to calculate its ground position
+MalcolmRobb <Support at ATTAvionics.com>
+
+
+Commit: d1b37ad
+B"H decoding: use last air position to calculate ground position
+
+hhm <heehooman+vcs-ci at gmail.com>
+
+
+Commit: 60e2c92
+Merge pull request #21 from hhm0/view1090_net_mods
+
+View1090 net mods
+MalcolmRobb <Support at ATTAvionics.com>
+
+
+Commit: f68ae55
+Merge pull request #22 from matthewbrandes/master
+
+Allows choosing device by serial number rather than device index which can change.
+MalcolmRobb <Support at ATTAvionics.com>
+
+
+Commit: 6f14ecf
+Update dump1090.c
+matthewbrandes <matthewb at report4u.net>
+
+
+Commit: c805822
+Delete convienience.c
+matthewbrandes <matthewb at report4u.net>
+
+
+Commit: 3043e86
+Delete convienience.h
+matthewbrandes <matthewb at report4u.net>
+
+
+Commit: 652af93
+Update dump1090.c
+matthewbrandes <matthewb at report4u.net>
+
+
+Commit: d020756
+Update dump1090.c
+matthewbrandes <matthewb at report4u.net>
+
+
+Commit: a190677
+Create convienience.c
+matthewbrandes <matthewb at report4u.net>
+
+
+Commit: 50b05c5
+Create convienience.h
+matthewbrandes <matthewb at report4u.net>
+
+
+Commit: 8110549
+Update dump1090.c
+matthewbrandes <matthewb at report4u.net>
+
+
+Commit: a86eb7a
+B"H view1090: do not use pthreads
+
+It *seems* that pthreads are used in dump1090 for I/! sample reading
+only. So view1090 need not use pthread_exit.
+
+hhm <heehooman+vcs-ci at gmail.com>
+
+
+Commit: ec09cc7
+B"H view1090: sleep a bit between loops
+
+view1090 was using close to 100% CPU before, with the non-blocking
+commits and the reconnection code. sleep a bit between loop iterations
+to keep CPU usage low.
+
+CPU usage with this addition was down to <1% in testing.
+
+hhm <heehooman+vcs-ci at gmail.com>
+
+
+Commit: 350a57f
+B"H view1090: do not block
+
+ - do not block on network data
+
+hhm <heehooman+vcs-ci at gmail.com>
+
+
+Commit: 96015e3
+B"H view1090: handle disconnection
+
+ - keep trying to reconnect to server if disconnected
+
+hhm <heehooman+vcs-ci at gmail.com>
+
+
+Commit: c0d6ea0
+Merge pull request #20 from hhm0/network_disabling
+
+make network services disable-able
+MalcolmRobb <Support at ATTAvionics.com>
+
+
+Commit: 190a746
+Merge pull request #19 from hhm0/decoding
+
+decode more squawk codes
+MalcolmRobb <Support at ATTAvionics.com>
+
+
+Commit: 59984ac
+B"H allow disable ports, doc disable net heartbeat
+
+hhm <heehooman+vcs-ci at gmail.com>
+
+
+Commit: 506be6e
+B"H decode more data, etc.
+
+- decodes a bit more information
+- misc. small changes
+
+hhm <heehooman+vcs-ci at gmail.com>
+
+
+Commit: 189e726
+Merge pull request #16 from papasven/master
+
+Incorrect value for auto-gain
+MalcolmRobb <Support at ATTAvionics.com>
+
+
+Commit: e6c4338
+Incorrect value for auto-gain
+
+Incorrect value for auto-gain option the Modes.gain is multiplied by 10.
+papasven <sven.haendel at arcor.de>
+
+
+Commit: 6afdc9b
+Merge remote-tracking branch 'origin/Debug'
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 903f93f
+Publish Version 1.08.2705.14
+
+A few minor additions and bug fixes as detailed below
+
+1) Additional command line option "--net-buffer <n>" to specify the TCP
+output buffer size. Default is n=0, which is 64Kb. Specify a value of n
+to increase the buffer size according to Size = 64Kb * 2^n, so an n of
+1 = 128Kb, n=2 is 256Kb etc. n is limited to 7, so the max size is 8Mb.
+This option may assist if you have a high number of aircraft being
+received, and an unreliable network connection, or if the receiving end
+can be busy for an extended time.
+
+2) Bug fix in ppup1090 which prevented the uploading of valid
+ModeA/Squawk codes
+
+3) Bug fix per Markus Grab's commit.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 00533e7
+Fixed: now skipping correct number of values in magnitude buffer
+
+Variable j points to the current location in the magnitude vector.
+When decoding a message (MODES_PREAMBLE_US+msglen)*2 is added to j.
+In the loop head j is increased by 1, so one value was skipped.
+
+Markus Gräb <m_graeb11 at cs.uni-kl.de>
+
+
+Commit: dfb3191
+Merge pull request #14 from kopppa91/master
+
+Fixed: now skipping correct number of values in magnitude buffer
+MalcolmRobb <Support at ATTAvionics.com>
+
+
+Commit: 583f242
+Fixed: now skipping correct number of values in magnitude buffer
+
+Variable j points to the current location in the magnitude vector.
+When decoding a message (MODES_PREAMBLE_US+msglen)*2 is added to j.
+In the loop head j is increased by 1, so one value was skipped.
+
+Markus Gräb <m_graeb11 at cs.uni-kl.de>
+
+
+Commit: a55b9a7
+BUGFIX : Windows version HTML Web browser support
+
+Allow connection of a web browser to the Windows version via
+http://127.0.0.1:8080
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: d200099
+BUGFIX : Possible linked list bug
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 30ae45e
+Windows Version of dump1090
+
+Make the modifications necessary to compile dump1090 for WinXP, Win7 and
+hopefully Win8.
+
+The files can be compiled using M$ Visual Studio/C++ 6.0. Due to various
+licensing issues, I haven't included the libraries or DLLs. You will
+need to locate pthreadVC2.lib and rtlsdr.lib to link the file, install
+the zadig drivers to support the dongle, and locate libusb-1.0.dll,
+msvcr100.dll, pthreadVC2.dll and rtlsdr.dll.
+
+dump1090.exe will not run on any Windows version prior to XP SP2,
+because msvcr100.dll imports several functions from the Windows kernel
+that are not available on earlier versions. This means dump1090 won't
+work on Win2K.
+
+The major change to the code relates to file handles. The original code
+assumes Linux behaviour in that handles are allocated from 0
+sequentially upwards. However Windows handles are allocated pseudo
+randomly, and handle numbers greater than 1024 would break the code. The
+code has therefore been modified to use a linked list of connection
+structures, rather than a static array limited to 1024 entries.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: f7843c1
+Implement TCP Heartbeat
+
+Some users have reported issues where the TCP link to dump1090 can be
+lost at times of low traffic density - typically in the middle of the
+night. One possible reason for this is that some routers drop the link
+if there is no traffic for a predetermined period.
+
+To try and resolve this, dump1090 now sends a 'null' packet consisting
+of 7 "0x00" bytes approximately once a minute if there is no real
+received traffic during this time. This packet should be discarded by
+the application receiving the dump1090 because it will have an invalid
+checksum, and ICAO address 0x000000 is also invalid. However, this null
+packet should be enough to keep routers alive.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
++Commit: cc27ff6
++link to FlightAware for flight details
++
++Jeff Lawson <jeff at bovine.net>
++
++
+Commit: 4a438d6
+Update the Windows version of View1090
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 97c7f69
+Publish V1.08.2302.14
+
+Final tidy up and publish
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 260b955
+BUGFIX : Beast Binary Escape characters
+
+Thanks to Blort on the PP list.
+
+The Beast binary message stream uses the 0x1a character a and escape to
+mark the beginning of a new message. However, the 0x1a character could
+occur in the body of a message since the message is binary. Therefore,
+the 0x1a is repeated -as Blort put it :
+
+This 56-bit Mode S Frame (containing a 1a) is supposed to look like
+this:
+
+1a 32 00 00 48 7b a6 1a 1a 0c 20 28 17 b0 c0 c3 b0
+
+What is actually looks (looked) like (from wireshark) is this:
+
+1a 32 00 00 48 7b a6 1a 0c 20 28 17 b0 c0 c3 b0
+
+There are supposed to be two 1A’s (Gunter’s Escape Character) in a row
+(1A 1A) whenever a data byte contains 1A, after the initial two 1A 3x
+characters.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 75a4c6e
+BUGFIX : Missed data causes timestamp slip
+
+The Mutex on the RTL data reader thread does not "force" the data
+processing thread to execute. Therefore, if the processor is busy, it is
+possible for a second RTL callback to occur before the data from the
+first has been processed. This will cause the loss of the first data,
+but worse, it will cause a slip in the timestamp. This upsets Beamfinder
+and MLAT operation in PlanePlotter.
+
+To solve this, keep a Fifo buffer which is filled by the callback
+thread, and emptied by the data processing thread. The fifo is the same
+size as the number of buffers requested in the call to
+rtlsdr_read_async().
+
+Note - we only put the value of the pointer supplied in the callback
+into the fifo. We do not attempt to cache the data in the buffer pointed
+to by the pointer. This would require us to memcopy() 2Mbytes per
+second, which we don't want to do if we don't have to because it will
+only make the processor loading worse. Instead, we assume that the data
+in the buffer will remain valid after the callback returns, at least
+until it is overwritten by new data.
+
+It is still possible for us to lose data if we can't process it quickly
+enough. However, we can now detect this loss of data when the fifo is
+almost full, and correct the timestamp for the lost block/blocks.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 24080a2
+antirez
+
+Free the client on best effort write(2) short write
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: b9a1a3e
+antirez
+
+modesFreeClient() optimized to find new maxfd faster
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: f331887
+antirez
+
+Constant replaced with macro MODES_NET_SERVICES_NUM.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 86093ea
+WIZARDISHUNGRY
+
+Dynamically size terminal using SIGWINCH
+
+https://github.com/antirez/dump1090/commit/f18180fef4ea6e0195d55439d93c4d717c35da8f
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: e9d2232
+Honor LDFLAGS
+
+Adam Cécile (Le_Vert) <gandalf at le-vert.net>
+
+
+Commit: b921d80
+Typo fixes
+
+Adam Cécile (Le_Vert) <gandalf at le-vert.net>
+
+
+Commit: fe9d168
+Bug fix in ppup1090
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: f3b5167
+Create separate Makefiles
+
+Create separate makefiles for dump1090, view1090 and ppup1090. These can
+be run with the command line "make -f makedump1090", "make -f
+makeview1019" and "make -f makeppup1090"
+
+Pass dump1090 version number into ppup1090 uploader so that coaa1090.obj
+doesn't need re-compiling between versions.
+
+Remove ppup1090 from general Makefile - it's not intended for anything
+other than RPi, so gives linker errors on other (non Linux raspian)
+systems.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 11502e9
+Extra list decoding for DF-0 and DF-16
+
+Extra list decoding for DF-0 and DF-16
+Tidy up a few things
+Change version number
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 64b24eb
+Bugfix in position decoding
+
+If the aircraft lands or takes off, the Lat/Lon valid flags are cleared.
+In the original code, this also resulted in any even/odd position
+reports in the mm record being discarded This meant that the code would
+require an even and odd position after the change of flight status.
+
+The code had been modified so that any position report in the mm record
+is used even if there is a change of flight status. This means there
+only needs to be an even or odd after a change of FS, rather than
+requiring both even and odd. The result should be earlier decoding of
+position.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: fa004fc
+DF-11 SI/II Detection changes
+
+Don't allow detection of DF-11 SI/II until we have received at least one
+DF-11 for the aircraft with an SI/II of zero.
+
+Previous versions would allow an ICAOAddr to be marked as valid if a
+DF-11 was received where the crc was less than 80. This is required for
+SI/II detection where the SI/II is overlaid on the crc field. However,
+this also decreaces the security of the crc. It is possible for a
+corrupt message to result in a crc value of between 1 and 79, and this
+will lead to an invalid ICAOAddr being marked as received.
+
+To try and prevent this, do not allow detection of DF-11 II/SI fields
+until at least one DF-11 crc=0 has been received. Once this happens, we
+ca be fairly sure that this aircraft really is within range, and so
+II/SI detection can e used.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: f50744b
+Better Incorporate coaa.h
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: f821613
+mode_ac.c comit
+
+Dunno why - haven't changed it - but github is forcing me to re-commit
+this.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 5b5424d
+View1090 WinXP bugfix
+
+Updated the way socket handles are used in View1090 to maintain
+compatibility between UNIX and Windows.
+
+Added the initial attempt at a Planeplotter uploader
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: a968f03
+Stop heading using multiple lines
+
+In the table view of aircraft, the heading was displayed as "330 (NW)"
+or similar. However, this cause the entry to scroll over into two lines
+of text, and reduces the number of planes that can be seen in the table
+at any one time.
+
+There probably should be a way to make the table view wider by scrolling
+it, but I can't see any way to do that. So for the moment I've commented
+out the extra (NW) bit.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 2e43a9e
+IE 8/9 Web Interface moving planes
+
+Many thanks to 0xFACE for this fix. Hopefully those using Windows and
+IE8/9 should now see some moving action.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 19ce5a2
+Additional debug message printing
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 2c28d9f
+IE 8/9 Bugs in Web interface
+
+*DISCLAIMER*
+I didn't write any of this code initially, I've never tried to use it,
+and I don't understand Java Script at all. In-fact I hate the wretched
+stuff.
+
+Anyway, it appears that no-one has bothered to test any of the Web
+interface code using Microsoft Internet Explorer 8 or 9. I've attempted
+to hack out the sections of the code that are causing problems, and at
+least the web interface now seems to run.
+
+However, for some reason the planes never move - I know this must be a
+bug, but I don't know how to fix it.
+
+Most of the errors relate to trailing commas. My guess it that some
+Java engines don't mind trailing commas, but that the Microsoft ones do.
+There are also some undefined modules (untrackedDeveloperSettings) and
+functions (console.log) which I guess those who wrote the code have on
+their machines, but forgot to include in the public distribution. I've
+no idea how to fix this, so I've just hacked them out of the code.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 0430323
+Implement a remote interactive screen
+
+No changes to dump1090, (except the version number)
+
+Include a sample Linux batch start file called dump1090.sh for use when
+running dump1090 headless. This file needs to be copied to the
+/etc/init.d/ subdirectory on your raspberry pi, and marked as
+executable. Then when you re-start your RPi, dump1090 will start-up
+auto-magically and run as a sort of server to allow both local and
+remote connection to it's various internet ports.
+
+Modified the Makefile to build a new headless helper application called
+view1090
+
+Added view1090. This is an executable that allows you to connect to
+dump1090 when it is running and 'see' the interactive screen display.
+The default is to try and connect to dump1090 on IP address 127.0.0.1
+port 30005. This should work if you are running on the same RPi as
+dump1090 and using the default dump1090 port settings. However, if
+you're running on a different machine you will have to specify the IP
+address of the RPi running dump1090 using the --net-bo-ipaddr switch.
+Something like "view1090 --net-bo-ipaddr 192.168.2.65" . You may also
+have to sudo it, depending on your privilige settings.
+
+I've also compiled view1090 as a Wiin32 exe, so you should be able to
+run it under any 32 bit version of Microsoft Windows - i.e. Win95, Win
+2K, Win XP, Win 7 etc. It may work on Win 8 and 64 bit Windows, but I
+haven't tried it. The Win32 version is compiled from the same source, so
+takes all the same command line switches.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 03c16aa
+Merge pull request #10 from termigrator/patch-1
+
+Update net_io.c
+MalcolmRobb <Support at ATTAvionics.com>
+
+
+Commit: c2962a0
+Update net_io.c
+
+Added vertical rate (a->vert_rate) to json output
+termigrator <robert1 at kaider.info>
+
+
+Commit: d9de119
+Version update
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 7ea2e8f
+Bug Fix in modesReadFromClient()
+
+The modesReadFromClient() funtion is called from modesReadFromClients(),
+which in turn is called from backgroundTasks(). backgroundTasks() is
+called from within the main processing loop.
+
+However, modesReadFromClient() can and does block. It attempts to read
+characters from the input stream, and loops whilst there was no error.
+This stalls the main RTL processing loop until an error occurs. In order
+to support simultaneous local reception (via our RTL dongle) and remote
+forwarding (data received from the interweb) we cannot allow this
+internet read to stall.
+
+To fix this, in modesReadFromClient() attempt to read a buffer of data
+(currently 0x400 bytes). If we get a full buffer of bytes, then process
+them, and attempt to read another full buffer. Keep doing thios untill
+we read only a partial buffer (less than 0x400 bytes). Process the
+partial buffer bytes and return.
+
+This allows us to occasionally process data that is arriving from the
+internet (which is buffered anyway in the TCP stack), without blocking
+local RTL dongle decoding.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 52ac50b
+Remove some local filtering
+
+Oops - Left some personal ModeA/C filtering in the release code that
+only applies if you happen to be within 25 miles of Yeovilton.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 6997715
+Split into separate module files
+
+Ok - this is likely to upset some people. Up until now, the vast
+majority of the code has been in just one file - dump1090.c. This file
+has grown so that it was approaching of 5000 lines long, and it was
+becoming unmanagable. So I've split the file into several modules,
+hopefully along fairly logical boundaries. The files are :
+
+1) dump1090.c : Basically just the main() entry function, the help
+function, the RTL dongle hardware interface, and a few orphan functions
+that don't really fit anywhere else.
+
+2) mode_s.c : This contains all the mode S / ADSB decoding functions.
+
+3) mode_ac.c : This contains all the mode A & C decoding functions
+
+4) interactive.c : This contains all the functions to maintain an
+internal list of aircraft seen over the last period, and functions to
+print them out to the local console.
+
+5) net_io.c : This contains all the network input/output functions
+allowing data to be passed in/out to/from other receivers, in formats
+such as SBS-1/3, Beast, AVR and JavaScript.
+
+Hopefully this should provide an easier way forward if/when more
+functions are added.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 1ebdd6d
+Interactive list aircraft display and delete changes
+
+Create two different Time-To-Live parameters for the interactive display
+list.
+
+1) Modes.interactive_display_ttl defines for how long the display of an
+aircraft persists after the last received message. The default is
+MODES_INTERACTIVE_DISPLAY_TTL, which is set to 60 seconds. This replaces
+the previous Modes.interactive_ttl/MODES_INTERACTIVE_TTL settings (which
+were also 60 seconds)
+
+2) Add an additional Modes.interactive_delete_ttl parameter, and
+default it to MODES_INTERACTIVE_DELETE_TTL, shich is set to 300
+seconds/5 minutes. This defines for how long an aircraft persists in the
+list structure after the last received message before being deleted.
+
+Also tidy up a few comments.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: da8151d
+Merge pull request #8 from bdavenport/master
+
+I can't pretend that I understand what you guys are up to with all this Java stuff, but since the changes to the maon dump1090.c file are minimal I'll trust you :-)
+MalcolmRobb <Support at ATTAvionics.com>
+
+
+Commit: 82b61f2
+Merge mapRefactor -> master
+
+terribl <terri at rannalla.net>
+
+
+Commit: b161004
+Merge mapRefactor -> master
+
+terribl <terri at rannalla.net>
+
+
+Commit: f53632b
+Merge branch 'mapRefactor' into masterMerge
+
+Conflicts:
+ .gitignore
+ public_html/gmap.html
+ public_html/script.js
+
+ All conflicts fixed but you are still merging.
+
+ modified: .gitignore
+ modified: dump1090.c
+ new file: public_html/config.js
+ new file: public_html/coolclock/coolclock.js
+ new file: public_html/coolclock/excanvas.js
+ new file: public_html/coolclock/moreskins.js
+ new file: public_html/extension.js
+ modified: public_html/gmap.html
+ new file: public_html/options.js
+ new file: public_html/planeObject.js
+ modified: public_html/script.js
+ modified: public_html/style.css
+
+terribl <terri at rannalla.net>
+
+
+Commit: 5f0e295
+From DE8MSH: Plane markers!
+Now markers look like planes! Thank You | Tak!
+
+(And bug pointed out by DE8MSH :))
+
+ modified: public_html/planeObject.js
+ modified: public_html/script.js
+
+terribl <terri at rannalla.net>
+
+
+Commit: e91b0a6
+Added warning label when 7x00 squawk is shown.
+
+"Please don't call authorities"-warning label is show on map if any special squawk is show.
+
+ modified: public_html/gmap.html
+ modified: public_html/script.js
+ modified: public_html/style.css
+
+terribl <terri at rannalla.net>
+
+
+Commit: 92d665e
+Hide Settings-windows text while page is loading.
+
+ modified: public_html/gmap.html
+ modified: public_html/script.js
+
+terribl <terri at rannalla.net>
+
+
+Commit: 0e3426d
+"Reset Map" deselects plane correctly.
+
+ modified: public_html/script.js
+
+terribl <terri at rannalla.net>
+
+
+Commit: 10e3389
+Fixed resetMap() bug
+Fixed resetMap()-funtion to reset map-settings to default. Map saves last location and zoom values to localStorage.
+
+Also added new css-class '.pointer'.
+
+ modified: public_html/gmap.html
+ modified: public_html/script.js
+ modified: public_html/style.css
+
+terribl <terri at rannalla.net>
+
+
+Commit: 072fba8
+Rolling back a couple changes and spawning a branch from here.
+
+Brian Davenport <the.lost.minded at gmail.com>
+
+
+Commit: 21229d5
+The start of a crummy looking options. It is bugged right now.
+Brought back the reset map.
+
+Brian Davenport <the.lost.minded at gmail.com>
+
+
+Commit: 5c3f6da
+Merge branch 'mapRefactor' of https://github.com/bdavenport/dump1090 into mapRefactor
+
+Conflicts:
+ public_html/script.js
+
+Brian Davenport <the.lost.minded at gmail.com>
+
+
+Commit: 4752578
+Working on making an options window
+
+Brian Davenport <the.lost.minded at gmail.com>
+
+
+Commit: fd0c116
+Tyop corrected
+
+terribl <terri at rannalla.net>
+
+
+Commit: 9904c22
+Added option to draw measurement circles around site
+Options:
+SiteCircles = true;
+SiteCirclesDistances = new Array(100,150,200);
+
+Circles are only shown if 'SiteShow' is true. SiteCirclesDistances is array of numbers. Distances are in NM or km depending 'Metric'-settings.
+
+ modified: public_html/config.js
+ modified: public_html/script.js
+
+terribl <terri at rannalla.net>
+
+
+Commit: 3000baf
+Added metric-option to web-view
+Added option to show values in metric system.
+Metric = false; // true|false
+
+Removed unused conversion from aircraftsToJson() at dump1090.c-file.
+Tweaked distance calculation to use google map api.
+
+ modified: dump1090.c
+ modified: public_html/config.js
+ modified: public_html/gmap.html
+ modified: public_html/script.js
+
+terribl <terri at rannalla.net>
+
+
+Commit: ca314fc
+Added distance to plane from site
+Just for fun. Distance is only shown if SiteShow is true in config.js-file.
+
+ modified: public_html/script.js
+
+terribl <terri at rannalla.net>
+
+
+Commit: 8b8f746
+Added site marker (and settings for that)
+Shows radars location on map. Default is not showing.
+
+Settings:
+SiteShow is boolean [true|false]
+SiteLat & SiteLon in decimal format.
+
+If using untrackedDeveloperSettings.js-file these settings can be
+copy-pasted on that file:
+
+SiteShow = false;
+SiteLat = 45.0;
+SiteLon = 9.0;
+
+ modified: public_html/config.js
+ modified: public_html/script.js
+ modified: public_html/style.css
+
+terribl <terri at rannalla.net>
+
+
+Commit: 6cb5c2b
+Merge remote-tracking branch 'upstream/master' into mapRefactor
+
+terribl <terri at rannalla.net>
+
+
+Commit: 11d69cb
+Tweaks and Fixes
+Tweaked selected planes display so it won't push plane-table around. Added
+link to FlightStats service and speed to selected plane table.
+
+ modified: public_html/script.js
+ modified: public_html/style.css
+
+terribl <terri at rannalla.net>
+
+
+Commit: 3eb21ea
+Merge remote-tracking branch 'upstream/master'
+
+terribl <terri at rannalla.net>
+
+
+Commit: 498b512
+Merge branch 'mapRefactor' of https://github.com/bdavenport/dump1090 into mapRefactor
+
+ modified: public_html/script.js
+
+terribl <terri at rannalla.net>
+
+
+Commit: e2b552e
+Merge branch 'mapRefactor' of https://github.com/bdavenport/dump1090 into mapRefactor
+Missing semicolon;
+
+ modified: public_html/script.js
+
+terribl <terri at rannalla.net>
+
+
+Commit: 5cd8a09
+Merge branch 'mapRefactor' of https://github.com/bdavenport/dump1090 into mapRefactor
+
+terribl <terri at rannalla.net>
+
+
+Commit: 40c666b
+Changed table and selected planes info display
+Changed table and selected planes info to show 'n/a' when data is not present.
+
+ modified: public_html/script.js
+
+terribl <terri at rannalla.net>
+
+
+Commit: b5d0038
+Fixes the selection bugs
+
+Brian Davenport <the.lost.minded at gmail.com>
+
+
+Commit: 29d413e
+Merge pull request #9 from MalcolmRobb/master
+
+Pulling in from MalcomRobb's master updates
+Brian Davenport <the.lost.minded at gmail.com>
+
+
+Commit: e22cff4
+Small bugs and cleaned squawkdisplay
+
+ modified: public_html/script.js
+ modified: public_html/style.css
+
+terribl <terri at rannalla.net>
+
+
+Commit: 9c465c1
+Added untrackedDeveloperSettings to this branch too.
+
+Load devel settings file after config.js and settings are saved for
+developers even after merges.
+
+ modified: .gitignore
+ modified: public_html/config.js
+ modified: public_html/gmap.html
+ modified: public_html/script.js
+
+Example file
+--- untrackedDeveloperSettings.js ---
+// Load this file after config.js so these settings are used
+
+var CONST_CENTERLAT = 35.21928;
+var CONST_CENTERLON = -80.94406;
+var CONST_ZOOMLVL = 9;
+--- untrackedDeveloperSettings.js END ---
+
+terribl <terri at rannalla.net>
+
+
+Commit: 242738b
+Removed 0000 squawks from table
+
+terribl <terri at rannalla.net>
+
+
+Commit: 228b770
+Move declarations into a headed file
+
+This is the start of breaking the main dump109.c file into smaller
+modules to make it a bit more maintainable.
+
+Move all the #define and structure declarations into dump1090.h
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: e86eb39
+VK1ET : Numerous changes to Port handling
+
+Changes based on ideas from John VK1ET. His commit notes are as follows
+:
+
+1. Change input socket handling to avoid unnecessary memmove (use
+pointers instead)
+
+2. Add ability to read and decode binary beast format TCP.
+
+3. Change output socket handling same as sbs_output - only call output
+handler if there is a current client connected use separate ports for
+beast in and out - no need for --net-beast flag. Will input/output
+format defined by socket connected to. avr raw, beast binary and sbs can
+be handled simultaneously.
+
+4. Some comments changes, filtering of ModeAC to json,.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: f64a65b
+Tidy up of UKUEHN's improvements
+
+Resolves some merge conflicts that I couldn't find a way to fix during
+the previous merge.
+
+Remove a few Tabs that escaped in the edit/merge
+
+Rename the fix_errors flag variable to nFix_crc since it now represents
+the number of crc errors to attempt to fix.
+
+Remove the aggressive variable since it's now part of nFix_crc
+
+Only print phase correction statistics when phase correction is enabled.
+
+Add an additional Modes.stat_ph_bit_fix[] to count the bits fixed during
+phase correction
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 9edba93
+UKUEHN : Various Improvements
+
+Sorry Ulrich - I can't get Github to resolve the merge errors and
+preserve your commit notes, so I'll add them here.
+Improvements on bit error correction, doc update, preparation for
+program installation/package build
+
+Hi,
+I committed some further improvements on the bit error correction code,
+updated the readme, and implemented a way to install the program in the
+linux file system hierarchy (allows for package building).
+
+Regards,
+Ulrich
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: ee742cf
+SBS Output Format changes
+
+Bug fixes in the SBS output code as a result of an EMAIL from Liviu
+
+Some software gets upset if null fields are output where the software is
+expecting a valid value. This was being caused by DF0's outputting and
+SBS MSG5. MSG5 needs Atert and SPI flags, which are derived from the FS
+field. DF0 doesn't have an FS field, so cannot output a MSG5. Change so
+that DF0 results in an SBS MSG7.
+
+Also DF17/DF18 metypes 5 to 18 contain raw Lat/Lon data. However they
+cannot be decoded into real Lat/Lon values unless both even and odd
+parts are available Therefore, when we receive a DF17/DF18 we need to
+check that we have successfully decoded the Lat/Lon before we attempt to
+send an SBS MSG2 or MSG3. If we don't have a decoded Lat/Lon, send a
+MSG7 instead.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 4c0ed6d
+Set AOG_VALID for DF-17/18 metype 19
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 77bd1f4
+Include Vertical rate in aircraft structure
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 8b5c74d
+Split into multiple JS files,
+Selecting planes now works,
+Started work on settings window,
+Created extension.js, an area for new ideas to be tested or loaded out of.
+
+Brian Davenport <the.lost.minded at gmail.com>
+
+
+Commit: b0e0f96
+Merge pull request #8 from MalcolmRobb/master
+
+Pulling in from MalcomRobb's Master
+Brian Davenport <the.lost.minded at gmail.com>
+
+
+Commit: e0c752b
+Merge branch 'master' of https://github.com/terribl/dump1090
+
+terribl <terri at rannalla.net>
+
+
+Commit: 1436062
+Merge remote-tracking branch 'upstream/master'
+
+terribl <terri at rannalla.net>
+
+
+Commit: e309025
+Merge remote-tracking branch 'upstream/master'
+
+terribl <terri at rannalla.net>
+
+
+Commit: 6bf2f2b
+Added global settings and untrackedDeveloperSettings.js-file.
+
+untrackedDeveloperSettings.js
+Create file and add line `var developerSettings = true;` on top of it.
+After that some settings can be overwritten with deleloper's flavour.
+
+-- Example File w/o line numbers --
+var developerSettings = true;
+
+var CONST_CENTERLAT = 60.0; // 45.0
+var CONST_CENTERLON = 20.0; // 9.0
+var CONST_ZOOMLVL = 6; //5
+-- End of Example File --
+
+ modified: .gitignore
+ modified: public_html/gmap.html
+ modified: public_html/script.js
+
+terribl <terri at rannalla.net>
+
+
+Commit: d2a1565
+Couple more small tweaks to the tails of planes.
+Added "CoolClock" both local and GMT to the info pane, http://randomibis.com/coolclock/
+
+Brian Davenport <the.lost.minded at gmail.com>
+
+
+Commit: e50c2a5
+Phase Enhancement changes
+
+Phase enhancement is used to try and increase the signal amplitude when
+Nyquist sample aliasing is suspected. In previous versions, this was
+enabled by default. In this version, the default is off. There is now an
+additional command line switch --phase-enhance to turn it on.
+
+There are also additional debug statistics which count the number of
+phase demodulation failures in for both uncorrected and phase corrected
+passes.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: b481c76
+mm structure initialisation
+
+Ideally we should clear down the mm structure every loop of our
+ModeA/C/S bit detector. However, we're getting 2Mbits of data per
+second, and the structure is several tens of bytes long. Clearing down
+every loop would require us to zero up to 100Mb per second. The memset
+function may be fast, but it's still going to take up valuable processor
+time.
+
+So instead of clearing the whole structure every loop, just clear the
+important parts.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 2c7c1a4
+Merge remote-tracking branch 'upstream/master'
+
+terribl <terri at rannalla.net>
+
+
+Commit: b542488
+Updated a copy/paste error, where I did not update the paste.
+Brian Davenport <the.lost.minded at gmail.com>
+
+
+Commit: caf413c
+Working on adding paths to the planes.
+
+Brian Davenport <the.lost.minded at gmail.com>
+
+
+Commit: 3117b1c
+Merge pull request #6 from terribl/master
+
+resetMap()
+
+Did I manage to do this right? Let's try.
+Terhi <terri at rannalla.net>
+
+
+Commit: f853550
+Fixing resetMap()-bug.
+
+terribl <terri at rannalla.net>
+
+
+Commit: 4a3113f
+Decode DF-18
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 08ffc3f
+Change mm.crc checks to mm.correctedbits
+
+Instead of force clearing mm.crc to zero if we successfully correct bit
+errors, just use the mm.correctedbits variable. This allows us to print
+out the crc value containing the errors during list output modes.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: c43c922
+Making the inital checkin to the refactored map page.
+
+Brian Davenport <the.lost.minded at gmail.com>
+
+
+Commit: 05c9ebb
+Merge pull request #3 from terribl/master
+
+New settings div
+Brian Davenport <the.lost.minded at gmail.com>
+
+
+Commit: a1d4a9f
+Merge branch 'settings'
+
+terribl <terri at rannalla.net>
+
+
+Commit: be6cb6e
+VK1ET : Use error corrected DF17
+
+Actually use the (DF17) messages where we do bit correction.
+
+Other changes to AVR message I/O.
+1) treat mlat timestamp of zero as invalid (easier to work with than
+(-1) and equally unlikely).
+2) If we don't have a valid timestamp send a without timestamp
+'*.......' message rather than '@.......' with invalid time.
+3) Drop interpretation of obsolete AVR ' #' & '$' formats - they
+wouldn't have worked anyway (wrong length).
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: e33591d
+VK1ET : Check Bit Correction against ICAO cache
+
+If we error correct a DF17 frame, check that the ICAOaddr exists in our
+recently seen ICAO cache. This reduces the likelyhood of birthday
+paradox solutions producing false ICAO addresses
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 542b94d
+VK1ET : Changes to fixBitErrors()
+
+1) Reduce complexity of fixBitErrors()
+2) Inline flipBits()
+3) Remove validation checks that can never occur.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: d7df2ad
+Merge remote-tracking branch 'upstream/master'
+
+terribl <terri at rannalla.net>
+
+
+Commit: 0a0ba16
+VK1ET : Changes to modesInitError()
+
+Restrict Syndromes to exclude DF bits. Do NOT introduce syndromes for
+errors in the first 5 bits (DF field)
+
+Use the --aggressive flag to see if we populate the two-bit error
+syndromes. If --aggressive is not specified, then we don't attempt to
+fix two bit errors.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 0dfc083
+New settings area
+New settings area can be opened by clicking Settings-link and closed by same link or OK-button. No settings to change yet.
+
+ modified: public_html/gmap.html
+ modified: public_html/script.js
+ modified: public_html/style.css
+
+terribl <terri at rannalla.net>
+
+
+Commit: 640d63a
+VK1ET: Shorten CRC calculation
+
+We don't need to include the CRC itself one bit at a time. This shortens
+the loop count by 24 iterations, so should be much faster
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: f33a709
+VK1ET : Better pthread termination
+
+Close threads, mutex and conditions using pthread functions
+
+Also, correct/update a few comments.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 92fd06b
+VK1ET : Bugfix in Error correction table
+
+vk1etI believe there is an error in the way the CRC error syndromes are
+being created in the two bit case. The inner loop was introducing an
+extra error bit each time through rather than moving it. Below is the
+modified code fragment for syndrome creation collapsedSun 07:26
+19 May 2013 07:26vk1et [notifications at github.com]Actions
+To:Mantirez/dump1090 [dump1090 at noreply.github.com]Cc:MMalcolmRobb
+[Support at ATTAvionics.com]
+
+To help protect your privacy, some content in this message has been
+blocked. If you're sure this message is from a trusted sender and you
+want to re-enable the blocked features, click here.
+Bugfix first noted by VK1ET, and posted here :
+https://github.com/antirez/dump1090/pull/23#issuecomment-18113094
+
+I believe there is an error in the way the CRC error syndromes are being
+created in the two bit case. The inner loop was introducing an extra
+error bit each time through rather than moving it.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: bd39479
+Merge pull request #6 from bdavenport/tablesort
+
+Table sort & bit cleaner look with larger tables on smaller screens
+MalcolmRobb <Support at ATTAvionics.com>
+
+
+Commit: 0ee5cdb
+Fixed a bug on Settings-link placement
+
+terribl <terri at rannalla.net>
+
+
+Commit: 2d1325f
+Changing info_footer to info_settings.
+
+Location from footer to top right hand corner.
+
+ modified: public_html/gmap.html
+ modified: public_html/script.js
+ modified: public_html/style.css
+
+terribl <terri at rannalla.net>
+
+
+Commit: 8e23983
+Merge pull request #1 from terribl/master
+
+Added link to FlightStats-service
+Brian Davenport <the.lost.minded at gmail.com>
+
+
+Commit: 9e8c105
+Added link to FlightStats for flights with flight number.
+
+ modified: public_html/script.js
+ modified: public_html/style.css
+
+terribl <terri at rannalla.net>
+
+
+Commit: e1a0665
+Added terribl's suggestion.
+
+Brian Davenport <the.lost.minded at gmail.com>
+
+
+Commit: 4dc9271
+Adds a bit of sorting to the table by clicking column headers
+Also made the design work for lower resolution monitors, especially when the list has 20+ planes.
+
+Brian Davenport <the.lost.minded at gmail.com>
+
+
+Commit: eac2a90
+Version update
+
+Version update for terribl and bdavenport's combined changes
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 7cff495
+Merge pull request #3 from terribl/master
+
+Web client
+MalcolmRobb <Support at ATTAvionics.com>
+
+
+Commit: 7b99ad5
+Few bugs
+
+terribl <terri at rannalla.net>
+
+
+Commit: 72142fa
+Combined effort and code from bdavenport and me.
+
+Added quite a lot of new things this time - see modified files or just
+be brave and try :)
+
+ modified: public_html/gmap.html
+ modified: public_html/script.js
+ modified: public_html/style.css
+
+terribl <terri at rannalla.net>
+
+
+Commit: 9ea6f3e
+Merge remote-tracking branch 'upstream/master'
+
+terribl <terri at rannalla.net>
+
+
+Commit: df4a24b
+Version update for Ulrich
+
+Updated the version number for Ulrich's code
+
+Replaced some Tabs with spaces
+
+Forward declaration of the fixBitErrors() function required for M$ VC
+6.0 to suppress warning messages.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: e0bc0ba
+Merge pull request #4 from ukuehn/master
+
+Bit error correction code improved
+MalcolmRobb <Support at ATTAvionics.com>
+
+
+Commit: feab602
+Call new error correction code. Instead of bit positions record no. of corrected bits.
+
+Ulrich Kuehn <ukuehn at acm.org>
+
+
+Commit: 6d5d7a4
+Test code for new bit error correction plus timing. This code is run when debugging.
+
+Ulrich Kuehn <ukuehn at acm.org>
+
+
+Commit: 0a4fc6e
+Added code for table based correction of bit errors. Code is not called yet except initialisation.
+
+Ulrich Kuehn <ukuehn at acm.org>
+
+
+Commit: ae69cd5
+Web view JavaScript modifications.
+
+ modified: public_html/gmap.html
+ modified: public_html/script.js
+ modified: public_html/style.css
+
+terribl <terri at rannalla.net>
+
+
+Commit: 6f228b9
+Upstream merge finalized
+
+terribl <terri at rannalla.net>
+
+
+Commit: cac715e
+Upstream merge conflicts resolved
+
+terribl <terri at rannalla.net>
+
+
+Commit: 78f565c
+Really minor tweaks
+
+terribl <terri at rannalla.net>
+
+
+Commit: f56679a
+VK1ET : Bugfix pTimestamp printf()
+
+Change the type of pTimestamp from char* to unsigned char* to stop sign
+extension messing up the printf("%02X,pTimestamp stuff
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 8feabda
+BDAVENPORT : Adds a Table
+
+Implement improvements to the public_html stuff as supplied by
+bdavenport.
+No changes to the C code.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: e65e873
+Added flags to json for valid position and heading
+As MalcolmRobb suggested.
+
+ modified: dump1090.c
+ modified: public_html/script.js
+
+terribl <terri at rannalla.net>
+
+
+Commit: ebadf90
+Merge remote-tracking branch 'upstream/master'
+
+terribl <terri at rannalla.net>
+
+
+Commit: c83d404
+Update of some comments, Version and release
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: e6080e2
+Some map view changes
+
+ modified: public_html/gmap.html
+ modified: public_html/script.js
+ modified: public_html/style.css
+
+terribl <terri at rannalla.net>
+
+
+Commit: d046906
+Update ModeA/C to ModeS
+
+Update the ModeA/C to Mode S comparison routine to use bFlags.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: bf4ccac
+bdavenports .diff-file
+
+terribl <terri at rannalla.net>
+
+
+Commit: 6427fcc
+VK1ET : --Interactive display changes
+
+Based on a submission by VK1ET, but I've tweaked it a bit to use the
+bFlags.
+
+Basically, only print out values in --interactive that have been
+received from the aircraft. Previous versions would display 0.000 for
+lat and long for any positionless aircraft. This version prints blanks
+instead for any/all fields that are not yet known.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: cd86d58
+Major Rewrite of SBS output code
+
+Remove dependency of the SBS output code on the historic (a) aircraft
+structure. The only items that were required were the decoded aircraft
+Lat/Lon and these are now included in the mm structure.
+
+Rewrite the SBS output code to use mm->bFlags when populating the output
+fields. This ensures that all available data is output, and also that no
+stale data is sent.
+
+Using the mm->bFlags variable for SBS output means there is no further
+requirement for the sbsFlags member in the aircraft structure, so remove
+it.
+
+Cross your fingers and hope this hasn't introduced too many bugs !
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 7df6d65
+Implement additional Decoding and Tidy
+
+Implement additional bFlags to validate AircraftOnGround, and FS.
+
+Decode Aircraft On Ground from DF0, DF4, DF5, DF16, DF20, and DF21 where
+possible.
+Flag FS as valid for DF4, DF5, DF20, DF21,
+
+Remove dr and um from the mm structure. They're only used in console
+list output mode, so decode them there if required.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 60aa63b
+Merge remote-tracking branch 'origin/master' into Debug
+
+Conflicts:
+ dump1090.c
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: f59e82a
+fix .gitignore file
+
+terribl <terri at rannalla.net>
+
+
+Commit: 914923f
+Fix terribl's commit for Microsoft C
+
+Microsoft Visual C 6.0 doesn't support inline declaration of variables.
+
+Also, need to update the version number.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: c5fdde6
+Added resetMap()-function to web-view.
+
++ some small tweaks.
+
+ modified: dump1090.c
+ modified: public_html/script.js
+
+terribl <terri at rannalla.net>
+
+
+Commit: 735429b
+Additional bFlags for Lat/Lon decoding
+
+Additional flags in the bFlags variables for even and odd CPR lat/lon
+updates.
+
+Change the interactiveReceiveData function to use the bFlags when
+updating the aircraft (a) structure from the newly received (mm) message
+structure. This should hopefully be faster than basically re-decoding
+the DF, type and subtypes all over again.
+
+If we decode the lat/lon into the aircraft (a) structure, back populate
+it into the message (mm) structure. This allows us to print a decoded
+Lat/Lon in the decoded message list output.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: f011f07
+Tidy up ModeA/C mm and a structure
+
+If --modeac is specified, then the program will be building an aircraft
+list. Calculate the altitude when we create the aircraft structure (a) ,
+and then back copy it into the mm structure. This avoids us having to do
+a second ModeAtoModeC conversion in the list output display.
+
+Also - bug fix in the ns_vel calculation.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 6968bf9
+Splitted gmap.html to multiple files in new 'public_html'-directory.
+
+Changes to 'dump1090.c'-file made accordingly.
+
+ modified: .gitignore
+ modified: dump1090.c
+ deleted: gmap.html
+ new file: public_html/gmap.html
+ new file: public_html/script.js
+ new file: public_html/style.css
+
+terribl <terri at rannalla.net>
+
+
+Commit: fc7d1e2
+Complete the bFlags decoding
+
+Update the bFlags structure member to indicate which other structure
+members contain decoded values.
+
+Also, trim out mm structure members that are simple bitwise ands from
+the raw data, unless the results are used in lots of places whereby
+decoding them once is more efficient.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: a3d62f9
+VK1ET : More Decoding of DF-17 ground reports
+
+Extend the DF-17 CPR decoding to use User Lat/Lon for ground positions.
+
+Also start implementing a bFlags structure variable to indicate which
+fields in the mm and a data structures contain valid values.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: cc464b0
+User Lat/Lon setting
+
+Based on initial code supplied by VK1ET
+
+Allow the user to specify their receivers (technically their aerials)
+physical location. This is required for decoding ground positions, and
+also for uploading aircraft data to various sharer sites.
+
+The position can be hardwired by setting the MODES_USER_LATITUDE_DFLT
+and MODES_USER_LONGITUDE_DFLT constants before compilation, or entered
+at runtime via the new command line switches --lat and --lon. Either
+way, the values are checked for validity before use.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 5f009a3
+VK1ET ; Decode DF-17 ground position reports
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 6b53c9e
+Move the clearing of mm for modeA/C
+
+Only clear mm after we are sure we have got a Mode A/C. This reduces
+processor load.
+
+Also tidy up some Linux compiler warnings that result from the last
+change.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 8048cbe
+Better decoding of DF-17 Airborne Velocity
+
+Based on a submission by VK1ET. Fully decode DF-17, metype 19. Take care
+to only update fields that are valid in the data.
+
+Also, initialise (to zero) the mm structures before use
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 6af4bb7
+VK1ET : Only Decode valid AC12 and AC13 altitudes
+
+Decode DF17 altitudes only if valid (i.e. must be a non-zero field)
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 8efe649
+Tidy up some comments and initialisation
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: dd72fc6
+VK1ET : Allow stats in --interactive mode
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: fb5ef77
+VK1ET : Fix AC12 Altitude decoding
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 71ace95
+Additional Timestamps for Lat Lon
+
+1) Implement additional timestamps to remember when a new Lat/Lon value
+is generated.
+
+2) Increase callsign[] character array to 16 chars to make it long word
+aligned.
+
+3) Change some more comments from /* to //
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: ed076d0
+Change initialisation of structures
+
+Use memset to clear entire structures at initial creation to zero, and
+then populate values that should not be zero. Do this rather than
+individually clear each structure member to zero.
+
+This should be faster, plus it's safer when new structure members are
+added because you don't have to remember to initialise them.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 8870de2
+Update --interactive with DF20/21 callsigns
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 5457c5b
+Tidy DF17 print output routine
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 36778f1
+Extract callsign from DF20 and DF21
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 14c5459
+Improve callsign extraction from DF17
+
+Use 32 bit registers to hold multiple characters and shift them. This
+removes the need for multiple memory reads.
+
+Also tidy up the DF-17 extraction routine to make it more readable.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 539faaa
+Rename Gillham conversion function
+
+ICAO documents refer to AC13 for altitude encoding and ID13 for squawk
+wncoding. Rename decodeGillhamField to decodeID13Field to better
+represent this.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 9783b47
+Generate an average Signal Strength
+
+Remember the last 8 signal strengths for each aircraft and average them
+for --interactive display. This produces a less jittery indication.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: a296f27
+Make stats gathering conditional on Modes.stats
+
+There is a quite complex if/else construct for gathering statistics
+inside the main decodeModeS loop. To speed the loop up when not
+gathering statistics, make the whole construct conditional on Modes.stat
+being set.
+
+Also tidy up a few comments
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 2e21367
+Calculate DF and size in decodeModeMessage
+
+Allow the decodeModeMessage function to re-calculate msgtype and
+msgbits. This makes the code a bit more portable by not requiring the
+calling function to fill in these fields before the call.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: c81498a
+Improve DF field error correction speed
+
+Use bitmasks to speed up the detection of valid and invalid ICAO DF
+field types.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 8d65abd
+Sanity Check on msglen after decoding
+
+Add a sanity check to ensure that msglen is consistent with the DF type.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 5f7ed42
+VK1ET : Ctrl/C and other cleanup code
+
+Changes supplied by John VK1ET.
+
+This tidies up the thread termination, which then allows for use of [a
+trapped] Ctrl/C to cleanly terminate the program and dump stats if flag
+set.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 50cedd7
+Major re-write of decodeModesMessage
+
+Lots of changes to the decodeModesMessages() function, and associated
+helper functions, with the aim of speeding the code up by reducing the
+number of calls to the CRC functions. Also, only update the mm variables
+which are part of the message we're decoding.
+
+Change the way CRC's are generated and checked.
+Change the way single and double bit error is implemented.
+General tidy up of the function to make it more readable.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: e9b463d
+Update displayModesMessage()
+
+Update displayModesMessage() to show additional ICAO defined DF types.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 19c1150
+Mode S Gillham altitude changes
+
+Modify all the Mode=S Gillham altitude decoding to use a new function
+decodeGillhamField()
+
+Change the Mode-S signal strength so that it rounds to the nearest
+integer
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: e161b76
+DF Error detection and Correction
+
+Added additional error detection and correction to the DF field of the
+first byte in every ModeS frame.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 7cf7958
+Change the message length decision
+
+Assume that DF0-DF15 are all short 56 bit messages
+Assume that DF16-DF31 are all long 112 bit messages
+
+This helps us error detect and error recover for bits in the first byte
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 748f2f5
+Adjust --interactive display
+
+Allow 8 character Longitudes to cope with -179.999
+
+Change the type of signalLevel to unsigned chae. Negative signal levels
+make no sense.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 8ed0574
+Implement 100 ft Altitudes
+
+The DF's for altitude include a Q bit to distinguish either 100ft or
+25ft altitude encoding. This version implements the 100ft increments
+used by older aircraft. These codes are basically ModeC altitudes
+transmitted over ModeS.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 05187f7
+Add items to --interactive display
+
+Reformat the --interactive display to show more information
+
+Add a "Mode" column. This displays the The primary message type "S" or
+"A" plus any matching modes "a" and/or "c". Requires --modeac switch.
+
+Add a "Sig" column to show the signal strength.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 4d370bd
+Change default for error correction to OFF
+
+Add a --fix command line switch to enable error correction using CRC.
+Change the default to OFF/Disabled.
+
+Error correction can very occasionally result in an incorrect solution
+to the crc equation. It also takes significant CPU work for very few
+corrected results. Therefore, the default has been changed to OFF, but
+you can re-enable it if you wish by using the --fix command line switch.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: f77a85e
+VK1ET : Additions to check fflags
+
+Implement changes suggested by John/VK1ET
+
+Changes to cprNFunction to ensure fflag {was 'isodd'} is used as a flag.
+Fix to decodeCPRrelative to pass 'surface' flag.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 2acb094
+Changes to Mode A/C/S matchup code
+
+Try to improve the matching of ModeA/C codes to Known Mode-S
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 25f92e5
+Change Squawk/ModeA code
+
+The original code stores the squawk as a decimal (base 10) value. Change
+this to a hex value to reduce the amount of maths required to convert
+the input binary value..
+
+Rename all the variables used to store the squawk to "modeA", rather
+than variously identity, squawk and modeA.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: f9c1dc1
+Remove duplicate varbles
+
+Several variables within structures contain the same information in
+different forms.
+
+The aircraft structure contains addr and hexaddr. Hexaddr is a printable
+string version of addr. However, hexaddr is only ever used in printf
+statments, so we can use printf(%06x) to print addr. This saves a printf
+for every received command.
+
+The modesMessage structure contains addr, and aa1,aa2,aa3 as separate
+bytes. aa1,aa2 and aa3 are only ever used to construct addr, and to
+print out. Therefore, we can use addr instead of them..
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 3766492
+Change Mode-A/C to Mode-S detection
+
+The original code made an attempt to reconcile a newly arrived ModeA/C
+message with every known Mode-S report at the time of detection.
+However, the results of matching up Modes A/C and S are only used in the
+interactive display routine, and that is only called periodically from
+within the BackgroundTasks loop.
+
+Doing the matching on every ModeA/C arrival incurs quite a large CPU
+processing load. Moving the matching up routine to the backgroundTasks
+loop means that the task is performed muck less frequently and therefore
+uses less CPU time.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 3dbc0ef
+VK1ET : Decode mode ASCII hex input message types
+
+Modifications entirely base on code supplied by John VK1ET.
+
+Supports additional AVR raw ASCII input message stream types
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: a04e399
+VK1ET : Implement Relative CPR decoding
+
+Modifications entirely base on code supplied by John VK1ET.
+
+Implements relative CPR Lat/Long decoding for --interactive display
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: b78b606
+Improvements to Mode A/C display
+
+Allow a greater range and negative values for Mode C (down to -1200
+feet)
+
+Stop attempting to feed ModeA/C data to SBS Output stream.
+
+Allow Mode A only matches to Mode-S squawks when the Mode A code does
+not conflict with any possible (legal) Mode C code.
+
+Allow Mode C matches to track aircraft climbing and descending
+relatively slowly. This also helps when trying to match Mode-S altitudes
+which are 25 foot increments, with Mode C altitudes which are in 100
+foot increments.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: d63ac81
+Updated comments, ,no code changes
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 9fff65b
+Implement Mode A/C decoding
+
+First attempt at decoding legacy SSR Modes A and C.
+
+If the command line switch --modeac is used, the program will now
+attempt to recover Mode A/C signals contained in the raw I/Q data
+stream. The current recovery mechanism is quite strict and does not cope
+well with overlapping and corrupt SSR replies. I estimate that less than
+20% of possible returns are decoded correctly. Hopefully over the next
+few iterations this can be improved.
+
+If outputting raw data it is recommended to use the --net-ro-size and
+--net-ro-rate command line options to reduce the number of very small
+ethernet packets that will be generated by mode A/C replies.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 39cb96f
+Fix several bugs in input/output fromat
+
+Thanks to vk1et for these.
+
+1) Correct for additional timestamp langth in raw output buffer when
+using mlat mode
+
+2) Don't output a timestamp when the message has been received from a
+remote site (the internet). This is to avoid upsetting MLAT because
+there is an indeterminate delay between reception at the remote site and
+subsequent message arrival in the local dump1090 instance.
+
+3) Allow @ character for raw data input with timestamp, and correctly
+calculate the length.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 1126508
+Fix Bug in Beast Mode Output
+
+Original code put the signal strength in before the timestamp. It should
+be after.
+
+Also add some code to support MODE A/C output at a future date.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: e987281
+Bug fix in vertical sign
+
+Incorrect shift amount when detecting vertical rate sign. Thanks
+John-vk1et.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 3d25f4b
+Changes to prevent stale output in SBS-1 format
+
+The original code calculates Lat/Long only if it receives two DF-17
+(subtype 9 or 18) within one second of each other. I have no idea why.
+It then caches the results in the aircrafts data structure for use in
+the --interactive display.
+
+When SBS-1 style ASCII output is selected (port 30003) the code does not
+attempt to calculate Lat/Long from the data just received - instead it
+picks it up from the cached information in the aircraft's data
+structure.
+
+However, if the data isn't being updated this results in stale Lat/Long
+being sent out. This is most likely to occur when the aircraft is at the
+extreme edge of the receivers range when it may be getting some DF-17s
+containing Lat/Long, but not 2 per second. The program will continue
+sending the stale data until the aircraft finally times out (default 60
+seconds)
+
+I have modified the code to include a sbsflags variable in the aircraft
+data structure. When a new Lat/Long is decoded and put into the
+structure, a bit is set to indicate SBS_LAT_LONG_FRESH. Then, once the
+Lat/Long is output the first time, the bit is cleared. Thereafter the
+code will not populate the Lat/Long fields in the output message until
+SBS_LAT_LONG_FRESH is set again.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: bbcf68c
+Nunojpg Southern Hemisphere bug fix + 1
+
+1) Incorporate nunojpg southern hemisphere bug fix
+2) Initialise Modes.stat_DF_Corrected variable
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: a75442d
+Up issue the version and commit
+
+Version 1.01.1503.13
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 2431dc0
+Added --net-ro-rate command line switch
+
+The default is 0. This works in conjunction with --net-ro-size.
+
+The program will attempt to gather up "net-ro-size" raw bytes before
+sending them out over Ethernet. However, to avoid a long wait if the
+traffic density is very low, the program will only wait for
+"net-ro-rate" 64mS periods since the last send. before sending any data
+added to the output buffer since the last send. This allows the user to
+tailor the network load to suit their requirements.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 7779ef4
+Correct CRLF order in SBS-1 ASCII output
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: b15ae2a
+Print DF-11 II/SI
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 96afd52
+Speed up Squawk Decode
+
+Re-write to avoid multiple reads of the same memory variable.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 6619d21
+Speed up Error Correction
+
+Move memcopy to outside the main bit loop, and just flip the modified
+bit back at the end of each loop if it didn;t work
+
+Pass in a pointer to the mm structure being corrected, and fix-up the
+crc with the value inside the function, rather than re-calculate on
+return
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: bdf985a
+Don't attempt to error correct DF-11
+
+Don't attempt to error correct DF-11, because we can't be sure that the
+checksum/crc is supposed to be 0.
+
+Also a few typo's corrected
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: bb20d0b
+SBS-1 ASCII output changes suggested by JungleJet
+
+1) Populate Field 3 witn "111"
+2) Populate field 4 with "11111"
+3 Populate Field 6 with "111111"
+4) End the record with <CRLF>, rather than just <LF>
+5) Increase the ctrCommon buffer size to cope with additional field data
+
+Apparently, this makes the output more compatible with Plane Plotter and
+RTL1090.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 249c11a
+Add --net-ro-size command line switch
+
+Allow the user to specify the minimum size of raw data to be sent to the
+TCP port. Dump1090 will buffer up raw data until it has at least this
+many bytes to send to the TCP socket.
+
+The default is 0, which means every frame is sent to the TCP socket as
+it is decoded. The maximum value is limited to 1300 bytes.
+
+Note the buffer will be flushed every 65 ms regardless of the amount of
+data in it so that excessive in transmission do not occur.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 0263793
+Add version number to help output screen
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 444b1cf
+Changed the date separator in SBS-1
+
+Changed the separator from \ to /
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 09d72d2
+Merge JungleJet Updates
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: d96f3a6
+Added Raw Output Buffering
+
+The original code wrote every individual received frame to the TCP port.
+Some O/S's buffer smaller writes into larger packets. It appears that
+some versions of Linux don't. The result is that the (Ethernet) network
+gets bombarded with lots of small Ethernet packets.
+
+Therefore, I've added a 1500 byte output buffer to the raw output
+functions. Data is written into this buffer by the raw output routines.
+
+Data is flushed out to the TCP port when either.
+1) The latest write to the output buffer takes the contents to more than
+1300 bytes
+2) At the end of every processed block of data supplied by rtl-sdr. This
+will be every 56mS or so,
+
+The end result should be that on systems detecting a lot of traffic, you
+should see lots of > 1300-byte Ethernet packets. On systems receiving
+less traffic, you should see one network packet every 56 mS or so.
+
+The total number of network packets should be much reduced, and their
+average size much bigger. The worst case delay in transmission will be
+56 mS.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 1324e28
+Add Timestamps to SBS-1 format output
+
+As requested by mlino
+
+Note : I haven't been able to validate that the format is correct. I
+think it should be Ok, but it needs someone with an SBS setup to check
+it. Any offers?
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 1175a03
+Another attempt to remove UNIX compiler warnings
+
+M$ VC 6.0 does not like long long
+UNIX compilers don't like printing int64_t or uint64_t as %lld
+Raspberry Pi Linux doesn;t like PRId64
+
+So I give up.
+
+I've changed the affected variables to bog standard unsigned ints.
+Assuming these compile as 32 bit unsigned's, its unlikely youll have the
+program running long enough for these to overflow.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 8c024d1
+Try to correct single bit errors in the DF field
+
+If noist/sampling/Nyquist errors cause bit detection errors in the DF
+pare of the frame, then we may not be able to work out the correct
+length of the message. We have to guess whether the bit should be a 0 or
+a 1.
+
+In such circumstances we assume the message length is long(112 bits)
+However, if we start to get encoding errors after bit 56 the we attempt
+to change our original guess at the bit, and invert it. If this change
+of guess would have resulted in a short message, and if the short
+message would have been error free then we can recover.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 0c91c5f
+Merge pull request #1 from junglejet/Debug
+
+Debug
+junglejet <gk at jetvision.de>
+
+
+Commit: 44ca030
+committ repeated
+
+committ repeated
+
+junglejet <lacaleta020 at gmail.com>
+
+
+Commit: c495670
+--mlat option and --interactive-rtl1090 option added
+
+--mlat option introduced: to display raw data in Beast ascii format with
+counter (@...;), does not affect Beast binary format ;
+--interactive-rtl1090 option introduced: order of flight table Iin
+interactive mode) and some formats adopted to RTL1090 format, so
+comparison is easier
+
+junglejet <lacaleta020 at gmail.com>
+
+
+Commit: 6362235
+Change the message bit decoder
+
+Change (and hopefully improve) the Message bit decoder.
+
+When decoding bits, a "0" is encoded as (m[j]<m[j+1]), and a "1" is
+(m[j]>m[j+1]) . However, there is a problem if mpj[ == m[j+1] because we
+can't decide what it's supposed to be.
+
+Antirez's original code defaults to a '1', and then lets the bit error
+detection code sort it out. I *think* it's better to default to '0'
+because it's more likely that noise added to the signal will produce a
+spurious '1' rathar than anything subtracting from the signal to produce
+a spurious '0'
+
+Also, Antirez''s code only looks for errors in the first bit of the
+message. I don't know why this is.
+
+There is a potential problem in deciding the message length if there are
+any errors in the first 5 bits decoded, because this defines the message
+type (the DF-??), and it's the DF that determines how many bits the
+message shall contain.
+
+If there is an error in the first 5 bits, then we could ignore the DF,
+and continue decoding a long format (112 bits). However, for weak
+signals, if the message is a short one (56 bits) this results in the
+sigStrength decaying to the point where it's level drops below squelch,
+so we discard a possibly decodeable 56bit
+
+However, if we assume it's a short message, and only decode 56 bits, and
+it's really a long message we won't have decoded all the bits.
+
+Not sure what to do about this
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: ff697db
+Improve the decoding for DF-11
+
+Three changes in this one
+
+1) Change the checksum testing for DF-11
+2) Recode the Checksum generation routine to use pointers.
+3) Tidy up the appearance of some print debug statments
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: dc7e2b6
+Change the type of the stats variables from uint64_t to int64_t
+
+Some compilers complain about the printf %llx format being used with a
+uint64_t
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 22c3298
+Change the I/Q lookup table values for better detection
+
+Change the I/Q lookup table for better detection. Changes fully
+described in the source dump1090.c at line 347 onwards. This change
+results in about 30% more frames being detected at weak signal input
+levels.
+
+Also a bug fix from the last commit - C doesn't support the min()
+function.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: f806f18
+Basic tidy up of the modesInit() function
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: f1935b2
+Get rid of that hideous goto
+
+I'm not overly keen on the continues either :-)
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: e59142b
+Merge the data bit detection and data byte assembly into the same loop
+
+Original code loops through the analogue array m[] detecting data bits
+and putting them into the bits[] array. It then loops through all the
+bits[] creating the msg[] byte array. It then loops through the analogue
+array m[] again calculating the signal strength.
+
+Change this so that everything is done in one loop so we can go straight
+from analogue samples to bytes, calculating the signal strength on the
+fly.
+
+Also use the results of the signal strength calculation to populate the
+message records mm.signalLevel variable.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: d85939c
+Create a payload pointer in message detector loop
+
+Create a pointer, pPayload, which points to the start of the data bits
+in the analogue sample buffer m[]. So pPayload =
+&m[j+MODES_PREAMBLE_SAMPLES] Then use this
+pointer to perform the data bit detection tests. It should save a few
+cpu cycles per test because accessing pPayload[2] should be quicker than
+m[2+j+MODES_PREAMBLE_SAMPLES].
+
+Also change the way phase correction works. the original code saves the
+original data (from m[pPayload] to aux[], and then phase corrects m[],
+and then restores aux[] back to m[] afterwards. Change this so that m[]
+is copied to aux[] and then phase correction is carried out in aux[],
+and the pPayload pointer points to aux[]. This then avoids the
+requirement to copy aux[] back to m[] afterwards, which saves a fair few
+CPU cycles.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 09af545
+Create a preamble pointer in the message detector loop
+
+Create a preamble pointer in the message detector loop
+
+Create a pointer, pPreamble, which points to the start of the preamble
+in the analogue sample buffer m[]. So pPreamble = &m[p] Then use this
+pointer to perform the preamble detection tests. It should save a few
+cpu cycles per test because accessing pPointer[2] should be quicker than
+m[p+2].
+
+Also move the decision on whether to try OutOfPhase correction to the
+end of the first pass, rather than automatically going into phase
+correction if the first pass fails. This saves two memcpy's if the
+decision in the second pass is to not do phase correction.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 70031e1
+Create a preamble pointer in the message detector loop
+
+Create a pointer, pPreamble, which points to the start of the preamble
+in the analogue sample buffer m[]. So pPreamble = &m[p] Then use this
+pointer to perform the preamble detection tests. It should save a few
+cpu cycles per test because accessing pPointer[2] should be quicker than
+m[p+2].
+
+Also move the decision on whether to try OutOfPhase correction to the
+end of the first pass, rather than automatically going into phase
+correction if the first pass fails. This saves two memcpy's if the
+decision in the second pass is to not do phase correction.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 316b456
+Make Things more Windows friendly
+
+Change the following so that M$ compilers and debuggers complain less
+
+1) change all long long data types to uint64_t.
+2) Typecast all malloc function returns to the correct pointer types.
+3) Explicitly typecast all float to int conversions.
+4) Remove inline variable declaration. Allowed in C++, but not in C.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: ff34693
+Make Things more Windows friendly
+
+Change the following so that M$ compilers and debuggers complain less
+
+1) change all long long data types to uint64_t.
+2) Typecast all malloc function returns to the correct pointer types.
+3) Explicitly typecast all float to int conversions.
+4) Remove inline variable declaration. Allowed in C++, but not in C.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: d02a404
+Merge remote-tracking branch 'origin/master' into Debug
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 4f7b51a
+Change timer granularity & incorporate terribl's latest changes
+
+Apparently, the Beast output timestamp has a frequency of 12 Mhz.
+Therefore, I've updated the timestamp counter to simulate a 12 Mhz
+frequency.
+
+Also incorporate terribls latest updates
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 408c846
+Merge remote-tracking branch 'origin/master' into Debug
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: ed80552
+Speed up the I/Q to magnitude calculation
+
+Increase the speed of the I/Q to magnitude calculation lookup by
+expanding the table to 65536 entries (256*256*2 bytes). At runtime, this
+allows us to pick up raw I/Q bytes as a 16 bit value and index into the
+magnitude table to get a 16 bit result. This removes the need for
+subtracting 127, and then correcting for -ve numbers, so should be
+faster, at the expense of a larger data table.
+
+Change the maglut lookup table from 129*129 to 256*256
+Initialise the maglut buffer accordingly
+Change the data->maglut lookup to use the new maglut buffer
+Change the I/Q data buffer pointet to a uint16_t *
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: bbe96b6
+Merge remote-tracking branch 'origin/master' into Debug
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 3113223
+One bug fix, and some changes to the --interactive output format
+
+I messed up merging the Squawk display in interactive mode into my
+master.
+
+However, the original source posted by terribl causes a print line
+length greater than 80 characters. This in turn causes the lines to
+spill over on a terminal display. I have therefore re-formatted some of
+the output so that it fits within 80 characters.
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 8ba18eb
+Type Conversion required when using --file
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 192cb80
+Speed up the I/Q to magnitude calculation
+
+Increase the speed of the I/Q to magnitude calculation lookup by
+expanding the table to 65536 entries (256*256*2 bytes). At runtime, this
+allows us to pick up raw I/Q bytes as a 16 bit value and index into the
+magnitude table to get a 16 bit result. This removes the need for
+subtracting 127, and then correcting for -ve numbers, so should be
+faster, at the expense of a larger data table.
+
+Change the maglut lookup table from 129*129 to 256*256
+Initialise the maglut buffer accordingly
+Change the data->maglut lookup to use the new maglut buffer
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: 43c6484
+Added some other peoples commit modificatons
+
+Added dtiller's --quiet and --ppm modifications
+Added terribl's squawk on interactive modifications
+
+Removed up some unused or un-needed variables
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: d3662bb
+Implemented Beast Binary output
+
+Malcolm Robb <Support at ATTAvionics.com>
+
+
+Commit: ff0fe38
+Two typos fixed in gmap.html.
+
+antirez <antirez at gmail.com>
+
+
+Commit: c991d65
+gmap.html: update plane flight field when new data is received.
+
+antirez <antirez at gmail.com>
+
+
+Commit: acc702d
+Fake version info removed from gmap.html.
+
+antirez <antirez at gmail.com>
+
+
+Commit: 9d55d5e
+gmap.html: no rotation jumps when selecting / deselecting planes.
+
+antirez <antirez at gmail.com>
+
+
+Commit: 3307261
+CPR decoding: southern hemisphere coords are now handled correctly.
+
+antirez <antirez at gmail.com>
+
+
+Commit: 13596ba
+A few bugs fixed in debug.html.
+
+antirez <antirez at gmail.com>
+
+
+Commit: e9e07e0
+Improved Google map interace: select planes and see details.
+
+antirez <antirez at gmail.com>
+
+
+Commit: 27e3743
+Remove stale aircrafts when --interactive is not enabled.
+
+antirez <antirez at gmail.com>
+
+
+Commit: 977493c
+Strong preamble detection even with --aggressive.
+
+To try to decode messages with a fundamentally flawed preamble is mostly
+a useless waste of CPU time.
+
+The new aggressive mode still detects a sensible percentage of
+additional messages because of the error tolerance and two-bits fixes
+but does not waste your CPU time.
+
+antirez <antirez at gmail.com>
+
+
+Commit: 184953f
+Phase correction fixed, code reshaped to apply more corrections.
+
+The phase correction was applied only to a subset of bits! Because of an
+offset error.
+
+The detection code layout was modified a bit to make it simpler to
+implement more corrections in the future. However only phase correction
+is performed currently. Slope correction, or to compensate for the cycloid
+effect are two possible improvements.
+
+antirez <antirez at gmail.com>
+
+
+Commit: 11d8db0
+Properly initialize ICAO cached addresses hash table.
+
+antirez <antirez at gmail.com>
+
+
+Commit: c2e79d4
+Many small improvements (see full commit message).
+
+* Better preamble detection to skip most of the messages we'll likely
+ not be able to decode.
+
+* A Phase correction algorithm that improves the recognition compared
+ to the previous algorithm used.
+
+* Javascript output in debug mode, and a debug.html file that can be
+ used in order to see graphically undecoded samples.
+
+* Ability to detect cross-read messages, that are, messages that happen
+ to start and end across two different reads from the device or file.
+
+* A few bugx fixed.
+
+* README improved.
+
+antirez <antirez at gmail.com>
+
+
+Commit: 9086290
+SBS-1: Code style adapted to code base.
+
+antirez <antirez at gmail.com>
+
+
+Commit: 071a021
+New feature: Output in SBS format
+
+Kemal Hadimli <kemal at vnil.la>
+
+
+Commit: 2fe1882
+Do not modify the packet when AP gets decoded.
+
+antirez <antirez at gmail.com>
+
+
+Commit: c9bb486
+Squawk extraction fixed.
+
+antirez <antirez at gmail.com>
+
+
+Commit: b4805ea
+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.
+
+antirez <antirez at gmail.com>
+
+
+Commit: 03759a3
+Google map view enhanced: color by altitude and more.
+
+antirez <antirez at gmail.com>
+
+
+Commit: 21fc9de
+HTTP keep-alive fixed. Network debugging capabilities.
+
+antirez <antirez at gmail.com>
+
+
+Commit: e40e55b
+Less buggy network requests parser.
+
+antirez <antirez at gmail.com>
+
+
+Commit: dc91712
+Aggressive mode implemented.
+
+antirez <antirez at gmail.com>
+
+
+Commit: 0bf65d8
+Better error handling for network clients.
+
+antirez <antirez at gmail.com>
+
+
+Commit: e1d3724
+Regression fixed: set client socket non-blocking.
+
+antirez <antirez at gmail.com>
+
+
+Commit: 42eb990
+HTTP: Set clen correctly when serving gmap.html.
+
+antirez <antirez at gmail.com>
+
+
+Commit: a583615
+Initial HTTP support with planes animated using google map.
+
+antirez <antirez at gmail.com>
+
+
+Commit: 4203b9c
+Minor README improvements.
+
+antirez <antirez at gmail.com>
+
+
+Commit: b10c8da
+CPR decoding fixed.
+
+antirez <antirez at gmail.com>
+
+
+Commit: f3a705f
+README -> README.md
+
+antirez <antirez at gmail.com>
+
+
+Commit: ddb1aa2
+README improved with more antennas info.
+
+antirez <antirez at gmail.com>
+
+
+Commit: 0ce746d
+Ability to receive traffic from network.
+
+antirez <antirez at gmail.com>
+
+
+Commit: b5ff48e
+Network server sending raw data to clients.
+
+antirez <antirez at gmail.com>
+
+
+Commit: 539039f
+Set heading to 0 when speed is 0.
+
+antirez <antirez at gmail.com>
+
+
+Commit: af4964d
+With --raw fflush() at every output to avoid delays.
+
+antirez <antirez at gmail.com>
+
+
+Commit: 9c8ad1c
+More stuff on .gitignore.
+
+antirez <antirez at gmail.com>
+
+
+Commit: b6907f4
+CPR position decoding. Track calculation from velocity components.
+
+antirez <antirez at gmail.com>
+
+
+Commit: ec1f34f
+Fix for --metric
+
+antirez <antirez at gmail.com>
+
+
+Commit: 32fe8d8
+New --metric option to use meters and km/h in --interactive.
+
+antirez <antirez at gmail.com>
+
+
+Commit: f231c7a
+Remove idle aircrafts in interactive mode.
+
+antirez <antirez at gmail.com>
+
+
+Commit: 3f47bb6
+Initialize aircraft speed in interactive mode.
+
+The effect of this bug was random speeds displayed with --interactive.
+
+antirez <antirez at gmail.com>
+
+
+Commit: 1576b61
+Minor aesthetic change to interactive mode.
+
+antirez <antirez at gmail.com>
+
+
+Commit: 840a005
+Interactive mode with --ifile: play at natural speed.
+
+antirez <antirez at gmail.com>
+
+
+Commit: 69ae249
+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.
+
+ at 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 (!).
+
+antirez <antirez at gmail.com>
+
+
+Commit: fed415b
+Show 16 bit magnitude value with --debug.
+
+antirez <antirez at gmail.com>
+
+
+Commit: 0a7c5c2
+Threads locking model fixed (reliable --ifile).
+
+antirez <antirez at gmail.com>
+
+
+Commit: c653e0e
+Added a new --onlyaddr option to just output ICAO addresses.
+
+antirez <antirez at gmail.com>
+
+
+Commit: b3945d1
+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.
+
+antirez <antirez at gmail.com>
+
+
+Commit: 417cab5
+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.
+
+antirez <antirez at gmail.com>
+
+
+Commit: 3833673
+Git ignore the right executable name.
+
+antirez <antirez at gmail.com>
+
+
+Commit: f01324c
+Interactive mode: new switch --interactive-rows for max # of rows.
+
+antirez <antirez at gmail.com>
+
+
+Commit: d974a4d
+Everything renamed dump1090 (was mode1090).
+
+antirez <antirez at gmail.com>
+
+
+Commit: c059d01
+Makefile: use pkgconfig instead of hardcoded paths
+
+Steve Markgraf <steve at steve-m.de>
+
+
+Commit: f01670e
+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.
+
+antirez <antirez at gmail.com>
+
+
+Commit: d709a21
+TODO list updated.
+
+antirez <antirez at gmail.com>
+
+
+Commit: cae1d0c
+Fixed errors and typos in --help.
+
+antirez <antirez at gmail.com>
+
+
+Commit: 1971ba9
+--raw output format is now compatible with adsbhub.
+
+antirez <antirez at gmail.com>
+
+
+Commit: 7ca5a4b
+Initial commit of Dump1090, a simple Mode S decoder.
+
+antirez <antirez at gmail.com>
+
diff --cc debian/changelog
index fae5677,0000000..6c8ec28
mode 100644,000000..100644
--- a/debian/changelog
+++ b/debian/changelog
@@@ -1,38 -1,0 +1,45 @@@
++dump1090 (1.10.3010.14+dfsg-1) unstable; urgency=low
++
++ * Update to upstream version 1.10.3010.14.
++ * Remove patches that were merged upstream.
++ * Initial release (Closes: #712830).
++
++ -- Matthew Ernisse <mernisse at ub3rgeek.net> Tue, 04 Nov 2014 18:53:38 -0500
++
+dump1090 (1.09.1007.14+dfsg-1) unstable; urgency=low
+
+ * Apply PR#33 from upstream. This fixes a segfault and possible file
+ descriptor exhaustion in the network code.
+
+ * Add modprobe.d blacklist to prevent kernel DVB-T drivers from loading.
+
+ * Modify the internal HTTP server to allow buffering for served data.
+ * Disable local filesystem access in the HTTP server.
+ * Add config.json so the web interface can know the lattitude and
+ longitude of the station from the command line.
+ * Patch script.js to support config.json and render the site location
+ automatically from the command line arguments.
+
+ * Depend on jQuery and jQuery UI to remove links from gmap.html to the
+ Google CDN. Remove associated lintian overrides.
+ * Replace shipped version of excanvas.js with libjs-excanvas
+
+ * Patch less of the stock Makefile by using dh_install helper.
+ * Remove broken watch file.
+
+ * Update packaging to reflect Debian Hamradio Maintainers standards.
+
+ * Repack upstream to remove closed-source blob and Windows binary.
+
+ * Merge changes from upstream 1.09.0608.14 -> 1.09.1007.14.
- * Initial release (Closes: #712830).
+
+ -- Matthew Ernisse <mernisse at ub3rgeek.net> Sat, 1 Nov 2014 11:55:18 -0400
+
+dump1090 (1.09.0608.14-1) unstable; urgency=low
+
+ * Refuse to build ppup1090 as it depends on a closed-source blob.
+ * Pull upstream log into CHANGELOG.
+ * Update copyright information.
+ * Add man pages per Debian Policy.
+
+ -- Matthew Ernisse <mernisse at ub3rgeek.net> Sat, 16 Aug 2014 20:26:47 +0000
diff --cc debian/patches/01-jquery.patch
index 4b56625,0000000..6a079b9
mode 100644,000000..100644
--- a/debian/patches/01-jquery.patch
+++ b/debian/patches/01-jquery.patch
@@@ -1,19 -1,0 +1,19 @@@
+Author: Matthew John Ernisse <mernisse at ub3rgeek.net>
+Description: Locally serve jQuery and jQuery-UI files.
+Forwarded: not-needed
+
+--- a/public_html/gmap.html
++++ b/public_html/gmap.html
- @@ -1,9 +1,9 @@
- <html>
++@@ -2,9 +2,9 @@
+ <head>
++ <meta charset="utf-8"/>
+ <link rel="stylesheet" type="text/css" href="style.css" />
+- <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
+- <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
+- <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
++ <link rel="stylesheet" href="jquery-ui.min.css" />
++ <script src="jquery.js"></script>
++ <script src="jquery-ui.js"></script>
- <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=false&libraries=geometry"></script>
++ <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=false&libraries=geometry"></script>
+ <script type="text/javascript" src="config.js"></script>
+ <script type="text/javascript" src="planeObject.js"></script>
diff --cc debian/patches/02-excanvas.patch
index 5fa3d99,0000000..c37d779
mode 100644,000000..100644
--- a/debian/patches/02-excanvas.patch
+++ b/debian/patches/02-excanvas.patch
@@@ -1,14 -1,0 +1,14 @@@
+Author: Matthew John Ernisse <mernisse at ub3rgeek.net>
+Description: Replace local version of excanvas.js with libjs-excanvas.
+Forwarded: not-needed
+--- a/public_html/gmap.html
++++ b/public_html/gmap.html
- @@ -10,7 +10,7 @@
++@@ -11,7 +11,7 @@
+ <script type="text/javascript" src="options.js"></script>
+ <script type="text/javascript" src="extension.js"></script>
+ <script type="text/javascript" src="script.js"></script>
+- <script type="text/javascript" src="coolclock/excanvas.js"></script>
++ <script type="text/javascript" src="excanvas.js"></script>
+ <script type="text/javascript" src="coolclock/coolclock.js"></script>
+ <script type="text/javascript" src="coolclock/moreskins.js"></script>
- </head>
++ <title>DUMP1090</title>
diff --cc debian/patches/05-disable-local-file-http-access.patch
index baa501d,0000000..d8694c9
mode 100644,000000..100644
--- a/debian/patches/05-disable-local-file-http-access.patch
+++ b/debian/patches/05-disable-local-file-http-access.patch
@@@ -1,182 -1,0 +1,99 @@@
+Description: Disable local file serving from the internal HTTP server.
+ This patch relies somewhat on the 02-http-buffer.patch being applied.
+ .
+ This patch also adds support for user lattitude and longitude variables
+ on the command line to be passed up to the web ui, removing the need for
+ the user to edit both /etc/defaults/dump1090 AND config.js.
+Author: Matthew John Ernisse <mernisse at ub3rgeek.net>
+Forwarded: no
+
- --- a/net_io.c
- +++ b/net_io.c
- @@ -703,9 +703,7 @@
- #define HTTP_OK "200 OK";
- #define HTTP_NOTFOUND "404 Not Found";
- #define MODES_CONTENT_TYPE_HTML "text/html;charset=utf-8"
- -#define MODES_CONTENT_TYPE_CSS "text/css;charset=utf-8"
- #define MODES_CONTENT_TYPE_JSON "application/json;charset=utf-8"
- -#define MODES_CONTENT_TYPE_JS "application/javascript;charset=utf-8"
- //
- // Get an HTTP request header and write the response to the client.
- // gain here we assume that the socket buffer is enough without doing
- @@ -721,8 +719,6 @@
- int httpver, keepalive;
- char *url, *content;
- char ctype[48];
- - char getFile[1024];
- - char *ext;
-
- if (Modes.debug & MODES_DEBUG_NET)
- printf("\nHTTP request: %s\n", c->buf);
- @@ -750,55 +746,28 @@
- printf("HTTP requested URL: %s\n\n", url);
- }
-
- - if (strlen(url) < 2) {
- - snprintf(getFile, sizeof getFile, "%s/gmap.html", HTMLPATH); // Default file
- - } else {
- - snprintf(getFile, sizeof getFile, "%s/%s", HTMLPATH, url);
- - }
- -
- - // Select the content to send, we have just two so far:
- - // "/" -> Our google map application.
- - // "/data.json" -> Our ajax request to update planes.
- + /* Removed local file access from the HTTP service. We are only serving
- + * data.json now. Anything else will return a 404.
- + */
- if (strstr(url, "/data.json")) {
- content = aircraftsToJson(&clen);
- - //snprintf(ctype, sizeof ctype, MODES_CONTENT_TYPE_JSON);
- - } else {
- - struct stat sbuf;
- - int fd = -1;
- -
- - if (stat(getFile, &sbuf) != -1 && (fd = open(getFile, O_RDONLY)) != -1) {
- - content = (char *) malloc(sbuf.st_size);
- - if (read(fd, content, sbuf.st_size) == -1) {
- - snprintf(content, sbuf.st_size, "Error reading from %s: %s",
- - getFile, strerror(errno));
- - httpcode = HTTP_NOTFOUND;
- - }
- - clen = sbuf.st_size;
- - } else {
- + snprintf(ctype, sizeof(ctype), MODES_CONTENT_TYPE_JSON);
- + } else if (strstr(url, "/config.json")) {
- + if (Modes.fUserLat != 0.0 && Modes.fUserLon != 0.0) {
- char buf[128];
- - clen = snprintf(buf, sizeof(buf), "Error opening %s: %s",
- - getFile, strerror(errno));
- + clen = snprintf(buf, sizeof(buf),
- + "{\"SiteLat\": %f, \"SiteLon\": %f}",
- + Modes.fUserLat, Modes.fUserLon);
- content = strdup(buf);
- - httpcode = HTTP_NOTFOUND;
- - }
- -
- - if (fd != -1) {
- - close(fd);
- - }
- - }
- -
- - // Get file extension and content type
- - snprintf(ctype, sizeof ctype, MODES_CONTENT_TYPE_HTML); // Default content type
- - ext = strrchr(getFile, '.');
- -
- - if (strlen(ext) > 0) {
- - if (strstr(ext, ".json")) {
- - snprintf(ctype, sizeof ctype, MODES_CONTENT_TYPE_JSON);
- - } else if (strstr(ext, ".css")) {
- - snprintf(ctype, sizeof ctype, MODES_CONTENT_TYPE_CSS);
- - } else if (strstr(ext, ".js")) {
- - snprintf(ctype, sizeof ctype, MODES_CONTENT_TYPE_JS);
- + } else {
- + content = strdup("{}");
- + clen = strlen(content);
- }
- + } else {
- + httpcode = HTTP_NOTFOUND
- + content = strdup("File not found.");
- + clen = strlen(content);
- + snprintf(ctype, sizeof ctype, MODES_CONTENT_TYPE_HTML);
- }
-
- // Create the header and send the reply
+--- a/public_html/script.js
++++ b/public_html/script.js
+@@ -53,6 +53,36 @@
+ });
+ }
+
++function fetchJSONConfig() {
++ // Load config from json if able.
++ $.getJSON('/dump1090/config.json', function(data) {
++ if (!("SiteLat" in data) || !("SiteLon" in data)) {
++ return;
++ }
++ SiteShow = true;
++ SiteLat = data["SiteLat"];
++ SiteLon = data["SiteLon"];
++ var markerImage = new google.maps.MarkerImage(
++ 'http://maps.google.com/mapfiles/kml/pal4/icon57.png',
++ new google.maps.Size(32, 32),
++ new google.maps.Point(0, 0),
++ new google.maps.Point(16, 16));
++ var marker = new google.maps.Marker({
++ position: new google.maps.LatLng(SiteLat, SiteLon),
++ map: GoogleMap,
++ icon: markerImage,
++ title: 'My Radar Site',
++ zIndex: -99999
++ });
++
++ if (SiteCircles) {
++ for (var i=0;i<SiteCirclesDistances.length;i++) {
++ drawCircle(marker, SiteCirclesDistances[i]);
++ }
++ }
++ });
++}
++
+ // Initalizes the map and starts up our timers to call various functions
+ function initialize() {
+ // Make a list of all the available map IDs
+@@ -167,34 +197,14 @@
+ google.maps.event.addListener(GoogleMap, 'zoom_changed', function() {
+ localStorage['ZoomLvl'] = GoogleMap.getZoom();
+ });
+-
+- // Add home marker if requested
+- if (SiteShow && (typeof SiteLat !== 'undefined' || typeof SiteLon !== 'undefined')) {
+- var siteMarker = new google.maps.LatLng(SiteLat, SiteLon);
+- var markerImage = new google.maps.MarkerImage(
+- 'http://maps.google.com/mapfiles/kml/pal4/icon57.png',
+- new google.maps.Size(32, 32), // Image size
+- new google.maps.Point(0, 0), // Origin point of image
+- new google.maps.Point(16, 16)); // Position where marker should point
+- var marker = new google.maps.Marker({
+- position: siteMarker,
+- map: GoogleMap,
+- icon: markerImage,
+- title: 'My Radar Site',
+- zIndex: -99999
+- });
+-
+- if (SiteCircles) {
+- for (var i=0;i<SiteCirclesDistances.length;i++) {
+- drawCircle(marker, SiteCirclesDistances[i]); // in meters
+- }
+- }
+- }
++
+
+ // These will run after page is complitely loaded
+ $(window).load(function() {
+- $('#dialog-modal').css('display', 'inline'); // Show hidden settings-windows content
+- });
++ $('#dialog-modal').css('display', 'inline'); // Show hidden settings-windows content
++ });
++
++ fetchJSONConfig();
+
+ // Load up our options page
+ optionsInitalize();
++--- a/anet.c
+++++ b/anet.c
++@@ -228,7 +228,7 @@
++ while(totlen != count) {
++ nwritten = write(fd,buf,count-totlen);
++ if (nwritten == 0) return totlen;
++- if (nwritten == -1) return -1;
+++ if (nwritten == -1 && errno != EAGAIN) return -1;
++ totlen += nwritten;
++ buf += nwritten;
++ }
diff --cc debian/patches/series
index 46cc347,0000000..95c39ed
mode 100644,000000..100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@@ -1,6 -1,0 +1,4 @@@
+00-makefile.patch
+01-jquery.patch
- 02-http-buffer.patch
- 03-excanvas.patch
- 04-socket_leak.patch
++02-excanvas.patch
+05-disable-local-file-http-access.patch
diff --cc debian/rules
index 892b992,0000000..4dbf9ab
mode 100755,000000..100755
--- a/debian/rules
+++ b/debian/rules
@@@ -1,12 -1,0 +1,13 @@@
+#!/usr/bin/make -f
+# -*- makefile -*-
+
+export DEB_BUILD_MAINT_OPTIONS = hardening=+all
+DPKG_EXPORT_BUILDFLAGS = 1
+include /usr/share/dpkg/buildflags.mk
++CFLAGS += -DDEBIAN
+
+override_dh_installchangelogs:
+ dh_installchangelogs debian/CHANGES
+
+%:
+ dh $@
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-hamradio/dump1090.git
More information about the pkg-hamradio-commits
mailing list