diff options
Diffstat (limited to 'README.organization')
-rw-r--r-- | README.organization | 239 |
1 files changed, 0 insertions, 239 deletions
diff --git a/README.organization b/README.organization deleted file mode 100644 index 138d90189..000000000 --- a/README.organization +++ /dev/null @@ -1,239 +0,0 @@ -[This file is currently not baked and does not claim to represent -consensus.] - -* Introduction - -This file describes the current organization of the GNU Radio source -tree. It is intended to be both descriptive and normative. - -* Unresolved issues in organization - -The big issues are: - -1) Should we separate by "code needed to implement protocol/modulation -foo", or related blocks. to (that are therefore not so likely to be -used together). - -2) How do m-blocks impact organization? If m-blocks are in a separate -module, which seems reasonable, then do we have most modules depend on -m-blocks rather than just core, or do we have two versions of blocks - -the classic continuous block and the m-block wrapped block? If -m-blocks become the main path, what will be less awkward? - -3) Because some (ADROIT at BBN) have proposed to implement MACs in -click instead of GNU Radio, should we have a clean separation of -MAC/PHY within GNU Radio, to facilitate using MACs implemented in -various places? - -4) Examples abound, and many are in gnuradio-examples. It might be -better to put examples near the code they use, and to separate useful -programs (like USRP benchmarks) from true examples. Examples should -probably be installed in $prefix/share/examples/gnuradio. - -* Plan (normative) [[NOT BAKED!!! NO CONSENSUS!!!]] - -Create a new module gr-packet, to hold blocks generally relevant to -sending blocks of data. Create subdirectories within gr-packet for -specific protocols (e.g. 802.11, GNU Radio's GMSK "protocol"). - -Convert tunnel.py to be OS-independent and a general source/sink -block, decoupling modulation from OS plumbing. - -* Pointers to code to be integrated - -The immediate question is how to integrate the 802.11 implementation -done by BBN (and assigned to FSF), available at: - - http://acert.ir.bbn.com/viewvc/adroitgrdevel/adroitgrdevel/gr-bbn/ - -This contains blocks at various places in the stack, and gdt believs -that putting them in an 802.11 module will lead to less reuse and less -of a tendency to generalize. - -* Organization of the GNU Radio source tree (mostly descriptive) - -The GNU Radio source tree is rooted at the directory containing this -file; see README for how to get it if you're using a release or -tarball. - -Within this directory, there are a number of subdirectories, most of -which can be enabled or disabled independently. See README for how to -do that; this document is concerned with describing what each module -does enough to help someone who is familiar enough with GNU Radio to -write new code to choose where to put it. The list is not exhaustive. -The description of some modules also lists things that don't belong, -tagged with ?M. - -** gnuradio-core [foundational code for the rest of GNU Radio] - -(gen_interpolator_taps is not installed. Why? How is it used?) - -doc: glue to use with doxygen - -?M doc/other/tv-channel-frequencies: (TV specific) - -?M src/lib/g72x: - G.711 family codec - -src/lib/filter: - implementation and coefficient generation -src/lib/general: - foundational blocks not specific to any technology: - type conversion, {de,}vectorization, add, sub - rms power, throttle, sources, sinks, squelch base class - - general blocks: - agc, pll, sync, costas loop, power squelch, quadrature demod - - ?M framer/correlator - ?M packet source/sink - -src/lib/io: - basic file io, message io - oscope (trigger support) - i2c bus - ?M microtune eval board (like USRP; should probably have own module) - ?M SDR1000 - -src/lib/omnithread: - portable threading library (for when POSIX isn't portable enough) - -src/lib/reed-solomon: - reed-solomon implementation. Unclear how/whether it's wrapped into - blocks. - -src/lib/runtime: - blocks (basic, hier) and associated buffering - flowgraphs - timers - doubly-mapped circular buffers - -src/lib/swig: - code to wrap the rest in python - ?M atsc.i (cruft? moved?) - -src/python: - build utilities - -src/python/bin: - ?M microtune.py: microtune control program (installed and EXTRA_DIST!) - -src/python/gnuradio: - audio base class - engineering notation support - test harness support - test code (not installed) - basic block/flow_graph - -src/tests: - test code - ?M test_atsc.cc (# in Makefile.am, but still present) - -src/utils: - octave and Scheme scripts (not installed) - -** usrp - -This contains code to deal with the USRP, but not GNU Radio support. - -?M fusb - The "fusb" abstraction is arguably useful for all interface devices - that use USB, not just the USRP. - -** gr-usrp - -Code to use the USRP with GNU Radio. - -?M Arguably the Gnu Radio/USRP benchmarks belong here, but are in -examples - -** gr-audio-alsa -** gr-audio-jack -** gr-audio-oss -** gr-audio-osx -** gr-audio-portaudio -** gr-audio-windows - [All of these support audio for some particular audio backend. - -** gr-atsc - ATSC (HDTV) transmitter and receiver. - All blocks seem to be specific to ATSC. - ?M Perhaps some blocks should be abstracted out for reuse with other - than ATSC parameters. - -** gr-comedi - This module is missing a README that explains what it does. - http://www.comedi.org/ - -** gr-gsm-fr-vocoder - GSM 06.10 full rate vocoder, and gsm library - (Note that the presence of this argues for moving the G.711 code discussed above.) - -** gr-pager - POCSAG and FLEX - (gdt suspects there are blocks in here that could be generalized.) - -** gr-radio-astronomy - seems to use only standard blocks from python - -** gr-trellis - This module provides trellis code support, and appears generic. - -** gr-video-sdl - This appears to be like the audio modules, but for video and - specifically for SDL. Unlike audio which has a base class, there - does not appear to be an abstract video class in gnuradio-core. - -** gr-wxgui - Support for using wxwidgets from python. - ?M (Linux-specific??) code to use the Griffin Powermate (and hook it to a GUI) - glue to connect FFT and scope to gui - -** pmt - polymorphic types (building block) - -** mblock - Message block implementation. - Note that mblock being a module means that signal processing blocks - that are mblock-aware must depend on this module and thus probably - cannot be in gnuradio-core. Thus, m-block wrappers for the blocks - in gnuradio-core must be elsewhere and it is maybe a good idea to - move them to someplace like gnuradio-common where the streaming and - m-block versions can be together. - -** ezdop - Code to deal with the ezdop direction-finding hardware. - -** gr-ezdop - Glue code to use the ezdop from GNU Radio. - -** gr-rdf - (Currently empty) code to perform direction finding. - -** gnuradio-examples - - It's arguable that all of these are misplaced, and that examples - belong with the code that they use. - - Bona fide examples (code not intended to be useful except for reading): - c++/dial_tone (how to do things only in C++) - python/audio - - Test programs: - python/channel-coding - python/digital-voice - python/multi-antenna (?) - - Programs in between test and useful: - python/digital - ?M tunnel.py: glue to get packets to Linux, conflates modulation - and packet handling - python/multi_usrp - python/networking/measurement_slave (goes with what?) - - ?M Programs intended to be useful - python/apps/hf_{explorer,radio} - - ?M Kitchen sink: - python/usrp - benchmarks, test, basic fm/wfm/tv receivers, spectrum sensing, - fft, oscope |