Help wanted with building a block

Hi,

I’ve just started investigating the possibility of building a
source/sink to a USB device. I’ve read the ‘How to Write a Signal
Processing Block’, built GNURadio on Ubuntu 10.04 and played around a
bit with building the example gr-how -to-write-a -block. I’ve also had a
cursory look at the usrp directories. I’m looking for a little bit of a
leg-up to kick me off. I’m assuming that the structure of the usrp2
directories would be the best place to start. I have noticed that the
document ‘How to Write a Signal Processing Block’ shows a different
directory structure to that in the code example and the usrp directories
are different again. There is also a gr-usrp2 and usrp2 and it’s not
immediately obvious to me how they are split up and why.

  1. Which would be the best structure to take as a template and do I need
    both structures as in usrp2.
  2. Most of the documentation talks about processing blocks, sources and
    sinks. Is there anything that talks about a device which is both a
    source and a sink or do I need to trawl through the usrp code to see how
    to handle that.

Regards
Bob

On Mon, Jul 12, 2010 at 02:18:43PM +0100, Bob Cowdery wrote:

directory structure to that in the code example and the usrp directories
are different again. There is also a gr-usrp2 and usrp2 and it’s not
immediately obvious to me how they are split up and why.

usrp2 provides a non-GNU Radio specific interface to the usrp2.
gr-usrp2 builds on usrp2 and implements the actual sources and sinks.

  1. Which would be the best structure to take as a template and do I need
    both structures as in usrp2.

Easiest way to get the build framework started is to run

$ create-gnuradio-out-of-tree-project

It will create a directory tree starting with

  1. Most of the documentation talks about processing blocks, sources and
    sinks. Is there anything that talks about a device which is both a
    source and a sink or do I need to trawl through the usrp code to see how
    to handle that.

The usrp code is a reasonable place to start your study. It’s
probably more complicated than you need, but then the USRP is really
flexible. You should be able to use the fast usb classes as is.

Good luck!
Eric

Thanks Eric, that makes sense. I expect to go around the houses a bit
on this but I have working C code so essentially first off I just need
to code the interfaces. I guess therefore I have the equivalent of usrp2
and need to do a somewhat simplified version of gr-usrp2.

Bob

Hi
I have a question on how best to organise the software for this device.
I’ve looked at how usrp2 organises things with its hierarchy of classes.
This device has two input streams and one output stream with in-band
signaling on the output stream and in-band status on one of the input
streams. My question is that the control and status are nothing to do
with the streams specifically. It’s not quite like the usrp where the
input has the rx controls and the output the tx controls (if I read the
code correctly). Is it possible to have classes for control and status
that are not part of a source or sink, i.e. don’t inherit from
gr_sync_block or is there some other way to organise that.

Regards
Bob