Project

General

Profile

ReengineeringPage » History » Revision 2

Revision 1 (Anonymous, 04/22/2017 04:04 PM) → Revision 2/4 (Anonymous, 04/22/2017 04:04 PM)

= Re-engineering OP25 = 

 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. 

 == Re-engineering and Refactoring goals == 

 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:  

 * Move to cmake for the build. 
 * Rename components consistently using the new namespace rules. 
   We can use the new  
 * [RefactoringPage Refactoring so we have top-level encoder/decoder blocks but expose lower-level blocks (e.g. P25 correlator, P25 error corrector, IMBE vocoder, etc.) and make use of new features as appropriate.] 
 * Remove dependency on obsolete interfaces. 
 * Remove dependency on problematic external code for build: 
   * Remove dependency on IT++ (write our own error-correction code instead). 
   * Remove dependency on Frank's demod (pretty much done). 
 * Revise the p25cai encapsulation protocol (the radiotap-like structure sucks) and ensure that OP25 and wireshark use it properly. 

 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. 

 == Tickets == 

 Work will be managed using the trac ticket system. Every re-development activity will have an associated ticket so we can track progress. 

 == Source Code == 

 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. 

 === Unit Tests === 

 Open questions: 
 * Use Boost::Test to write unit tests? 
 * Require all blocks to implement make check. 
   Have them call the "real" Boost::Test unit tests or do something else? 

 == Managing Discussions == 

 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)