discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] GNU Radio Architecture and Implementation ?


From: Tom Rondeau
Subject: Re: [Discuss-gnuradio] GNU Radio Architecture and Implementation ?
Date: Thu, 11 Feb 2016 09:54:57 -0500

On Wed, Feb 10, 2016 at 10:57 PM, West, Nathan <address@hidden> wrote:
On Wed, Feb 10, 2016 at 7:47 PM, Abhinav Jadon <address@hidden> wrote:
Hi ,
I was reading up about the architecture of GNU Radio. Its primarily an inheritance based architecture, the blocks that pass data to other block are actually implemented as subclass and superclass pair. Am I right about this?
Also whats the need for the flowgraph to be a subclass of the top_block. Also, whats the difference between top_block and block ?

Regards


Someone may come and explain this better, but at a super high level there are the following important classes: basic_block, block, hier_block2, top_block. They all inherit from basic_block which provides an API for message handling, input and output signatures, name, and some other core features. From basic_block you can get a hier_block2 or a block. hier_block2 mostly provides an API for connecting blocks. top_block inherits from hier_block2 and provides start and stop functionality which creates buffers and runs other blocks in the flow (blocks that have been ->connect()'ed).

On the other fork of basic_block you have block, which provides an API for providing information about how this block likes to do work (alignment, relative_rate, history, noutput_items, ninput_items, forecast and more) and also contains the block_detail. All signal processing blocks inherit from block and are connected in a flowgraph through a top_block. Signal processing blocks could just inherit from block if they need some special cases, but most of the time you want a sync_block, sync_interpolator, sync_decimator which inherit from block and reduce some of the API for you based on different assumptions of relative_rate that you provide.

These are somewhat advanced questions though, and probably working through the tutorials, making flowgraphs, and writing blocks while reading the doxygen manual make some of this more apparent.

-nw


Time for this one again :)

http://www.trondeau.com/blog/2013/9/15/explaining-the-gnu-radio-scheduler.html

Tom


reply via email to

[Prev in Thread] Current Thread [Next in Thread]