discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] Tx & Rx in one USRP


From: David Tisza
Subject: Re: [Discuss-gnuradio] Tx & Rx in one USRP
Date: Tue, 24 Mar 2009 19:18:29 -0400
User-agent: Thunderbird 2.0.0.21 (Windows/20090302)

Hi William,

William Sherman wrote:
I want to use one USRP to transmit and receive. I tried setting up two
flowgraphs (top_blocks), one that will be a receiver "thread" and
another a transmitter "thread". However the program complains:
RuntimeError: gr_top_block_impl: multiple simultaneous gr_top_blocks not
allowed
Yes, thats correct you should only have one top block, that's why it's called a top block, because it supposed to be on top of a hierarchy tree, and as everyone knows "There can be /only one/! - Highlander" :) But seriously, the trick is that you can have separete distinct chains in your flowgraph, eg imagine two simple chain
Think of it as you have a big graph which has multiple unconnected parts.

chain1: usrp->some_processing->packetizer sink
chain2: packet_to_stream_source->some_different_processing_than_before->usrp_sink

And you create these blocks in one top block, connect them. Clearly the two chains do not have a common point, but the scheduler will take care about them, so they will opeate paralelly. BTW the default scheduler is a thread per block scheduler, so every signal processing block has it's own exacutor thread, but you don't need to deal with this.
Is there no way to have a receiver flowgraph in operation while
transmitting on a different daughterboard?
There is as I mentioned above, even you can have a flowgraph using the same daughterboard for receiving and transmitting (not at the same time of course)
In order to implement a TX+RX in one USRP do I have to shut down the
receiver flowgraph every time I want to start up a transmitter
flowgraph?
No.
Consider viewing the tunnel example: (/gnuradio-examples/python/digital/tunnel.py) where there exist simultaneously a sending chain towards the usrp which gets data from a virtual ethernet device and a receiving chain from the usrp which is fed to a virtual ethernet device.
But there is only one top block.

understanding this example can be a little tricky if you just started, but it worth it.

Hope it helped

--
David Tisza

University of Notre Dame
Department of Electrical Engineering





reply via email to

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