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. |