Commit Graph

34 Commits

Author SHA1 Message Date
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
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
denny
3e05a9eb03 Resolves issue #23.
Adds audio output display and management options supporting mono and 
stereo output options.

Provides audio output supporting prioritization by talkgroup and/or 
channel selection.

Supports muting all channels, or muting individual channels and
individual audio gain/volume controls.
2015-10-03 17:50:03 -04:00
denny
eb1c2fc7a1 Resolved issue with audio and baseband wave recorder writing incorrect
file size to recording.
2015-09-20 09:58:28 -04:00
denny
95c38df812 Resolved issue with delayed event log writing ... added forced flushing
after each event write.
2015-09-19 20:02:26 -04:00
Denny Sheirer
f070510acc Adding real cic decimator for testing in LTR FSK demodulator 2015-09-18 18:24:58 +00:00
denny
ba41022853 Instrumentation updates ... work in progress 2015-09-19 12:26:04 -04:00
denny
416cbdd105 work in progress 2015-09-14 21:48:30 -04:00
denny
c7227ca780 Work in progress 2015-09-14 21:31:26 -04:00
denny
0f85b7260a Adds event logging, code cleanup and some decoder issue resolution. 2015-09-02 19:41:44 -04:00
denny
f4d8ea281d Initial commit of redesigned internal processing and audio management.
Note: Several of the decoders are currently non-functioning in this
commit.  If you want the latest functioning codebase, please checkout
the commit prior to this one.  All decoders will eventually be updated
with this new architecture.

Currently broken:
- Logging and recording
- Aux decoders (Fleetsync/MDC/LoJack/Tait)
- LTR/Passport decoders

Changes in this commit:
- Module architecture for decoders and components with central
provisioning by the DecoderFactory
- Transition from Complex sample stream processing to float buffer
processing for improved memory management
- Redesigned filter structures - to support buffers and streams
- Resolved several memory leak issues
- Universal sharing of the thread pool manager
- Added centralized audio management with call/user prioritization and
new gui with mute/volume controls
- Embedded audio metadata for eventual streaming support
- Redesigned ProcessingChain to support independent re-use
- Added new TrafficChannelManager to handle traffic channel allocations
- Traffic Channel pool size and Call timeout available in P25 and
MPT1327 configs
- Redesigned channel and decoder gui components
2015-09-01 07:10:26 -04:00
dennis.sheirer
538a299246 Instrumentation updates for eye diagram data and removed stack trace logging when JMBE library is not discovered. 2015-06-19 09:34:36 +00:00
dennis.sheirer
bc5080aa4a P25 - updated automatic and direct frequency control to cleanup the code and allow P25 to better track frequency and PPM changes in the tuner and provide a cleaner implementation of the AFC component in the processing chain of all of the other decoders.
Changed C4FM symbol filter to reset frequency tracking values when the tuner's frequency or PPM values change.

Moved all frequency control pieces into the source.tuner.frequency package.
2015-05-04 00:55:04 +00:00
dennis.sheirer
c12123a81b P25 - work in progress to improve CQPSK LSM audio output. Audio output is still choppy but greatly improved over the previous test release. 2015-04-25 23:21:20 +00:00
dennis.sheirer
023553c3bf P25 audio decoder integration.
Auto-discovers the jmbe ( https://github.com/DSheirer/jmbe ) library at startup and provides decode P25 Phase 1 audio
2015-03-29 13:25:36 +00:00
dennis.sheirer
7d948c4af4 P25 LSM work in progress. CQPSK demodulator is working now, but there is a slight phase error in the constellation (it's rotated right by 5-10 degrees). I'm not sure if this is an error coming from the decoder, or if it's reflecting a phase imbalance from the source tuner i/q data. 2015-02-16 23:14:23 +00:00
dennis.sheirer
a65e821e85 P25 LSM decoder work in progress. Adds a CQPSK decoder based on Max's (KA1RBI) scope.py and gardner loop.
The CQPSK decoder is starting to take shape, but needs more tweaking and testing.  It's not keeping a good lock on strong P25 signals.  I have to add some more features to the intrumentation package to allow me to visualize the internals of the CQPSK decoder so that I can get a better sense of what needs fine tuning.

The CQPSK decoder may work for anyone that wants to sync the repo and run the build script.
2015-02-10 00:42:08 +00:00
dennis.sheirer
9310fb0daf Global rename of BitSetBuffer to BinaryMessage.
Corrected issue in P25 NID error correction.
2015-01-24 13:37:42 +00:00
dennis.sheirer
cc5edd4790 P25 - added parsing of packet payload data for confirmed PDUs. 2015-01-19 13:17:11 +00:00
dennis.sheirer
f99ab161ff Adds support for experimental Tait-1200 FFSK auxiliary decoder 2015-01-07 02:15:06 +00:00
dennis.sheirer
03460eeb19 P25 work in progress 2015-01-02 14:08:22 +00:00
dennis.sheirer
86cb5b2f4b P25 work in progress 2014-12-23 22:43:55 +00:00
dennis.sheirer
ba053457bd Out of memory fixes and updates to the P25 decoder.
Memory Fixes
Decreased the decimation process repeat timing so that it runs smaller work chunks more often
Decreased scheduled thread pool to 2 hot threads
Wrapped all scheduled thread pool runnables in try/catch blocks so that an exception doesn't kill the sample buffer processing thread and cause the buffer to grow unbounded.

P25 updates
Moved TSBK crc checks into the message framer so that message corrections don't occur after the message is constructed.
Added more functionality to the channel state for handling registrations and call events.
2014-12-19 23:59:38 +00:00
dennis.sheirer
5ef806ef02 Resolved issue with LJ1200 decoder using inverted bit output 2014-11-16 13:43:41 +00:00
dennis.sheirer
46e3594c07 P25 Work-in-progress check-in. 2014-11-10 09:53:03 +00:00
dennis.sheirer
ae0568ff3b Updated spectral display to used dBm scale and removed baseline/amplification items.
Updated sample handling code to use -1.0 to 1.0 float values throughout, to support P25 decoder and symbol filter.
2014-11-01 17:39:06 +00:00
dennis.sheirer
d34abdd2fa Refactoring to use COMPLEX and REAL sample terms throughout 2014-10-31 13:58:20 +00:00
dennis.sheirer
e61c3a891c Memory/CPU performance improvement and Audio/Mixer source restructuring
Converted to use float primitives and to keep samples in buffer format until the sample rate is decimated to 48kHz.  
Added new non-recursive, CIC decimation filter -- untested

Updated sound card/mixer input source management.  Now testing for mono/stereo support for each card and limiting channel choices accordingly.  Separated the mixersource into a ComplexMixer and and SimplexMixerSource.  The ComplexMixer is used for sound card based tuners like the funcube.  The SimplexMixerSource is used for demodulated sound card inputs.

Interfaces for sample handling - standardized on using 'Complex' to indicate I/Q samples and 'Simplex' to indicate demodulated float samples.  The processing chain now accepts either a decimated (48k) list of complex samples from a tuner channel source, or a 48k simplex buffer (array of demodulated float samples).

Resolved issue with HackRF tuner not applying tuner configuration information.
2014-10-26 10:11:30 +00:00
dennis.sheirer
e441ebf0c9 Changed to slf4j logging framework
Enhanced error handling/logging in RTL2832 eeprom device descriptor read method for troubleshooting issue present in some R820T tuners.
2014-09-20 10:04:04 +00:00
dennis.sheirer
63de9c6d7d MPT1327 - adds sync pattern for French variant of MPT1327. Channel decode configuration editor now contains a combo box that allows selection of normal or French variant. 2014-08-04 00:06:00 +00:00
dennis.sheirer
44faeb9351 IQ recording file playback partial checkin.
NOTE: only the gui components and settings handling have been implemented.  Actual recording playback is not yet implemented.

Partial checkin of initial P25 decoder development.  

NOTE: P25 decoder is not yet functional.
2014-08-02 15:16:12 +00:00
dennis.sheirer
26d3c12eda Added instrumentation to the LTR-Net decoder. 2014-05-06 13:19:24 +00:00
dennis.sheirer
da1db8a804 Improved LTR FSK decoder for LTR, LTR-Net and Passport decoders. Added IIR DC blocking filter and used improved slicer from the FSK decoder.
Added instrumentation to Passport decoder and updated some of the instrumentation components.
2014-05-01 23:24:51 +00:00
dennis.sheirer
3dfedcf8d1 Initial code check in continued 2014-04-26 19:48:24 +00:00