Forum: GNU Radio Help on gr_top_block and gr_hier_block2 when trying to receive after transmitting

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
Zenny Z. (Guest)
on 2008-11-25 05:03
(Received via mailing list)
Dear All,

I was trying to make a channel estimation procedure to work, and I am
in desperate need for some help. I had a preliminary version that
works only part of the time, and I decided to start from scratch. I
followed Eric's advice and used as an example.

I have two USRPs, one called S and the other called R. The procedure is:
(1). S sends channel estimation sequence. R receives, and estimate the
(2). R sends the channel estimation report back to S.
(3). S sends data to R according to the channel estimation

Everything works perfectly until step (2), that is, S can get the
channel estimation report and can send data to R. The problem is that
R cannot receive. The signal received by R is almost always near 0. My
guess is that something is preventing R from receiving after it
started the transmit path.

Here is the skeleton of the code:


    print "--- started listening! ---"

    while not tb.rxpath.receiver.finished_phase_diff_est():
        time.sleep(0.001) #orig: 0.001

    # here I do carrier sense, until the sender finishes
    while tb.rxpath.receiver.est_snr() > 0.001:

    print "--- sender stopped, preparing to send report! ---"

    # here I call some functions to estimate the chanel


    # the transmting path was not connected originally, because my
laptops are slow. I am getting some new ones.

    # add then cannot receive begin
    print "--- sending rpt ---"

    time.sleep(0.01) #orig: 0.01
    time.sleep(0.1) #try to make sure that 0 is written into the data

    print "--- done sending! ---"
    # add then cannot receive end



    print "--- done receving ---"

I noticed that if I delete the code between

    # add then cannot receive begin
    # add then cannot receive end

, then the receiver can receive some signals. txpath and rxpath are
both gr.hier_block2, and tb is gr_top_block, same as in Can
someone give me some hint to this? Thanks so much!

Please let me know if more information is needed.

Best regards,
This topic is locked and can not be replied to.