Commit graph

323 commits

Author SHA1 Message Date
Oliver Jowett 5bcc7e1b9a Merge branch 'report-snr' 2014-09-23 14:07:53 +01:00
Oliver Jowett 83d256e984 Fix a thinko in computing the log10 table.
(This shouldn't actually affect the resulting SNR since it's just a constant offset, and the errors in signal and noise will cancel out)
2014-09-23 14:05:25 +01:00
Oliver Jowett e6e92b1e8e Merge branch 'no-decode'
Conflicts:
	mode_s.c
2014-09-23 00:01:54 +01:00
Oliver Jowett 5683001164 Add --no-decode option.
This disables most decoding of the contents of Mode S messages, aircraft tracking, and some output modes that depend on them.
It's intended for edge receivers that just forward to a central hub rather than processing data locally.
2014-09-22 23:56:49 +01:00
Oliver Jowett 76c958b03e Use a lookup table for SNR calculation. 2014-09-22 14:53:06 +01:00
Oliver Jowett 2e45a59986 Make signalLevel represent the SNR in dB, rather than a somewhat arbitrary amplitude value.
Include SNR values when dumping message contents.
2014-09-15 02:49:11 +01:00
Oliver Jowett 0378620445 Merge branch 'improve-phase-enhancement' 2014-09-15 01:58:38 +01:00
Oliver Jowett 31b28b3878 Rearrange phase enhancement so that it handles phase errors in both directions.
This almost doubles the number of messages recovered by phase enhancement.
2014-09-15 01:43:14 +01:00
Oliver Jowett 7fab5b0cb5 Check if bit correction happened before bailing out due to a bad CRC. 2014-09-13 12:11:19 +01:00
Malcolm Robb a82df07c0c 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.
2014-08-06 15:29:08 +01:00
Malcolm Robb 90fa1dac81 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.
2014-08-06 15:29:07 +01:00
Malcolm Robb f1b85ec5e7 Tidy up interactive.c
Remove spaces from the end of line.
2014-08-06 15:29:06 +01:00
Malcolm Robb 845289ad9f Version 1.09.1607.14
Improvements to COAA MLAT functions
Reduce CPU load in PPUP1090 and DUMP1090 during cleanup
2014-08-06 15:29:06 +01:00
Malcolm Robb 8b05286a24 Version 1.09.1007.14
Updates to support COAA Planeplotter Ground Station on an RPi
2014-08-06 15:29:05 +01:00
MalcolmRobb a17e5b0f98 Merge pull request #23 from hhm0/decoding
use last recent airplane position to calculate its ground position
2014-07-16 15:21:42 +01:00
hhm d1b37ad1c5 B"H decoding: use last air position to calculate ground position 2014-07-14 04:03:07 -04:00
MalcolmRobb 60e2c92c05 Merge pull request #21 from hhm0/view1090_net_mods
View1090 net mods
2014-07-10 16:52:46 +01:00
MalcolmRobb f68ae551df Merge pull request #22 from matthewbrandes/master
Allows choosing device by serial number rather than device index which can change.
2014-07-10 16:48:53 +01:00
matthewbrandes 6f14ecf7dd Update dump1090.c 2014-07-08 17:34:43 -05:00
matthewbrandes c80582274b Delete convienience.c 2014-07-08 17:32:30 -05:00
matthewbrandes 3043e86096 Delete convienience.h 2014-07-08 17:32:16 -05:00
matthewbrandes 652af93b88 Update dump1090.c 2014-07-08 16:58:23 -05:00
matthewbrandes d0207569b6 Update dump1090.c 2014-07-08 16:56:03 -05:00
matthewbrandes a190677ad4 Create convienience.c 2014-07-08 16:55:16 -05:00
matthewbrandes 50b05c538e Create convienience.h 2014-07-08 16:54:30 -05:00
matthewbrandes 8110549fee Update dump1090.c 2014-07-08 15:12:46 -05:00
hhm a86eb7a61c 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.
2014-07-06 05:58:44 -04:00
hhm ec09cc7a71 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.
2014-07-03 02:41:06 -04:00
hhm 350a57f858 B"H view1090: do not block
- do not block on network data
2014-07-02 07:41:43 -04:00
hhm 96015e38c8 B"H view1090: handle disconnection
- keep trying to reconnect to server if disconnected
2014-07-02 07:38:46 -04:00
MalcolmRobb c0d6ea073f Merge pull request #20 from hhm0/network_disabling
make network services disable-able
2014-06-27 11:45:41 +01:00
MalcolmRobb 190a746dce Merge pull request #19 from hhm0/decoding
decode more squawk codes
2014-06-27 11:43:30 +01:00
hhm 59984ac8af B"H allow disable ports, doc disable net heartbeat 2014-06-24 23:58:46 -04:00
hhm 506be6e054 B"H decode more data, etc.
- decodes a bit more information
- misc. small changes
2014-06-22 13:05:39 -04:00
MalcolmRobb 189e726792 Merge pull request #16 from papasven/master
Incorrect value for auto-gain
2014-06-18 11:13:37 +01:00
papasven e6c43382b9 Incorrect value for auto-gain
Incorrect value for auto-gain option the Modes.gain is multiplied by 10.
2014-06-01 02:14:40 +02:00
Malcolm Robb 6afdc9bd1b Merge remote-tracking branch 'origin/Debug' 2014-05-27 13:17:49 +01:00
Malcolm Robb 903f93f530 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.
2014-05-27 13:16:57 +01:00
Markus Gräb 00533e7ff4 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.
2014-05-27 12:23:57 +01:00
MalcolmRobb dfb319146e Merge pull request #14 from kopppa91/master
Fixed: now skipping correct number of values in magnitude buffer
2014-05-27 12:13:24 +01:00
Markus Gräb 583f24299a 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.
2014-05-14 19:39:07 +02:00
Malcolm Robb a55b9a76b5 BUGFIX : Windows version HTML Web browser support
Allow connection of a web browser to the Windows version via
http://127.0.0.1:8080
2014-05-09 23:44:11 +01:00
Malcolm Robb d200099244 BUGFIX : Possible linked list bug 2014-04-25 17:00:58 +01:00
Malcolm Robb 30ae45ec2b 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.
2014-04-25 14:48:14 +01:00
Malcolm Robb f7843c1691 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.
2014-03-11 01:09:49 +00:00
Malcolm Robb 4a438d6e34 Update the Windows version of View1090 2014-02-24 10:44:51 +00:00
Malcolm Robb 97c7f69c83 Publish V1.08.2302.14
Final tidy up and publish
2014-02-24 10:28:35 +00:00
Malcolm Robb 260b955f47 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.
2014-02-23 01:55:34 +00:00
Malcolm Robb 75a4c6ee21 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.
2014-02-22 23:11:13 +00:00
Malcolm Robb 24080a22b1 antirez
Free the client on best effort write(2) short write
2014-02-22 22:35:42 +00:00