Commit graph

963 commits

Author SHA1 Message Date
Oliver Jowett
e7d7fd549c Fix off-by-one error in Beast-format input.
This would mangle messages if the first byte of a message ended up
as the last byte returned by a read() call - it would read beyond
the end of the buffer, decide the message was damaged, and then run
off into the message data looking for a new delimiter. Sometimes
that would work (only dropping one message), but sometimes it would
run into data that happened to look like a message start but
actually wasn't, and then try to interpret that, leading to completely
bogus message data being read.

Fixes .
2015-02-21 23:50:35 +00:00
Oliver Jowett
8e9220e330 Quick prototype of color-by-altitude. 2015-02-21 18:41:59 +00:00
m30164
297d3b0125 Number of planes and messages in title
Simple addition to display the current number of planes and messages in
the title.
2015-02-20 11:42:29 +01:00
m30164
a531327533 Added extended unit settings
Added some code to enable the user to configure unit selection in a more
detailed fashion. you can now select either metric or imperial, or both,
and even set which one of those should be displayed first.
2015-02-20 00:09:03 +01:00
Oliver Jowett
ab8c4db85b Fix edge cases when specifying the user to run as.
* check the username fits the format expected by adduser;
 * don't allow root;
 * if the user exists, don't try to create it; usually, this is
   harmless, but it fails if the user exists with a UID outside the
   normal range for system users.

Fixes .
2015-02-19 22:41:39 +00:00
Oliver Jowett
f391bf4b22 Release changelog. 2015-02-19 19:41:44 +00:00
Oliver Jowett
e0f167b703 Fix json syntax error. 2015-02-19 19:12:06 +00:00
Oliver Jowett
f6d2f3dfff More CPR stats. 2015-02-19 18:53:11 +00:00
Oliver Jowett
46ad97da15 More changelogging. 2015-02-19 12:11:30 +00:00
Oliver Jowett
65e7d32390 Mark all HTML/Javascript as conffiles.
Closes .
2015-02-19 12:05:53 +00:00
Oliver Jowett
ecd22d82a2 Make non-pbuilder debuild happier. 2015-02-19 12:03:08 +00:00
Oliver Jowett
8fa7209aa1 Changelog updates for 1.14. 2015-02-19 12:02:45 +00:00
Oliver Jowett
7cc9438b2d Speed check improvements. Entirely invalidate position messages that look wrong. 2015-02-18 18:26:23 +00:00
Oliver Jowett
44302bb199 Fix NaN in greatcircle calc if positions are identical.
Bail out early if there's a global CPR decoding error so we don't try
to do range/speed checks on a position of (0,0)
2015-02-18 01:53:47 +00:00
Oliver Jowett
bfe2cb0336 NUCp tracking and CPR position sanity checks.
Track NUCp when we compute positions.

Do speed checks when we have an updated position with the same or worse NUCp
before accepting the new position. Don't do speed checks on new postions if
they improve NUCp - assume that the new position is better.

Include NUCp in aircraft.json

Gather stats on reasons for rejecting CPR data due to range/speed check failures.

Expire old positions if we have had no updates for 60 seconds.

Closes , closes .
2015-02-18 00:12:35 +00:00
Oliver Jowett
38845c2447 Rearrange main loop so that --net-only isn't quite such a special case. 2015-02-17 21:44:30 +00:00
Oliver Jowett
0a055c34d0 Log timestamped messages on startup/shutdown. 2015-02-17 21:43:17 +00:00
Oliver Jowett
dcdfd2acab Catch SIGTERM, log on signals.
Fixes .
2015-02-17 21:41:40 +00:00
Oliver Jowett
342eafd438 Include timestamps on USB connect/disconnect logging.
Fixes .
2015-02-17 21:40:26 +00:00
Oliver Jowett
af4f81caf7 Include timezone in stats output. 2015-02-17 21:35:23 +00:00
Oliver Jowett
03e096475c Wait for at most 100ms for more data from the rx thread, so that we do not starve background tasks if the rx thread blocks (e.g on USB disconnect).
Fixes .
2015-02-17 21:07:36 +00:00
Oliver Jowett
aee837c903 Start with --nicelevel -5 to reduce the chance of dropped buffers, except in --net-only mode.
Closes .
2015-02-11 21:20:31 +00:00
Oliver Jowett
967a3e9558 If maxRange is >= 360NM, don't do receiver-centered local CPR at all. 2015-02-11 12:10:40 +00:00
Oliver Jowett
7849e1019d Init start/end on all stats so the json output looks sensible for the first minute. 2015-02-11 01:14:21 +00:00
Oliver Jowett
6fbeae070c Handle long refresh rates better, don't draw all tracks as dotted. 2015-02-11 00:15:48 +00:00
Oliver Jowett
2ba56231a6 Do an initial data fetch immediately (useful if the refresh interval is long). 2015-02-11 00:15:21 +00:00
Oliver Jowett
849697f84c Fix integer overflow in stats output. 2015-02-11 00:14:28 +00:00
Oliver Jowett
af382ac79c Fix max flush interval to be in milliseconds. 2015-02-10 23:43:48 +00:00
Oliver Jowett
f9ed7e4a97 More time_t -> milliseconds conversions.
This lets us support fractional net flush times among other things, which is handy.
2015-02-10 22:24:22 +00:00
Oliver Jowett
7053ad02da Make aircraft tracking use milliseconds everywhere. 2015-02-10 21:49:37 +00:00
Oliver Jowett
686d433b1f Prune dead timestamp fields from aircraft state. 2015-02-10 21:33:01 +00:00
Oliver Jowett
474fe45256 Don't mark undecodable altitudes as ALTITUDE_VALID when decoding. 2015-02-09 22:53:18 +00:00
Oliver Jowett
54677f3ae0 Don't try to correct >1 error in DF11.
We already do this check when scoring a message for the demodulator,
but there are other paths that can feed us a message so also do the
check in the main decode path.
2015-02-09 22:51:34 +00:00
Oliver Jowett
f19eee898b Use the right inter-CPR max interval for surface position messages. Fixes . 2015-02-09 14:17:31 +00:00
Oliver Jowett
9fd0c822f6 Extract NUCp from message type; needed for . 2015-02-09 14:14:12 +00:00
Oliver Jowett
e7e7f9e7c2 Only display altitude when dumping position messages if it is valid. 2015-02-09 14:11:04 +00:00
Oliver Jowett
07a39331c9 Changelog mostly to bump the version to reduce confusion. 2015-02-08 23:11:50 +00:00
Oliver Jowett
25ac2d044d Increase the onehit TTL a bit, 30s is a bit too aggressive. 2015-02-08 22:46:44 +00:00
Oliver Jowett
b313834338 Make the is_number regex accept numbers beginning with -0
Also ends up simpler, too - originally I was trying to avoid accepting
e.g. "+0" or "-0" but that's not really a big deal.

Fixes 
2015-02-08 22:44:02 +00:00
Oliver Jowett
a49b5b8830 Add stats for total aircraft tracks and tracks that have only a single message. 2015-02-08 18:47:39 +00:00
Oliver Jowett
f1201a0069 Third time lucky? 2015-02-08 18:17:33 +00:00
Oliver Jowett
b31709a278 Whoops, remove stray debugging that was left in. 2015-02-08 18:16:49 +00:00
Oliver Jowett
1e817ab9e4 Merge pull request from jburgess777/add-view1090-to-gitignore
Add view1090 to gitignore
2015-02-08 18:08:26 +00:00
Oliver Jowett
bdefa42956 Merge pull request from jburgess777/add-oversample-to-help
Add --oversample option to help text
2015-02-08 18:07:23 +00:00
Oliver Jowett
4ecd6958a1 If we squelch the first message from an aircraft, emit it when we see a second message.
This is possible now that the SBS output doesn't rely on the global block timestamp;
the output will look like this:

MSG,8,111,11111,4AC954,111111,2015/02/08,17:57:53.917,2015/02/08,17:57:53.936,,,,,,,,,,,,0
MSG,7,111,11111,392AEB,111111,2015/02/08,17:57:53.744,2015/02/08,17:57:53.936,,15375,,,,,,,,,,0
MSG,8,111,11111,392AEB,111111,2015/02/08,17:57:53.917,2015/02/08,17:57:53.936,,,,,,,,,,,,0
MSG,6,111,11111,800387,111111,2015/02/08,17:57:53.919,2015/02/08,17:57:53.936,,,,,,,,4745,0,0,0,0

where the "receive timestamp" (first time column) goes backwards to reflect the original reception
time of the delayed message, but the "forwarded timestamp" (second time column) reflects the actual
forwarding time.
2015-02-08 18:00:18 +00:00
Oliver Jowett
c0af448efa uint64_t (even at 12MHz) isn't going to overflow any time soon, don't worry about wrapping. 2015-02-08 17:59:20 +00:00
Oliver Jowett
9c2f236463 Object files depend on *.h 2015-02-08 17:58:46 +00:00
Oliver Jowett
4e177c2d64 Store computed reception time in the message struct so we don't rely on
the message being emitted immediately.

Fix computation of reception time so it's more sensible (the block timestamp
is some time after reception of the _end_ of the block, not the start) - this
means that message-emission times are always later than message-reception
times in SBS output, which is a bit more sensible.

Use clock_gettime in preference to ftime.
2015-02-08 17:46:01 +00:00
Oliver Jowett
1584955080 Be more aggressive about removing aircraft where we have seen only 1 message. 2015-02-08 14:37:35 +00:00
Oliver Jowett
20407e5378 Don't emit SBS output with non-ICAO addresses (fixes ) 2015-02-08 14:30:10 +00:00