Transmitting data from file using benchmark_tx.py, recieving to file with benchmark_rx?

Hello,

I am attempting to establish bidirectional communications between two
computers using USRPs. As a proof of concept, I would like for one
computer
to be transmitting a sequence of numbers (i.e. the complex numbers
corresponding to a sine wave), and the other to receive this and
immediately
send it back to the transmitting computer. The bidirectional link
portion is
effectively done with tunnel.py, emulating an ethernet connection with
the
TUN/TAP driver. It works fine - each computer can ping the other.
However,
in order to implement it this way I would need to write a driver outside
of
GNU Radio entirely, to make use of the emulated ethernet connection gr0.
I
would prefer to generate a pipeline that handles all of this within it,
as
I’ve spent the past ~10 weeks familiarizing myself with how pipelines
are
handled. Much of this has been dealing with FM transmission rather than
using certain digital modulation schemes, so some parts are still
foreign,
but it is less of a jump for me.

So… this brings me to an alternative, for which I have a concept but
am
still missing a few pieces before implementation is possible.

On the “smart” transmitting end, I would have a file source containing
the
output of a signal generator (i.e. usrp_siggen.py), followed by passing
it
through benchmark_tx to the receiving computer. The receiving computer
would
have a simpler pipeline connecting the output of benchmark_rx to
benchmark_tx, passing it back. The original transmitting computer would
have
benchmark_rx running as well, and be storing any output in another file.

Basically, I want to have it go as follows:

file source → benchmark_tx <=====> benchmark_rx -->benchmark_tx

||

||

\ /
file sink

benchmark_rx

But… I’ve yet to see benchmark_tx and benchmark_rx used as elements of
a
pipeline rather than executables unto themselves, and have also yet to
see
benchmark_tx accept a specific file source, or benchmark_rx deliver
received
packets to a file sink. The code for benchmark_tx only appears to
generate
packets from an unspecified source and transmit them, and benchmark_rx
doesn’t specify a destination for what it is recieving. How does one
specify
this? Clearly, there is something I am not grasping in the transition
from
FM to DBPSK.


View this message in context:
http://www.nabble.com/Transmitting-data-from-file-using-benchmark_tx.py%2C-recieving-to-file-with-benchmark_rx--tp20590899p20590899.html
Sent from the GnuRadio mailing list archive at Nabble.com.

Perhaps explaining progress thus far would be in order. Currently I’m
using
tunnel.py to establish an IP connection between two computers (as it was
intended for), and manipulating said connection by using a unix pipeline
and
the scp command in two locations. This works, but doesn’t seem the most
efficient method, and also isn’t manipulating things on the level of
gnuradio. What I need is a way to establish a gnuradio pipeline that
does
that one specific task, rather than manipulating TCP/IP only. I know I
can
start with a file source, and then use dbpsk_mod() to modulate the
contents
of that file source. And I think sending across the USRP involves
importing
benchmark_tx and using the function send_pkt(), specifying the location
of
the desired file to transmit as “payload”. Connecting benchmark_rx to a
file
sink is a much more confusing matter for me, however, since there is no
intuitive “receive_pkt()” function, or place to specify what
directory/file
to write all received packets to.

Are there any modules I should be looking into on a lower level than
benchmark_*? Or am I missing something here?

~ Francesco

Francesco B. wrote:

the other. However, in order to implement it this way I would need to
On the “smart” transmitting end, I would have a file source containing the

benchmark_tx accept a specific file source, or benchmark_rx deliver
received packets to a file sink. The code for benchmark_tx only appears to
generate packets from an unspecified source and transmit them, and
benchmark_rx doesn’t specify a destination for what it is recieving. How
does one specify this? Clearly, there is something I am not grasping in
the transition from FM to DBPSK.


View this message in context:
http://www.nabble.com/Transmitting-data-from-file-using-benchmark_tx.py%2C-recieving-to-file-with-benchmark_rx--tp20590899p20759976.html
Sent from the GnuRadio mailing list archive at Nabble.com.