How to stop the top_block and restart signal transmission

Dear all,

I’m trying to stop top_block implementing the signal transmission for 5
milliseconds and then restart the signal transmission at the transmitter
side, by using the tb.stop() then time.sleep(0.005) to suspend the
system for 5 milliseconds then tb.start() to start the signal
transmission again. This approach gives an
RuntimeError: top_block::start: top block already running or wait() not
called after previous stop().

Could you please help me to find what the problem is? I also tried
lock() and unlock() which cannot stop the signal transmission
implemented in top_block.

the code that I use for data transmission is:

payload_13bit = ‘\x01\x01\x01\x01\x01\x0’
while(start_flag == 1)
msg_13bit = gr.message_from_string(payload_13bit)
top_block._ls_msgq.insert_tail(msg_13bit)
top_block.stop()
time.sleep(0.005)
top_block.start()
top_block.wait()

I will really appreciate any of suggestion on this problem.

Thanks,
Yan

On Mon, Feb 21, 2011 at 9:50 PM, Yan N. [email protected] wrote:

top_block
Yan,
You want to use the lock() and unlock(). They should pause and unpause
the graph, so please elaborate when you say that they don’t stop the
signal transmission. The start and stop methods will definitely not
work here.

Tom