Project

General

Profile

RefactoringPage » History » Version 3

Anonymous, 04/22/2017 04:04 PM
Expand on direction for refactoring/re-engineering exercise.

1 1
= Refactoring OP25 =
2
3 3
The top-level tasks here are to:
4
* Split the classes for a block into an impl/interface and use the new namespace rules.
5 1
  This is pretty straightforward and documented [[http://gnuradio.org/redmine/projects/gnuradio/wiki/BlocksCodingGuide here]]. 
6 3
* Implement the common P25 functionality within the OP25 library.
7
  This covers the forward error-correction routines, the bit packing/unpacking
8 1
* Expose more of our components at a lower level because we can use GNURadio to schedule execution across multiple threads/CPUs.
9 3
  We already have some of the C4FM demod/mod, DQPSK demod/mod, vocoder and so on but we need to expose the bit correlator, framer and so on.
10
* Ensure that all blocks have unit tests, are properly documented and can be used in GRC.
11
12
To make the discussion more concrete we can consider splitting the decoder we use at present into multiple lower-level blocks:
13
* Modulator/demodulator blocks for C4Fm and pi/4 DQPSK (we already have most of this).
14
* A P25 correlator to detect training sequences (requiring a signal from the framer to reset to the scannning state).
15
* A P25 framer to construct packets from the bit stream (and signal the correlator).
16
* Blocks to compute and apply forward error correction.
17
* A block to do the p25cai encapsulation.
18
* A vocoder block modeled on those in the GNURadio core.
Add picture from clipboard (Maximum size: 48.8 MB)