Commit Graph

337 Commits

Author SHA1 Message Date
George Joseph 68e95c06cc Interactive mode updates
These updates were designed to assist those using interactive
mode to tune antennas and SDR gain.

* Add options to display distance and bearing in interactive mode

  Distance and bearing instead of latitude and longitude can now be
  displayed in interactive mode using the following options to
  dump1090-fa and view1090-fa.

  --interactive-show-distance   Show aircraft distance and bearing
                                instead of aircraft lat/lon
                                (requires --lat and --lon)
  --interactive-distance-units  Distance units ('km', 'sm', 'nm')
                                (default: 'nm')"

  You have to specify a reference --lat and --lon for this to
  work of course.

* A new line now shows at the top of the interactive display that
  has for the current sample:

  Total valid aircraft count
  Vidible aircraft count
     Will be less than total if the screen hasn't enough lines to show
     them all.
  Max RSSI
  Min RSSI
  Mean RSSI
  Max Distance

 Tot:  47 Vis:  47 RSSI: Max 25.4+ Mean -29.5 Min -36.9-  MaxD:  197.3nm+

* Add max distance and min/max RSSI indicators

  A '+' after the distance in a row indicates it's the row with the
  maximum distance.

  A '+' after the RSSI in a row indicates it's the row with the highest
  RSSI.

  A '-' after the RSSI in a row indicates it's the row with the lowest
  RSSI.

  The summary line at the top of the screen always shows the values for
  ALL aircraft, even those not visible.  The row indicators only mark
  visible rows though.

  In this example, the first aircraft is both the farthest away and has
  the weakest RSSI.  The second aircraft has the strongest RSSI.

 Tot:  47 Vis:  47 RSSI: Max 25.4+ Mean -29.5 Min -36.9-  MaxD:  197.3nm+     -
 Hex    Mode  Sqwk  Flight   Alt    Spd  Hdg  Dist(nm) Bearing  RSSI  Msgs  Ti
────────────────────────────────────────────────────────────────────────────────
 A8D5A4 S2                   34000  438  252   197.3+      85  -36.1-   26  2
 A39A13 S2ac  5740  FFT525   30750  439  256    98.8       68  -25.4+  123  0
 A70B23 S2ac  2744  LXJ553   43000  419  258   136.1       39  -33.6   174  0

* Finally, a new option '--interactive-callsign-filter' has been added
  to allow filtering interactive by callsign.  The value can be a
  simple string, in which case aircraft with that string anywhere in its
  callsign will be displayed, or a regular expression should you want a
  more precise match.

  Examples:
    --interactive-callsign-filter UAL
      will match all aircraft with UAL anywhere in its callsign.
    --interactive-callsign-filter "^UAL"
      will match only those callsigns that start with UAL.
    --interactive-callsign-filter "^(UAL|AAL)"
      will match only those callsigns that start with UAL or AAL.
    --interactive-callsign-filter "^N[0-9]" or "^N[[:digit:]]"
      will match only those callsigns that start with "N" and a number

  If you need more info on regular expressions, see this link:
  https://en.wikipedia.org/wiki/Regular_expression
2020-09-29 06:23:55 -06:00
Oliver Jowett 9b06099971 Enable net mode on bare stratux port option 2020-09-08 23:25:01 +08:00
Oliver Jowett 917aa6a0e2 Merge branch 'stratux' of https://github.com/Determinant/dump1090-fa-stratux into Determinant-stratux 2020-09-08 23:08:37 +08:00
Determinant d25103361a
make change according to the suggestions 2020-08-30 21:21:49 -04:00
Oliver Jowett 1d3e5c03e9 More _WIN32 ifdef pruning 2020-08-11 13:51:16 +08:00
Oliver Jowett ddce32849d Tweak --net behaviour to simplify using a subset of network ports.
This tries to retain the existing behaviour of --net / --net-only
while making it easier to say "listen on only these specific ports".

If --net or --net-only is specified, network mode is enabled and
default port values are assumed for any port not otherwise specified
on the command line. Specifying a port of 0 disables that port. This
is the same as the old behavior.

If --net or --net-only is not specified, but at least one
of the --net-xxx-port options is specified, then network mode is
enabled with no default port value and only those ports explicitly
configured on the command line are used.

This means you can e.g. configure a port-30005-only SDR receiver
by specifying just "--net-bo-port 30005"; or configure a
network-receive-only receiver (e.g. for SkyAware display) by
"--device-type none --net-bi-port 30004,30104". These were possible
previously but required turning off a lot of the default ports.
2020-08-11 13:44:39 +08:00
Oliver Jowett 10b9bc6614 Handle builds with no SDR support better.
Reorder --ifile pseudo-sdr after the "none" SDR so that a build with no real
SDR support defaults to "none" not --ifile

If the "none" SDR was selected and network mode is not enabled, tell the
user about the problem rather than just failing to do anything useful.
2020-08-11 12:55:17 +08:00
Oliver Jowett 9237086b38 Fix on-exit memory leaks noticed by @Mictronics 2020-08-10 15:00:25 +08:00
Oliver Jowett ce521f715a Strip out the long-dead --debug option code. 2020-08-05 20:14:57 +08:00
Oliver Jowett 2fa793d0d7 Add a separate --version arg. Don't spit out full help on option syntax problems. 2020-08-05 20:11:40 +08:00
Oliver Jowett 74607b31ed Factor out FIFO handling; reimplement as a linked list, not a circular buffer.
Update all the SDR implementation to use it.

This was getting pretty ugly with code getting copy&pasted in all the SDR
implementations. Unify it all and give it a simpler API. Linked list works out
much simpler than the circular buffer. Also, simplify copying the overlap region
around by just using a separate buffer (it's only a few hundred bytes long, so
the double copy is not a big deal).
2020-08-05 19:50:38 +08:00
Oliver Jowett 8b21104d66 Factor out sdr thread CPU monitoring 2020-08-05 19:50:38 +08:00
Oliver Jowett 66ba823493 Merge branch 'limesdr' of https://github.com/Gluttton/dump1090 into Gluttton-limesdr 2020-08-03 15:16:32 +08:00
Oliver Jowett 5261b98c95 Merge branch 'master' of https://github.com/kr105/dump1090 into kr105-master 2020-08-03 14:32:08 +08:00
Oliver Jowett c890bb6125
Merge pull request #67 from neheb/st
Make more functions static
2020-08-02 22:42:07 -05:00
Gluttton 53183c0b2a limesdr: basic implementation of LimeSDR support
The commit provides a basic implementation of support for LimeSDR USB
receivers based on LMS7002 chip. The solution has several limitations:
 - passing parameters for tune LimeSDR receiver via command-line
   options is not implemented;
 - only hardcoded configuration is used (channel 0 of lower band LNA,
   LMS_FMT_I16 format, gain, bandwidth and timeout);
 - only one device is supported and it is not possible to select a
   desired one in case if several devices are connected to the host.

Test: compare the output of the program for RTL and LimeSDR receivers.
Environment:
 - RTL2832SDR dongle;
 - LMS7002M based USB LimeSDR board;
 - 800MHz-2200MHz omnidirectional antenna with SMA connector.
Procedure:
 - connect RTL dongle to the host and start the program with the
   following parameters:
   $ ./dump1090 --device-type rtlsdr --interactive
 - wait until several planes will be detected;
 - stop the program, connect the LimeSDR board to the host and restart
   the program with the following parameters:
   $ ./dump1090 --device-type limesdr --interactive
 - ensure that the same planes are detected.
Acceptance criteria: the same planes are detected using both receivers
   and track information matches with information from the
   FlightRadar24 application.

Signed-off-by: Gluttton <gluttton@ukr.net>
2020-07-29 23:09:27 +03:00
Rosen Penev 0df937e9c6
fix -Wmissing-declaration warnings
This should result in a smaller size.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-06-29 16:42:21 -07:00
Oliver Jowett 0793c64ee8 Clean up linkage of struct Modes to actually make sense.
(how did this work before? But it's been unchanged since at least
2013..)

Maybe fixes #65
2020-06-06 21:52:04 +08:00
Oliver Jowett 8879bcac86 Change 2-bit correction option to "--fix-2bit"
--fix --fix was a poor choice for this, as some existing configs
happened to specify --fix twice but only expected 1-bit correction.
So move 2-bit correction to a separate option.

"--fix" or "--fix --fix" now gives 1-bit correction.
"--fix-2bit" or "--fix --fix-2bit" or "--fix-2bit --fix" gives 2-bit correction.

Version bump to 3.8.2~dev
2020-05-02 14:55:36 +08:00
Determinant 258e3f9d65 turn off stratux support by default 2020-03-30 12:34:11 -04:00
Determinant b6f007a104 WIP: support stratux protocol 2020-03-28 15:25:31 -04:00
Carlos Pizarro 0f0696c97b
Added support for HackRF One 2019-12-09 18:55:40 -03:00
Oliver Jowett a8737f7916 Remove --aggressive entirely, replaced by "--fix --fix" to enable 2-bit FEC.
nb: messages with a correctable 2-bit error are only forwarded to network
clients that have enabled verbatim mode (and they will be forwarded with
the 2-bit error still present, so the downstream client must apply its own
correction if desired)
2019-11-27 21:09:19 +08:00
Oliver Jowett 54409b4836 Split beast output into two separate writers for verbatim vs. non-verbatim
in preparation for supporting both types of connection in parallel
2019-11-27 21:01:46 +08:00
Rosen Penev ffff5d6646
treewide: Replace usleep with nanosleep
usleep was removed in POSIX 2008 and is optionally unavailable with
uClibc-ng.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2019-10-03 18:10:46 -07:00
Oliver Jowett 9dfc3e7aa6 Arrange to return a non-zero exit code if the SDR thread unexpectedly halts 2019-03-07 18:35:47 +00:00
Oliver Jowett f4fa94f842 Merge branch 'more_mode_s' into dev 2018-05-09 16:20:58 +01:00
Oliver Jowett 44e8913c2d Whitespace cleanups 2018-01-09 17:13:34 +00:00
Oliver Jowett 6986b3847f WIP on new faup1090 output, data aging, refactoring 2017-12-02 17:38:33 +00:00
Michael Tatarinov 196ef89aca Cleanup after removed internal webserver code.
Fixes: 52464b97c1
2017-07-28 11:35:26 +04:00
Oliver Jowett 2142d2edf5 Whitespace changes only: cleaning up trailing whitespace at EOL 2017-06-15 18:17:07 +01:00
Oliver Jowett 888c939a75 Include enabled compile-time build options in the help header. 2017-02-03 00:36:46 +00:00
Oliver Jowett 417cda7061 Make SC16Q11-nodc conversions table-based for speed.
Add a mechanism for converters to initialize tables on demand.
Move UC8 table setup to the new lazy-setup path.
Fix uc8 lookup table allocation size.
2017-02-03 00:36:33 +00:00
Oliver Jowett 75b221c0e3 Lots of refactoring to move the SDR-type-specific bits out of the
main code and make them optionally buildable.
2017-01-27 17:30:40 +00:00
Oliver Jowett bfc4b742af Move {start,end}_cpu_timing into util.c 2017-01-27 12:33:43 +00:00
Oliver Jowett 52464b97c1 Remove internal webserver code entirely. 2016-12-29 18:35:35 +00:00
Oliver Jowett 6336611bc7 Turn on mode A/C if a Beast connection asks for it.
Add a --no-modeac-auto option to disable this.
2016-12-29 17:56:32 +00:00
Oliver Jowett 4bb070be50 Add support for radarcape type 5 (receiver position) messages. 2016-12-27 19:07:10 +00:00
Oliver Jowett cc47718a2d Measure mean signal level in the converters.
Rearrange the meaning of the measured power level to be consistent
with the signal level.
2016-11-12 14:07:58 +00:00
Oliver Jowett f6b1b94c7d Use ncurses for interactive mode (reduces flicker on slow connections a lot!) 2016-10-11 20:37:28 +01:00
Oliver Jowett 60f1f3bcb6 Table-ize the Mode A to C conversions, add a Mode C to Mode A conversion function. 2016-10-11 17:57:25 +01:00
Oliver Jowett 54ca2c7fb2 WIP big rewrite of message decoding / aircraft tracking. 2016-08-27 14:34:14 +01:00
Oliver Jowett 8d998b2525 Rename --hae to --gnss since it's not always HAE.
(In the baro+GNSS modes, the reported GNSS can be either HAE or geoid-corrected MSL;
in the pure GNSS mode it is HAE only)
2016-08-26 11:27:46 +01:00
Oliver Jowett e4ceea33da Disable the internal webserver at build time. 2016-07-10 11:56:31 +01:00
Oliver Jowett 8b341f39e5 Add some paranoia so we notice if the receive thread wedges. 2016-05-31 12:42:22 +01:00
Oliver Jowett 8f82e61f17 Remove the 2MHz demodulator.
Now that the 2.4MHz demodulator does 3A/C there's no real reason
to keep the old demodulator around.
2016-05-31 12:23:58 +01:00
Oliver Jowett b8dc3973d1 Always measure noise power, silently ignore --measure-noise if given. 2016-05-31 11:54:34 +01:00
Oliver Jowett d419b62a65 Always use phase enhancement; silently ignore --phase-enhance if given. 2016-05-31 11:47:57 +01:00
Oliver Jowett 03c29a3721 Handle errors from rtlsdr_get_device_usb_strings.
Fixes #106.
2016-03-21 22:13:22 +00:00
Oliver Jowett f6bdb61b13 Experimental 2.4MHz Mode A/C demodulator. 2016-03-20 19:49:37 +00:00