Commit Graph

60 Commits

Author SHA1 Message Date
Nick Foster
4d569f9112 In progress, temp commit. Have removed pubsub interface in favor of 0MQ sockets -- this gets us free message-passing across network or local host. 2013-05-29 14:18:15 -07:00
Nick Foster
db34eca30e Refactored modes_rx to use a more modular radio interface (radio.py) using a pubsub pattern to formalize the old "outputs" interface I was using. Should make it easier to reuse the radio interface. 2013-05-27 19:50:42 -07:00
Johnathan Corgan
7ad09f5b14 Added option for pulse matched filtering
Pulse matched filtering places a boxcar filter upstream of the
averager and preamble detector.  The filter length is equivalent
to the number of samples in one Mode S chip (0.5us).  This
technique enhances operation when using sample rates > 4Msps.

When using --pmf, the threshold may need to be reduced a dB or
two from what would have been optimal without --pmf.

* rx_path.py now takes 'use_pmf', defaults to False

* modes_rx has new CLI option '-p' or '--pmf' to turn on PMF

* modes_gui has new checkbox on Setup tab
2012-10-29 09:37:18 -07:00
Nick Foster
26f7c779d7 Merge branch 'master' into az_map 2012-10-18 22:00:12 -07:00
Nick Foster
1adbf81950 Added get_dupes.py (not installed with apps). Pipe modes_rx output through get_dupes.py to find number of spurious replies. Intended to evaluate demodulator changes. 2012-10-18 12:22:52 -07:00
Johnathan Corgan
62304ff59e Refactor flowgraph into hierarchical block
This commit creates air_modes.rx_path, which is the common portion
of the flowgraph once the sample source and possible resampler are
created.  It takes baseband I/Q and emits Mode-S packets into the
supplied message queue.
2012-10-15 09:27:22 -07:00
Nick Foster
cadbf0eaaa Merge branch 'cpr' into az_map 2012-10-14 18:01:30 -07:00
Nick Foster
85da74b43a Fix preamble/slicer dB numbers. Was using power ratios for voltages (2.0 instead of 1.414 for 3dB, etc.). No real performance change.
Fix suggested by Denis Gapotchenko.
2012-10-13 20:55:45 -07:00
Nick Foster
6e6150b051 Limit scrollback buffer size. 2012-10-11 23:37:26 -07:00
Nick Foster
387daa1b1e Merge branch 'master' into az_map 2012-10-10 09:01:22 -07:00
Nick Foster
628003fbe6 Better cleanup in on_quit. Still probably needs a revisit. 2012-10-10 09:00:54 -07:00
Nick Foster
cd2cfec730 Azimuth map working. 2012-10-10 08:20:07 -07:00
Nick Foster
24cd839f56 Put deprecate warning in for old executable name. 2012-10-09 23:44:16 -07:00
Nick Foster
67b58d7204 Use a common lock for the KMLgen and SQL threads to keep them from stepping on each other when reading the SQLite db 2012-10-09 23:31:02 -07:00
Nick Foster
d86e568ac2 Decouple data output thread from live data display by using a signal to the main window instead of directly calling append(). 2012-10-08 18:44:52 -07:00
Nick Foster
4b70c5a0b0 Up the sample rate for RTL dongles to 3.2Msps. Seems to enjoy 3.2Msps just fine, and the Mode S RX works *much* better with the extra bandwidth. 2012-08-23 19:24:06 -07:00
Nick Foster
1d2ee71121 Fixes for dumb GUI mistakes 2012-07-18 18:49:13 -07:00
Nick Foster
10f96bf35d Merge branch 'master' into qtapp 2012-07-17 14:31:52 -07:00
Antoine Sirinelli
6b9006c339 Allow specification of source constructor arguments via -D/--args 2012-07-17 14:30:40 -07:00
Nick Foster
b26012f5ad Real-time RSSI update and graceful flowgraph closure on exit. 2012-07-16 22:43:02 -07:00
Nick Foster
3163fca47a Renamed everything in python/ for consistent namespace 2012-07-16 20:59:37 -07:00
Nick Foster
5442cba206 Split out GUI data model and views into modes_gui_model.py 2012-07-16 19:10:23 -07:00
Nick Foster
373a6f04ee New feature: reports per second widget. Lets you know you're actively receiving things. 2012-07-16 18:58:22 -07:00
Nick Foster
dbab4f0142 Don't populate lat/lon by default 2012-07-16 10:49:54 -07:00
Nick Foster
4fbda15afc Merge branch 'parse' into qtapp
Conflicts:
	python/modes_parse.py
2012-07-16 09:40:05 -07:00
Nick Foster
c2129e0eab Default RTL gain of 35 and parser catches negative shifts generated by invalid packets. 2012-07-16 09:36:15 -07:00
Nick Foster
cb4c91aee1 Altitude now taken from types 4, 5, 20 short replies as well, for ADS-B-equipped aircraft. Bearing/heading updated real-time.
TODO: figure out how to filter aircraft list for ADS-B-equipped aircraft only
2012-07-15 12:59:41 -07:00
Nick Foster
923651f69a Heading widget updates correctly. 2012-07-14 22:24:18 -07:00
Nick Foster
86a7bbbb2a Selections are persistent when rows inserted, rows automatically prune when 60s w/o reply 2012-07-14 21:38:06 -07:00
Nick Foster
372e925277 Well, the ICAO lineedit works in hex now, but I don't like the way it went in. 2012-07-14 15:43:09 -07:00
Nick Foster
20dd8457ea Dashboard mostly works. ICAO view now prints ident if available.
TODO:
draw selection in list view delegate
maintain selection on insert rows (emit beginInsertRows/endInsertRows)
fix heading widget so it updates correctly (something in the DataWidgetMapper that you aren't doing)
2012-07-14 14:44:36 -07:00
Nick Foster
70b099a05e Revert SQL changes and use a separate, non-db datamodel for the dashboard display. 2012-07-13 09:43:22 -07:00
Nick Foster
0a1d863f5f SQL parser modified to use flat aircraft table. This breaks KML horribly and eventually you should integrate the flat table into the GUI app and revert to the old method for the KML generator. 2012-07-12 00:02:11 -07:00
Nick Foster
5c0ccaa833 Split out the data model because I'm using a flat SQL table for the dashboard now. Most everything hooked up. 2012-07-11 19:18:40 -07:00
Nick Foster
19b7061247 Other fields entered. 2012-07-11 12:55:30 -07:00
Nick Foster
96db9a9608 today nick learns about the QDataWidgetMapper, which solves all his problems 2012-07-11 09:15:05 -07:00
Nick Foster
855535644f Using a delegate instead for coloring. Text color works but we don't get nice highlighting. Wish we could alter the painter and use the default paint(). 2012-07-10 16:08:24 -07:00
Nick Foster
2eb7426688 Using QtSql instead of sqlite3 to access data -- might change this back but trying to set up a good data model.
Also subclassed QListView so we can eventually implement fading by age in the list view.
2012-07-10 09:17:53 -07:00
Nick Foster
f2f344538a Added in speed/vs fetching. Need to figure out your datamodel. 2012-07-07 11:32:32 -07:00
Nick Foster
8439e0e5f3 Parser and error-handling changes. 2012-07-07 11:04:49 -07:00
Nick Foster
b4cafe0384 Setting up a model-view display for the airframe list. 2012-07-05 23:52:00 -07:00
Nick Foster
8cd551689b Forgot to modify UI import in GUI app 2012-07-05 11:10:27 -07:00
Nick Foster
ec70a90bd5 CMake magic to find PyQt4 and build the main GUI from .ui. Also renamed uhd_modes.py -> modes_rx, and the GUI app -> modes_gui 2012-07-05 11:00:52 -07:00
Nick Foster
a853077bc2 Live data display works. 2012-07-03 19:21:42 -07:00
Nick Foster
113c23b634 Everything is basically in place for at least live text. For some reason spawning the flowgraph is broken. 2012-07-03 09:40:26 -07:00
Nick Foster
fe6aa0c6de Fix error handling for data construct on init. 2012-07-02 07:17:21 -07:00
Nick Foster
57f7bc84fc Fixing TCAS reports. Types 20 and 21 still bomb because apparently MB field is optional -- the only type 20s I see are short packets. 2012-06-29 09:32:58 -07:00
Nick Foster
c6ab762ee0 CPR test case hugely expanded. Found bug in global decoding in the Southern Hemisphere. Haven't fixed the bug yet. 2012-06-15 19:34:03 -07:00
Nick Foster
da41dd3c84 Move CPR test code to main function within cpr.py 2012-06-15 18:50:37 -07:00
Nick Foster
29ae7d13ea Use "None" as default location so people get global decodes by default. 2012-06-13 20:14:57 -07:00