Commit Graph

33 Commits

Author SHA1 Message Date
Denny
a302d098de 126 - Significant improvement in processor and memory utilization. Refactors all USB tuner sample processing with a new USBTransferProcessor class. LibUSB transfer timeout processing is now consolidated under the TunerManager and tuners register with this singleton to auto-start or auto-stop USB bulk transfer processing. Resolves long-standing issue impacting multi-tuner use where the second and subsequent tuners may have been routinely starved for LibUSB processing time under heavy-loading. All tuner buffer threaded processing is now handled as runnables in the scheduled thread pool, eliminating tuner-dedicated processing threads. Added tuner buffer size management to prevent memory blow-out when down-stream processing is either lagging or impacted by java garbage collection operations. Both tuners and individual DDC channels now have bounded sample buffer queues that automatically enter and exit overflow mode when predefined max/reset thresholds are met. When any queue goes into overflow mode, sample buffers are simply dropped in favor of preserving program/memory stability. 2017-01-28 09:08:11 -05:00
Denny
6e94d9ce51 #108 [WIP] Created new ThreadPool class with a static ScheduledThreadExecutor that is now shared by all components. Removed ThreadPoolManager from all classes. Consolidating into 1 pool seems to have reduced CPU usage by ~15-20%. Overall memory usage is also reduced. 2017-01-22 09:33:47 -05:00
Denny
b33c0359ef Resolves issue with 10 MHz sample rate discovery in Airspy R0/R2 2016-07-12 13:44:17 +00:00
Denny
078a6fddce Closes #71 - frequency controller throws exception when exceeding min/max tuning limits of a tuner.
Updated code to show dialog to user whenever the tuning limit has been exceeded.  Added new InvalidFrequencyException that includes the requested invalid frequency and the valid frequency limit that was exceeded
2016-06-04 08:21:28 -04:00
Denny
bf5ded53e2 Code cleanup 2016-06-01 04:15:16 -04:00
Denny
3c53f864c4 Closes #70 - airspy mini sample rates.
Change code to no longer assume that 10 MHz is an available default sample rate.  The mini is only capable of 6 and 3 MHz.

Note: only the 6 MHz sample rate option should be used at this time.  6 MHz can be decimated to 48 kHz using an integer decimator.  sdrtrunk doesn't support the 3 MHz option, because it can't decimate that rate to 48 kHz until the new channelizer is developed.
2016-05-30 08:58:00 -04:00
denny
3231e9828b Resolves #64 Persist last tuned frequency to tuner configurations
Task-Url: http://github.com/DSheirer/sdrtrunk/issues/issue/64
2016-04-05 19:30:09 -04:00
denny
c3d52ff86e Merges #34 Major redesign of Tuner, Channel and Alias management.
Changes to model, view and controller components and updates all gui
editors.  Removes the configuration panel and tree and replaces with 3
new panels.  Updates playlist.xml to a new playlist_v2.xml format.
2016-04-01 08:23:49 -04:00
denny
55443b42f3 wip #34 - resolved issue with airspy correctly loading stored tuner
configuration values.  Updated remaining tuner editors to set loading
flag when loading tuner configuration and turn off after loading is
complete.
2016-03-27 07:25:17 -04:00
denny
d3e8816bb4 wip: #34 Adds the E4000 tuner editor and updates a few other tuner
editor pieces.
2016-03-20 05:30:16 -04:00
denny
6bb417f69a wip: #34 - finishes the airspy tuner editor panel and adds tuner info
button to the r820t tuner editor to view serial number and misc info.
2016-03-19 14:49:55 -04:00
denny
a4d69ce0aa wip #34 - final edits to R820T tuner configuration editor and introduced
frequency correction to the airspy tuner configuration.
2016-03-18 10:59:36 -04:00
denny
45f0e09d5a wip #34 - updated tuner configurations to include unique id and assigned
flag, so that we can get rid of tuner configuration assignment objects.
2016-03-17 22:01:31 -04:00
denny
86816228c2 wip #34 - adds enable/disable to tuner editor components and frequency
control
2016-03-13 08:43:55 -04:00
denny
0605760fcd wip #34 - removed some wrapper methods from tuner since the tuner
controller is now exposed (frequency, sample rate, channel count, etc)
2016-03-13 07:38:29 -04:00
denny
415f95ec89 wip #34: refactored tuners to take a tuner controller as an argument.
Removed frequency change listener framework from tuner so that the tuner
controller handles all frequency change interaction.

Updated tuner view to allow selecting tuners for main spectral display
and/or launching a new spectral display by clicking in the tuner table
cell.
2016-03-13 07:09:26 -04:00
denny
218eeb1848 WIP #34 - more work on tuner model and view. Includes new tuner
configuration and tuner configuration assignment editors.  Beginning of
tuner editor panel rework.   Removes most of the remaining JTree
configuration pieces.  Updates the settings manager to load and save
tuners and refactors all of the tuner configuration management out into
the tuner configuration model.
2016-03-12 12:54:48 -05:00
denny
9d4afb8c1f WIP #34 - updates tuners and tuner model to provide details on
frequency, sample rate, sourced channels, and spectral display in the
tuner view tab.
2016-03-11 07:16:29 -05:00
denny
63cea60c42 Merges master CF2C0CA, EEAD22F, 5F2D8C8, 22D3871, and 6F2A7E8 - updates
libusb transfer processing and shutdown/cancel management of transfers
in progress.
2016-02-27 09:45:47 -05:00
denny
cf2c0ca07d Resolves significant memory usage issue - updates Airspy and HackRF with
the recent changes applied to RTL2832 Tuner controller for processing of
libusb transfer buffers.
2016-02-27 06:19:35 -05:00
denny
dd22397f75 Resolves issue with application memory growth and thread pool
saturation.

Each tunerchannelsource was sharing a thread pool and as the processing
load increased, the thread pool was not expanding and the processing
tasks were backing up, causing the buffers to grow with unprocessed
data.

Changed so that each tuner channel source is handed a thread pool to use
for processing incoming sample data.  Processing chain maintains the
thread pool and starts the channel source.  This allows traffic channels
to reuse the thread pool across multiple iterations.
2016-02-15 09:46:33 -05:00
denny
e2a0451bfb Resolves issue with scheduled thread pool overtasking. Removes tuner
channel source decimation processing over to its own thread pool.
2016-02-15 08:42:29 -05:00
denny
4be63d4b95 Work in progress.
-Started work on new channel editor channel viewer/controller
-Removed a number of unused buffer package classes
-Moved automatic frequency control to be a module and removed special
handling
-Added IUnfilteredRealBufferListener & Provider interfaces
-Completely removed the ResourceManager class
2016-02-13 14:57:12 -05:00
denny
9c305b0732 Resolves issue with AFC and frequency change event handling,
specifically for P25 C4FM frequency tracking.

-Clarifies frequency change event naming and adds request/notitification
events for channel frequency correction type events

-Removes DC offset filter from P25 C4FM demodulator which was operating
independently of the AFC tracking component within the C4FM symbol
filter.

-Changed FCD tuner center DC spike buffer size after detecting that the
DC center spike was influencing the P25 C4FM filter frequency tracker
whenever the tuner's center frequency was changed to bring the channel
boundary within 3 kHz of the center spike -- set it to 5 kHz to provide
a better buffer.

-Updated spectral channel display to provide better indication of
automatic frequency control (yellow line) versus channel frequency
2015-12-31 09:08:26 -05:00
denny
a42e6e81ad Adds Lineary, Sensitivity and Custom mode options to airspy tuner. 2015-12-13 09:02:26 -05:00
denny
0951277915 Tuner Controller update to better handle automatic center frequency
calculation when additional channels are allocated.

Incorporates tuner specific definition of overall usable bandwidth, so
that tuners like airspy can specify 90% of 10 MHz (ie 9 MHz) is truly
usable and the fringe 10% is unusable rolloff.

Also includes tuner-specific defining of the width of the central spike,
or a value of 0 indicates that the entire range is usable (ie airspy).
2015-12-12 14:08:32 -05:00
denny
4caecaa476 Removed deemphasis experiment and replaced with a fixed, non-clipping
gain module for P25 IMBE audio.
2015-12-12 07:11:30 -05:00
denny
ae10b5fc1c Airspy controller - changes method for adjusting center tuned frequency
when tuner channels are allocated by the airspy.  New method determines
the min/max requested frequency range and sets tuner center to the
center of that range, while limiting the total usable bandwidth to 90%
of the bandwidth, to account for rolloff of 5% at the upper/lower edges.

When a new channel is requested, if the channel fits within the current
center frequency and usable bandwidth, the center tune frequency is not
adjusted, to minimize the number of retunes on a busy system.
2015-11-29 07:11:47 -05:00
denny
f04a6727b0 Resolved issue with channel label display in spectrum overlay panel
when a new tuner is added.

Cleanup of debugging messages.
2015-11-22 14:25:37 -05:00
denny
4025f88951 P25 and Airspy work in progress
Updated p25 decoder state to better track calls and call detects from
a trunked channel

Fixed issue with false detects on LDU2 encrypted call messages

Fixed Airspy channel allocation ... will allocate channels across the
entire bandwidth, minus 50 kHz on either end, and will not adjust the
center frequency if it's not needed.

Fixed traffic channel teardown -- traffic channels are immediately 
removed now, without a fade delay.

AudioMetadata - updated flag is now reset upon copying the metadata
2015-11-21 17:40:59 -05:00
denny
2e2a8da13d Adds missing class for airspy tuner 2015-11-08 08:18:28 -05:00
denny
f0dc9452c8 Resolves issue with correct display and scaling of decibel values in
both the spectral and waterfall displays.

Resolves issue with gain loss in HilbertTransform.
2015-11-08 08:17:34 -05:00
denny
70e62ebb35 Adds airspy USB tuner support and updates the spectral display
component.

-Airspy supported with 10 and 2.5 MSps sample rates.  Additional
decimation may be added later.

-Spectral display updated to include smoothing and filtering options.

Note: the decimated output of a tuner channel from the airspy is
48,076.9 samples per second, versus the normal 48 kHz decimated rate.
This is 1.0015 times the normal rate and doesn't appear to impact the
decoders or audio processing.  Therefore, no fractional resampling has
been added.
2015-11-07 08:18:41 -05:00