How to finish the rx_callback? in benchmark_ofdm_rx.py

Hello all

At first, I appreciate you read my text.

My problem is that

how to finish the rx_callback in benchmark_ofdm_rx.py

I think that the structure of benchmark_ofdm_rx.py is like this.

make rx_callback and return this to my_top_block

and return my_top_block to tb

and tb.start()

I want to receive the data in 2.5e9 Hz one time.

and second time receive the data in 2.6e9 Hz.

So I would like to make this scenario.

Receiving the data in specific frequency

and receiving the data in another frequency.

I tried these method, but failed.

failed method 1:
tb = my_top_block(rx_callback, options)
tb.start()
tb.wait() #------> process goes into here and cannot escape
tb.stop()

failed method 2:
tb = my_top_block(rx_callback, options)
tb.start()
tb.stop() # -----> process broken here
tb.wait()

method 3:
def rx_callback(ok, payload):
n=0
while n<1000:
n += 1
(pktno,) = struct.unpack(’!H’, payload[0:2])

------> after n goes over 1000, process broken

So, is there good method to this problem?

In combining sensing & transmit, I succeed like this

if name == ‘main’:
tb_wsensing = my_top_block()

while 1:
tb_wsensing.start() # start executing flow graph in
another
thread…
main_loop(tb_wsensing)
tb_wsensing.stop()
tb_wsensing.wait()
whichfreq=open(“minfreq.dat”)
a=whichfreq.readline()
freq_offset=float(a)
print a
transmit()

Thank you very very very much for your reading.