Commit Graph

62 Commits

Author SHA1 Message Date
Denny
49a1ea04f8 #66 wip 2017-01-08 04:38:10 -05:00
Denny
90324404b2 Resolves issue #69 with double audio recordings 2016-05-30 07:25:50 -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
64fee2c718 wip #34 - testing and validating changes and testing decoding. 2016-03-29 20:00:23 -04:00
denny
58160d6c6b wip #34 - resolved various issues with alias controller and editors.
Added synchronized method to channel processing manager to ensure that
we don't have contention during channel changes.
2016-03-26 07:17:43 -04:00
denny
112083a22f wip #34 - finished updating all channel configuration editors and
completed preliminary functional testing.
2016-03-25 14:26:08 -04:00
denny
e89e7bd361 wip #34 - updating the decoder editors to the new editor format 2016-03-21 18:30:19 -04:00
denny
d93f497b33 wip #34 - reformatting the channel configuration editors. 2016-03-20 19:35:45 -04:00
denny
9273f679f4 Resolves issue with loading of channel map ranges from playlist_v2.xml 2016-03-07 19:05:34 -05:00
denny
b6e4c4e7aa WIP #34 - new channel map manager/editor is complete. Channel map
manager is now a separate window launched from the decoder tab,
specifically the MPT1327 decoder tab.
2016-03-06 19:22:54 -05:00
denny
2394ac2fa9 WIP #34: added channel map manager and new editor window. Removed a
number of unused classes.  Removed playlist manager from a number of
classes and replaced with the alias, channel and channel map models.
Updated playlist manager to no longer retain a playlist except for when
loading to models or when storing from models.  Extracted version 1 to
version 2 playlist conversion and changed playlist manager to keep the
original version 1 playlist and create a new version 2 (playlist_v2.xml)
file.  On startup, try to load a v2, and if not, look for a v1 to
convert.  Otherwise, don't create a playlist and one will be created
once the user adds items to the models.
2016-03-06 07:48:14 -05:00
denny
c8328b3eff Channel editor and sub editors updates. 2016-02-15 20:12:23 -05:00
denny
f7f6c2fc3e Merges changes from master branch to resolve issue with CPU and memory
and constraints on scheduled thread pool saturation.  Adds a new
scheduled thread pool for each processing chain that the components in
the chain can share, versus the single shared pool exposed by the
threadpoolmanager class.
2016-02-15 15:47:14 -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
2c6e35c739 Work in progress.
-Removed channel collection panel since panels will only have 1 channel
now
-Resolved issue with channel list and channel selection events
-Fixed some of the classes from the rebase to master branch
2016-02-15 07:10:41 -05:00
denny
1f654b5b9c Rebase channel/alias model redesign branch on current master
(v0.2.0.beta5)
2016-02-14 11:45:43 -05:00
denny
75714072b2 Adds AliasModel, AliasController tab with new AliasEditor 2016-02-13 15:04:10 -05:00
denny
15edcdebe6 Adds AliasModel and AliasEvent and support for conversion from legacy
playlist format.

Renames PlaylistEditor to ChannelController
2016-02-13 15:04:09 -05:00
denny
da924e8b3a Updates playlist editor with Add, Copy/Clone and Delete channel
functionality
2016-02-13 14:58:51 -05:00
denny
61f68c08e8 Adds support to channel model and processing manager to auto-start
channels upon loading the playlist.  

Processing manager now detects channel configuration changes and
restarts the channel if it is currently processing.

Channel editor enable button now shows green if it is processing, or
default when not processing.
2016-02-13 14:58:50 -05:00
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
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
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
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
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
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
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
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
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
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