Commit Graph

63 Commits

Author SHA1 Message Date
denny
ec10bb7e62 Work in progress. 2016-02-13 14:57:13 -05:00
denny
7d1ec344de Work in progress - updates channel component editors and changes
functionality so that the editor starts up without a channel displayed
and as each channel row is selected in the channels table, the editor is
updated with the channel configuration.

Likewise, the channel editor is now a channel event listener on the
channel model and will maintain channel state if the user changes
channel configuration in any of the external channel controllers like
the spectral display or the channel list.
2016-02-13 14:57:13 -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
c405ddad96 Work in progress - program compiles and runs 2016-02-13 14:37:36 -05:00
Denny Sheirer
debdc39a5f Resolves threading issue in ChannelState.
Resolves issue in tuner controller where controller was not releasing
sourced tuner channels, preventing re-tuning to other frequencies.
Resolves issue with channel timeout on MPT1327 monitored traffic
channels
2016-02-01 09:17:56 +00:00
denny
f0c11f2590 Cleanup. 2016-01-23 14:39:52 -05:00
denny
99a5fc9bcf Closes issue #46. Removes the recordings tree node from the
configuration controller until such time that it can be fully
implemented.  Existing skeleton framework was a placeholder that did not
materialize.
2016-01-23 14:38:02 -05:00
denny
94d85f636d Resolves Audio issues (underwater/overlapping audio buffers).
Redesigned audio manager handling of audio outputs to ensure that only
one channel's audio can be routed to an audio output at a time.

Changed audio outputs to use the shared thread pool manager for
scheduled tasks, instead of creating a thread pool for each audio
output.
2016-01-23 10:19:47 -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
82a7155966 Adjusted color gradient used in spectral display and some code cleanup. 2015-11-29 07:14:21 -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
547da54340 Resolves issue with channel being deleted when disabled via context menu
on channel panel, or on channel node in configuration tree.
2015-11-22 12:50:35 -05:00
denny
dc3bcfd404 Resolves issue with spectral and waterfall alignment with frequency
overlay.

Minor edits to MPT and P25 config editors

Resolved issue with channels not accepting channel config changes 
between restarts (processing chain was not being deleted)

Minor edits to P25 decoder state
2015-11-22 11:29:05 -05:00
denny
e27ca12ec8 Closes Issue #33.
Adds Spectral/Waterfall display zoom feature with mouse dragging and
zoom window indicator.

Resolves issues with correct display and spacing of frequency labels and
tick lines display in the overlay panel.
2015-11-14 11:51:05 -05:00
denny
7283004d7a Fixed issue with audio manager when swapping mixers and there is a
call in progress.
2015-10-03 17:59:18 -04: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
20f5d06104 Restores context menus for channels in configuration window, channel
processing window, and spectral display window.
2015-09-26 18:35:28 -04:00
denny
507ae5255e Updated LTR Standard decoder state to new architecture to support
per-call recording and accurate state tracking.

Resolved issue with ThreadPoolManager limiting total number of scheduled
tasks (removed limiter - original intent is now OBE)

Updated ChannelState to better handle auxiliary decoder decode events,
so that when a fleetsync ident is at the end of the transmission, the
decode doesn't kick the channel back into a call state after it has
faded, causing static bursts and additional empty recordings.

Updated recording file name to include millisecond level precision, to
further avoid duplicate recording names
2015-09-26 07:37:40 -04:00
denny
ba41022853 Instrumentation updates ... work in progress 2015-09-19 12:26:04 -04:00
denny
f354c73109 More updates 2015-09-11 17:13:45 -04:00
denny
853748edd8 Resolved issue with icons displaying in call event panel 2015-09-11 15:37:39 -04:00
denny
575197bd98 Interim checkin for call recording. 2015-09-11 14:01:47 -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
31482a1014 P25 Decoder - improved LSM decoding and IMBE audio decoding. Includes redesigned audio output class to handle automatic start/stop of audio playback based on availability of audio data. 2015-06-08 01:05:19 +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
deddc11cc0 P25 - fix for encrypted calls to mute audio. 2015-04-26 23:45:01 +00:00
dennis.sheirer
f9d139a807 P25 - adds audio muting (ignore) for encrypted p25 voice calls 2015-04-04 12:32:18 +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
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