ReengineeringPage » History » Version 4
matt, 04/22/2017 04:04 PM
1 | 1 | = 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 | 4 | matt | * Implement Ettus' UHD USRP driver. |
10 | 1 | * Move to cmake for the build. |
|
11 | * Rename components consistently using the new namespace rules. |
||
12 | 3 | 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 | 1 | * 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. |