Commit Graph

33 Commits

Author SHA1 Message Date
dennis.sheirer
d7a03c7196 P25 - work in progress - this is a fairly stable version of the P25 channel state. There is still work to do, but I'm going to release a test version based on this commit.
- Channel state now processes HDU, TDU, TDULC, PDU, PDULC, LDU1/2, LDULC
2015-02-22 18:46:03 +00:00
dennis.sheirer
d83e6379a3 Alias actions. Adds capability to alert when an alias is active in one of the decoded messages. Alias actions include: beep, play an audio clip, or run a script. Additional actions can easily be added. 2015-02-14 19:24:25 +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
e5fad7ee22 P25 - Automatic Gain Control for P25 decoder 2015-01-19 19:25:43 +00:00
dennis.sheirer
1c0da75c01 P25 - adds direct frequency control for the C4FM symbol filter to adjust the tuner channel for frequency correction. 2015-01-19 16:20:37 +00:00
dennis.sheirer
f99ab161ff Adds support for experimental Tait-1200 FFSK auxiliary decoder 2015-01-07 02:15:06 +00:00
dennis.sheirer
f6687decef Adds Galois 24/12/7 error correction and detection for use with P25 decoder. 2014-12-26 19:51:25 +00:00
dennis.sheirer
d15ff407bd P25 channel state updates. 2014-12-21 23:05:47 +00:00
dennis.sheirer
1d77f28958 P25 work in progress - final check-in of channel state and activity summary processing of TSBK and PDU messages and event generation. 2014-12-21 14:30:06 +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
170688b95e P25 Work in progress. Adds CRC checking to NID/DUID. Adds limiter to trellis decoder to prevent it from decoding an excessive error message. Updates channel state with initial handling/generation of call events. 2014-12-14 02:34:19 +00:00
dennis.sheirer
0d8da161e1 Adds message filtering, message history clear, and message history size features to the 'Messages' tab. Filter window dynamically constructs a list of filters from the primary filter and each of the auxiliary filters enabled within the currently selected/enabled processing channel. 2014-12-12 04:30:31 +00:00
dennis.sheirer
33d18b1186 Icon change cleanup 2014-12-06 20:33:41 +00:00
dennis.sheirer
0b535d8143 Decoder icon updates. Changed from colorized icons to a standard set of decoder icons and will now color the text of the channel node to reflect the status (green - processing, red - no tuner, no color - disabled ) 2014-12-06 20:20:50 +00:00
dennis.sheirer
1ff69404f4 Updated P25 channel display to show relevant site information.
Changed Site ID Alias to a string from integer to support P25 style site identifiers (RFSS-Site)
2014-11-26 12:09:21 +00:00
dennis.sheirer
50a84b76b8 Adds new LJ1200 decoder for potential FSK signals that may be operating on 173.075 in the US 2014-11-16 00:47:41 +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
338c37af4d Resolves issue #12. BaseNode was referencing a null model. Added null check to prevent null pointer exception. 2014-10-26 23:50:31 +00:00
dennis.sheirer
d1ab661754 Frequency limit for Automatic Frequency Control to prevent the controller from walking too far.
Defaults to a maximum of 3kHz, but can be set to as high as 15 kHz.
2014-10-26 22:36:06 +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
61ecb5abf2 Adds an AM Demodulator to the list of available decoders. 2014-10-11 18:00:49 +00:00
dennis.sheirer
550aed79d4 Changed FrequencyChangeListener interface to an event so that I could describe what event was causing the frequency change and to broadcast frequency and sample rate error values.
R820T - added a couple more sample rate settings to the enum and modified the periodic sample rate info logger.
2014-09-27 09:46:18 +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
ad456d81a3 Updated Call Event handling/display for all decoders and updated channel display values for all decoders.
- Call events now show start-stop timestamps.  (or START-In Progress if call is ongoing )
 - Call start/stop events are now on the same event line.
 - Channel panels now display site and/or channel info
 - LTR call events are limited to CALLs on the current LCN, in order to cut down on false call events resulting from noise.
 - Passport display channels now show site/channel.
 - Changed default window used by the DFTProcessor to Cosine, which doesn't have as much FFT bin leakage.
2014-09-15 00:42:20 +00:00
dennis.sheirer
0f43c7ed22 Automatic Frequency Control enhancement. Provides default AFC and ability to disable in the Decoder tab of each channel. Spectral display includes visual indicators of frequency center (grey) and current AFC offset (yellow). 2014-09-11 22:46:05 +00:00
dennis.sheirer
4e0fd9b7b0 Channel Spectral Display
- Adds Channel Spectrum tab to display FFT of the audio output of the currently selected channel
 - Upgrades to JTransforms 3.0 FFT library
 - Adds three new context menus to main and channel spectral displays:
   -- Baseline - affects the vertical rendering baseline of the FFT
   -- Amplification - affects the vertical height of each FFT bin
   -- Averaging - affects how many FFTs are averaged to produce the display
2014-09-06 14:58:05 +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
35a2cebe03 Converted frequency to long primitive type (from integer) in anticipation of HackRF support which requires frequencies greater than 2.147 GHz, which is the max hertz value that can be represented by an integer primitive. 2014-07-08 14:40:11 +00:00
dennis.sheirer
cdf8c730bc R820T tuner controller - resolved issue with frequency controller not maintaining sync with actual tuned frequency. 2014-07-03 14:24:14 +00:00
dennis.sheirer
f70fca55b7 Partial check-in of R820T tuner controller. Tuning is not yet functional. 2014-05-16 20:13:41 +00:00
dennis.sheirer
27b9a741a7 Removed debug logging. 2014-05-02 12:42:36 +00:00
dennis.sheirer
3dfedcf8d1 Initial code check in continued 2014-04-26 19:48:24 +00:00