Commit Graph

1641 Commits

Author SHA1 Message Date
Oliver Jowett ce5cf89e60 If --device-type is given without a type, list the available types. 2020-08-05 20:12:06 +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 f1bd1a5829 Packaging updates for limesdr support 2020-08-05 20:04:25 +08:00
Oliver Jowett 653ad6127a Use a bounce buffer for rtlsdr on ARM to work around zero-copy problems.
On 5.x kernels with the USB mmap problems fixed, the distributed librtlsdr
will use a zero-copy mapping for USB buffers. Unfortunately, there is
something about the nature of the mapping on ARM (at least on Pis) that
makes most access to the data extremely slow. The uc8_nodc converter is
about 35x slower in this case compared to working on a heap-allocated buffer.

Luckily, a plain memcpy() of the buffer is still reasonably fast, so
we can use a bounce buffer and copy the data out of the slow mapping, then
pass the copy to the converter. This mitigates most of the problem,
at the expense of always needing that extra copy (which does somewhat
defeat the purpose of zero-copy!)

Unfortunately, librtlsdr provides no reliable way to control or
detect the use of zero-copy mappings, so we have to assume the problem
is always there (at least on ARM) and pay the cost of an unnecessary
copy when zerocopy is _not_ in use, too.
2020-08-05 19:50:38 +08:00
Oliver Jowett d5d04060de Support older limesuite versions e.g. what's available on Raspbian Buster.
Unfortunately limesuite doesn't seem to provide an API identifier, so
we can't detect whether LMS_PATH_AUTO is supported or not. Change the
fallback to LMS_PATH_LNAW, since that appears to work on both mini
and full-fat limesdrs.
2020-08-05 19:50:38 +08:00
Oliver Jowett 1761b8ddc1 Fix hackrf compilation when uint64_t is not a long
(e.g. on arm, it's a long long)
2020-08-05 19:50:38 +08:00
Oliver Jowett e857d042aa 'make clean' should clean object files in oneoff/ too 2020-08-05 19:50:38 +08:00
Oliver Jowett c1f526b76d Clean up the bladerf driver a bit 2020-08-05 19:50:38 +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 aa2929196d If DUMP1090_VERSION is unset, use "unknown" as the version (not an empty string) 2020-08-05 19:50:38 +08:00
Oliver Jowett 104575c602 Might as well compile with -O3 2020-08-05 19:50:38 +08:00
Oliver Jowett 89a83767f3 hackrf: missing \n 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 f82b7b7a8c Set SDR thread name if pthread_setname_np() is available 2020-08-05 19:50:38 +08:00
Oliver Jowett 01587a114a Make convert_benchmark build with -Wmissing-declarations 2020-08-05 19:50:38 +08:00
Oliver Jowett e8b5be519c Make Modes.exit an atomic_int to make cross-thread use a little simpler. 2020-08-05 19:50:38 +08:00
Oliver Jowett 8734ec9992 Remove a WIN32 #ifdef 2020-08-05 19:50:38 +08:00
Oliver Jowett bf8d6db148 Better defaults for MODES_DUMP1090_{VARIANT,VERSION} 2020-08-05 19:50:38 +08:00
Oliver Jowett 84b1975e76 Fix benchmarks make target 2020-08-05 19:50:38 +08:00
Oliver Jowett d59e3bb136 Clean up Makefile SDR_OBJ a bit 2020-08-05 19:50:38 +08:00
eric1tran 5db1f1e9ba Fix misspelled variable name bug 2020-08-04 14:38:07 -05:00
makrsmark 64abbd02db
Adding G150 and GLEX icons (#32)
* adding Gulfstream 150 icon

* Adding Bombardier Global Express icon

Co-authored-by: eric1tran <eric1tran@gmail.com>
2020-08-03 11:40:29 -05:00
Oliver Jowett 84c2d67601 limesdr: fix missing trailing \n 2020-08-03 18:05:32 +08:00
Oliver Jowett 26e3c23e6a Merge PR #75 (LimeSDR support);
fix conflicts;
select limesdr rx antenna based on antenna metadata so it works on a mini, too.
2020-08-03 18:03:55 +08:00
Oliver Jowett 9520740a12 limesdr: try to select an appropriate antenna based on the limesuite antenna metadata. 2020-08-03 18:02:27 +08:00
Oliver Jowett b70898cd27 Placate -Wmissing-declarations 2020-08-03 15:17:29 +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 6a9700a58c If no explicit library settings are given, try to detect what SDRs to support based on what pkg-config knows about. 2020-08-03 14:57:31 +08:00
Oliver Jowett 238bb2bb5d Merge PR #57: Added support for HackRF One 2020-08-03 14:47:11 +08:00
Oliver Jowett 8b6239fab7 Don't call hackrf_exit if hackrf_init failed;
don't call hackrf_close if hackrf_open failed.
2020-08-03 14:45:35 +08:00
Oliver Jowett 699576f3de Add missing \n to hackrf error messages 2020-08-03 14:45:04 +08:00
Oliver Jowett 9b79daadaf Make handle_hackrf_samples static to placate -Wmissing-declarations 2020-08-03 14:40: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 49d95744f2
Merge pull request #74 from ianrenton/master
Use set-response-header instead of add-response-header
2020-08-02 22:48:09 -05:00
Oliver Jowett 8d56c0af9d Turn on -Wmissing-declarations following #67 cleaning up a few places that triggered it 2020-08-03 11:44:34 +08:00
Oliver Jowett c890bb6125
Merge pull request #67 from neheb/st
Make more functions static
2020-08-02 22:42:07 -05:00
Oliver Jowett 5b964f67b8
Merge pull request #66 from jwbernin/master
Add commented-out HTTPS configuration section
2020-08-02 22:38:32 -05:00
Oliver Jowett 92889d3497
Merge pull request #62 from flyingstar16/master
Load lighttpd alias module before using alias.url
2020-08-02 22:36:37 -05:00
Gluttton bb158d929c limesdr: add ability to set bandwidth
Add ability to set calibration bandwidth via input command line options.
By default the bandwidth is equal to 2.5 MHz.

Test: connect LimeSDR device, try to set different bandwidth and check
    logs:
    $ ./dump1090 --device-type limesdr --limesdr-bw 5000000
    $ ./dump1090 --device-type limesdr --limesdr-bw 500000

Signed-off-by: Gluttton <gluttton@ukr.net>
2020-07-31 00:18:22 +03:00
Gluttton 95ae1a92be limesdr: add ability to set LPF bandwidth
Add ability to set LPF bandwidth via input command line options.
By default the bandwidth is equal to the default sample rate 2.4 MHz.

Test: connect LimeSDR device, try to set different bandwidth and check
    logs:
    $ ./dump1090 --device-type limesdr --limesdr-lpfbw 2500000
    $ ./dump1090 --device-type limesdr --limesdr-lpfbw 500000

Signed-off-by: Gluttton <gluttton@ukr.net>
2020-07-31 00:18:22 +03:00
Gluttton c32ed2866e limesdr: add ability to set normalized gain
Add ability to set the combined normalized gain via command line
options. By default the gain is equal to 0.75.

Test: connect LimeSDR device, try to set different gain and check logs:
    $ ./dump1090 --device-type limesdr --limesdr-gain 0.01
    $ ./dump1090 --device-type limesdr --limesdr-gain 0.5
    $ ./dump1090 --device-type limesdr --limesdr-gain 0.99

Signed-off-by: Gluttton <gluttton@ukr.net>
2020-07-31 00:18:22 +03:00
Gluttton da1aeeeea6 limesdr: add ability to set RF oversampling ratio
Add ability to set RF oversampling ratio via command line options. By
default the default value is used.

Test: none.

Signed-off-by: Gluttton <gluttton@ukr.net>
2020-07-31 00:18:22 +03:00
Gluttton eb476d2e75 limesdr: add ability to select RX channel
Add ability to select an RX channel by number. By default channel 0 is
used.

Test: connect LimeSDR device and try to select the RX channel by number:
    OK: $ ./dump1090 --device-type limesdr --limesdr-channel 0
    OK: $ ./dump1090 --device-type limesdr --limesdr-channel 1
    NG: $ ./dump1090 --device-type limesdr --limesdr-channel 2
        $ limesdr: Invalid channel number.

Signed-off-by: Gluttton <gluttton@ukr.net>
2020-07-31 00:18:22 +03:00
Gluttton 7267d8aff9 limesdr: add ability to select desired device
Add ability to select a desired LimeSDR device by serial number. It is
not necessary to pass a whole serial number, but its key part is enough.
The first device which serial contains the passed key is selected.

Test: connect LimeSDR device and try to select it by serial number,
    below an example for a device with serial 0009081C05C00000:
    OK: $ ./dump1090 --device-type limesdr --limesdr-serial 9
    OK: $ ./dump1090 --device-type limesdr --limesdr-serial 90
    OK: $ ./dump1090 --device-type limesdr --limesdr-serial 908
    NG: $ ./dump1090 --device-type limesdr --limesdr-serial 999
    It hasn't been tested with several devices!

Signed-off-by: Gluttton <gluttton@ukr.net>
2020-07-31 00:18:12 +03:00
Gluttton f314e20342 limesdr: set verbosity level via input options
Add ability to set verbosity level for LimeSDR messages via command line
options. The range of available levels is from 0 to 4 and defined by the
constants from the `LimeSuite.h` file:
 - LMS_LOG_CRITICAL 0;
 - LMS_LOG_ERROR    1;
 - LMS_LOG_WARNING  2;
 - LMS_LOG_INFO     3;
 - LMS_LOG_DEBUG    4.
By default the verbosity level is 3 (INFO).

Test: launch the program with different verbosity level and ensure that
    number of messages is changed, for example:
    $ ./dump1090 --device-type limesdr --limesdr-verbosity 4
    $ ./dump1090 --device-type limesdr --limesdr-verbosity 3
    $ ./dump1090 --device-type limesdr

Signed-off-by: Gluttton <gluttton@ukr.net>
2020-07-30 00:39:37 +03: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
Ian Renton c89e3b9e9e
Use set-response-header instead of add-response-header
When accessing Dump 1090 JSON from another web server, I found that the "Access-Control-Allow-Origin" parameter was set twice ("*, *") which Chrome objected to. By changing "add-response-header" to "set-response-header" we ensure that the correct header is sent, but never duplicated.
2020-07-26 09:27:02 +01:00
eric1tran f2f19d49fb
Update openlayers to v6.3.1 (#73)
* Update openlayers to v6.3.1 and get existing source working with new version

* Organize ol source files a bit

Co-authored-by: erictran <eric.tran@flightaware.com>
2020-07-21 11:32:39 -05:00
biggezy 0dae3e4b4a
Allow custom selection of columns in aircraft table (#72)
* Front-end/styling of window with checkbox options to customize plane table columns

* Toggle checkbox functionality with persistence

* Toggle correct columns for each checkbox

* Add several more column options and fix up logic to show/hide columns

* Functional select/deselect all checkboxes; Needs optimization

* Set overflow-x to scroll on aircraft table

* Select Columns button styling

* Refactor toggleAllColumns()

* Separate legend from table scrolling

* Move aircraft table styling into css file

* Spacing

Co-authored-by: erictran <eric.tran@flightaware.com>
2020-07-21 10:00:32 -05:00
Eric Tran 74ef2e92bd Fix some html syntax 2020-07-16 16:56:00 -05:00