Packet handling blocks

Hi all,

I’m playing with gnuradio and am trying to create a simple example
where I take some data, do a virtual transmission, and then check I
have the same data at the receiving end.

I’ve got it successfully working with the following string of blocks:
vector_source_b, dbpsk_mod, channel_model, dpsk_demod, vector_sink_b

It works but I have to do some messing round in python beforehand and
afterwards adding on access codes and headers and putting some buffers
before and after the packet. I expect that blocks already exist to do
most of this stuff but I haven’t managed to find them.

I don’t have any background in this kind of stuff so I might be going
about this in completely the wrong way. I also don’t have a good idea
of what exactly gnuradio’s scope is and what I should expect it to be
able to do.

The following is the list of the steps I would like my simple example
to do, and what I have or have not been able to find in gnuradio.

  1. Start of with some raw data.
    There are lots of source blocks to choose from, no problem here.

  2. Parcel it into packets.
    gr_message_sink? (puts it into a message queue, all in one message)

  3. Add access codes and headers to packets.
    I couldn’t find anything to do this. Seems surprising.

  4. Combine packets into a stream to be transmitted.
    Can’t find anything.

  5. Modulation.
    Plenty of options.

  6. Transmit stream.
    gr_channel_model (because I don’t have anything real)

  7. Demodulation.
    Plenty of options.

  8. Receive stream, split out packets and remove access codes and
    headers.
    gr_correlate_access_code_bb/gr_framer_sink_1 (to queue)
    OR
    gr_packet_sink (to queue)

  9. Combine packets to get original raw data.
    Can’t find anything.

If anyone could tell me of any blocks I’ve overlooked, or how I should
be going
about it differently I’d appreciate it.

Cheers,
Ben

I just found simple_framer and simple_correlator which were what I was
missing.

Cheers,
Ben

On Sun, Nov 21, 2010 at 12:19 PM, Ben R. [email protected] wrote:

have the same data at the receiving end.
about this in completely the wrong way. I also don’t have a good idea
gr_message_sink? (puts it into a message queue, all in one message)
6) Transmit stream.
9) Combine packets to get original raw data.
Can’t find anything.

If anyone could tell me of any blocks I’ve overlooked, or how I should be going
about it differently I’d appreciate it.

Cheers,
Ben

Ben,
The other place to look is gnuradio-examples/python/digital. The main
program you will probably want to look at is benchmark_loopback.py. If
you have qtgui installed, I recommend, benchmark_qt_loopback2.py,
instead. This will show you how to handle the input/output issues.
It’s a bit tricky to find your way through the code, I admit, but if
you can follow it, it should answer most of your questions. (we will
hopefully be able to clean this up at some point.)

Tom