Commit graph

1511 commits

Author SHA1 Message Date
Malcolm Robb 5b5424df3b 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
2013-09-27 15:01:46 +01:00
Malcolm Robb a968f03c3a 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.
2013-09-27 10:57:26 +01:00
Malcolm Robb 2e43a9eb63 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.
2013-09-27 10:05:05 +01:00
Malcolm Robb 19ce5a29b1 Additional debug message printing 2013-09-26 19:25:14 +01:00
Malcolm Robb 2c28d9fe2f 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.
2013-09-26 12:59:46 +01:00
Malcolm Robb 0430323014 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.
2013-09-24 18:37:54 +01:00
MalcolmRobb 03c16aa19a Merge pull request #10 from termigrator/patch-1
Update net_io.c
2013-09-24 07:17:35 -07:00
termigrator c2962a00e5 Update net_io.c
Added vertical rate (a->vert_rate) to json output
2013-09-22 23:25:12 +02:00
Malcolm Robb d9de1190f0 Version update 2013-09-20 16:50:38 +01:00
Malcolm Robb 7ea2e8fdef 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.
2013-09-20 16:48:15 +01:00
Malcolm Robb 52ac50b018 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.
2013-08-19 19:04:49 +01:00
Malcolm Robb 6997715fed 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.
2013-08-19 18:57:03 +01:00
Malcolm Robb 1ebdd6d7a7 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.
2013-08-19 15:55:17 +01:00
MalcolmRobb da8151dd70 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 :-)
2013-06-21 15:34:12 -07:00
terribl 82b61f267d Merge mapRefactor -> master 2013-06-03 11:27:17 +03:00
terribl b161004d8b Merge mapRefactor -> master 2013-06-03 11:22:02 +03:00
terribl f53632b00d 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
2013-06-03 10:53:17 +03:00
terribl 5f0e295580 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
2013-06-02 20:49:45 +03:00
terribl e91b0a6be1 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
2013-06-02 16:51:38 +03:00
terribl 92d665e0da Hide Settings-windows text while page is loading.
modified:   public_html/gmap.html
	modified:   public_html/script.js
2013-06-02 13:45:53 +03:00
terribl 0e3426d46b "Reset Map" deselects plane correctly.
modified:   public_html/script.js
2013-05-31 10:29:51 +03:00
terribl 10e33892e8 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
2013-05-31 10:04:11 +03:00
Brian Davenport 072fba8718 Rolling back a couple changes and spawning a branch from here. 2013-05-30 21:26:16 +00:00
Brian Davenport 21229d58ea The start of a crummy looking options. It is bugged right now.
Brought back the reset map.
2013-05-30 17:45:10 +00:00
Brian Davenport 5c3f6dac50 Merge branch 'mapRefactor' of https://github.com/bdavenport/dump1090 into mapRefactor
Conflicts:
	public_html/script.js
2013-05-30 17:35:57 +00:00
Brian Davenport 4752578b8b Working on making an options window 2013-05-30 17:32:36 +00:00
terribl fd0c116424 Tyop corrected 2013-05-30 12:31:41 +03:00
terribl 9904c22859 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
2013-05-30 12:22:52 +03:00
terribl 3000baf184 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
2013-05-28 12:15:18 +03:00
terribl ca314fcf2c 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
2013-05-27 11:36:23 +03:00
terribl 8b8f74697c 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
2013-05-26 23:34:38 +03:00
terribl 6cb5c2b0ff Merge remote-tracking branch 'upstream/master' into mapRefactor 2013-05-26 22:45:37 +03:00
terribl 11d69cb54b 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
2013-05-26 15:19:38 +03:00
terribl 3eb21ea18e Merge remote-tracking branch 'upstream/master' 2013-05-26 10:49:36 +03:00
terribl 498b512894 Merge branch 'mapRefactor' of https://github.com/bdavenport/dump1090 into mapRefactor
modified:   public_html/script.js
2013-05-25 23:57:39 +03:00
terribl e2b552eba0 Merge branch 'mapRefactor' of https://github.com/bdavenport/dump1090 into mapRefactor
Missing semicolon;

	modified:   public_html/script.js
2013-05-25 23:55:13 +03:00
terribl 5cd8a096b2 Merge branch 'mapRefactor' of https://github.com/bdavenport/dump1090 into mapRefactor 2013-05-25 23:52:19 +03:00
terribl 40c666b732 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
2013-05-25 23:44:40 +03:00
Brian Davenport b5d0038315 Fixes the selection bugs 2013-05-25 15:53:56 +00:00
Brian Davenport 29d413eb7c Merge pull request #9 from MalcolmRobb/master
Pulling in from MalcomRobb's master updates
2013-05-25 08:04:45 -07:00
terribl e22cff4bd2 Small bugs and cleaned squawkdisplay
modified:   public_html/script.js
	modified:   public_html/style.css
2013-05-25 14:08:26 +03:00
terribl 9c465c174b 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 ---
2013-05-25 11:56:32 +03:00
terribl 242738b178 Removed 0000 squawks from table 2013-05-25 11:03:30 +03:00
Malcolm Robb 228b770be8 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
2013-05-24 23:32:12 +01:00
Malcolm Robb e86eb3921e 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,.
2013-05-24 22:29:00 +01:00
Malcolm Robb f64a65b5a2 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
2013-05-24 21:51:44 +01:00
Malcolm Robb 9edba9332a 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
2013-05-24 21:24:16 +01:00
Malcolm Robb ee742cf8db 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.
2013-05-24 12:26:06 +01:00
Malcolm Robb 4c0ed6d5f1 Set AOG_VALID for DF-17/18 metype 19 2013-05-24 11:10:16 +01:00
Malcolm Robb 77bd1f40dc Include Vertical rate in aircraft structure 2013-05-24 11:07:49 +01:00