Commit Graph

32 Commits

Author SHA1 Message Date
Denny
26837b8a68 #90 [WIP] Resolves issue with MPT-1327 decoder which has apparently been broken for a long time. 2017-01-21 11:05:30 -05:00
Denny Sheirer
f070510acc Adding real cic decimator for testing in LTR FSK demodulator 2015-09-18 18:24:58 +00:00
denny
c7227ca780 Work in progress 2015-09-14 21:31:26 -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
9310fb0daf Global rename of BitSetBuffer to BinaryMessage.
Corrected issue in P25 NID error correction.
2015-01-24 13:37:42 +00:00
dennis.sheirer
871705ece8 P25 - adds SNDCP context management and data packet parsing for IPV4 and UDP/IP packets to include IP addresses and data payload bytes. 2015-01-23 21:06:02 +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
cc5edd4790 P25 - added parsing of packet payload data for confirmed PDUs. 2015-01-19 13:17:11 +00:00
dennis.sheirer
51d6b328bd P25 - adds CRC-9 error detection to confirmed PDU message blocks 2015-01-18 12:43:10 +00:00
dennis.sheirer
35855b08bb P25 - adds 3/4 rate convolutional decoder for confirmed packet data units. 2015-01-17 18:24:39 +00:00
dennis.sheirer
71c247a7c3 Updates to Tait decoder - adds GPS message parsing and SELCAL ident parsing 2015-01-10 20:27:01 +00:00
dennis.sheirer
c579f1617d P25 work in progress 2015-01-07 02:15:51 +00:00
dennis.sheirer
84261a4be9 Changed NID error detection and correction (edac) to using Berlekemp Massey 63-bit block decoder for the BCH(63,16,11) code so that we can correct up to 11 bit errors in a NID (versus previous 2). 2015-01-04 15:29:34 +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
d15ff407bd P25 channel state updates. 2014-12-21 23:05:47 +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
2635b58dfc Resolved issue in CRC-CCITT correction method. Added CRC error detection to PDU header block in the message framer, so that we're sure that the number of follow blocks is correct while we're capturing symbols/bits. Set the TDU message error correction to Pass since the CRC is calculated within the message framer and no errant NIDs (TDU) are passed. 2014-12-15 02:01:15 +00:00
dennis.sheirer
d6306a5e85 P25 work in progress - adds CRC-CCITT error checking to TSBK messages and shows CRC correction state in the messages tab 2014-12-14 22:54:37 +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
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
86899e8a77 P25 work in progress. 2014-11-26 03:42:22 +00:00
dennis.sheirer
1660f13633 P25 work in progress 2014-11-22 16:13:44 +00:00
dennis.sheirer
eee28a3449 P25 Decoder work in progress 2014-11-14 12:53:32 +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
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
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