Project

General

Profile

ReengineeringPage » History » Version 1

zecke, 04/22/2017 04:20 PM

1 1 zecke
= Re-engineering OP25 =
2
3
Since we first started on OP25 there has been a long hiatus during which GNURadio has evolved and this has caused a lot of problems. This page is the top-level for the re-engineering effort.
4
5
== Re-engineering and Refactoring goals ==
6
7
There are a number of top-level goals for this exercise. Most obviously we want the code to work on GNURadio 3.6 but there are many subtasks: 
8
9
* Implement Ettus' UHD USRP driver.
10
* Move to cmake for the build.
11
* Rename components consistently using the new namespace rules.
12
  We can use [https://github.com/mbant/gr-modtool gr-modtool] to help automate creation of the various files.
13
* [RefactoringPage Refactoring so we have top-level encoder/decoder blocks but expose lower-level blocks (e.g. correlator, framer, error corrector, IMBE vocoder, etc.) and make use of new features as appropriate.]
14
* Remove dependency on obsolete interfaces.
15
* Remove dependency on problematic external code for build:
16
  * Remove dependency on IT++ (write our own error-correction code instead).
17
  * Remove dependency on Frank's demod (pretty much done).
18
* Revise the p25cai encapsulation protocol (the radiotap-like structure sucks) and ensure that OP25 and wireshark use it properly.
19
20
To keep the work to a reasonable minimum we can focus stage one on just the core blocks and use GRC to implement a transceiver and receiver.
21
22
== Tickets ==
23
24
Work will be managed using the trac ticket system. Every re-development activity will have an associated ticket so we can track progress.
25
26
== Source Code ==
27
28
We'll make the work-in-progress available on the trunk of the normal OP25 repository. For now we'll just use a new "refactoring" subdirectory to act as the top-level of the re-engineered codebase.
29
30
=== Unit Tests ===
31
32
Open questions:
33
* Use Boost::Test to write unit tests?
34
* Require all blocks to implement make check.
35
  Have them call the "real" Boost::Test unit tests or do something else?
36
37
== Managing Discussions ==
38
39
This wiki page is intended to be the top-level page for the re-engineering exercise. If we need to work on a proposal we can open a shared wiki page to capture the idea and discuss it via the e-list.
Add picture from clipboard (Maximum size: 48.8 MB)