Hi Tom,

Sorry about the question. I tried the method lock() and unlock() to pause the 
flow graph that I built, but still shows the continuous signal wave on the 
oscilloscope. I cannot see the pause between the signal waves. The code related 
to the top_block scheduling is as followed. Could you help me see what would be 
the problem which lock/unlock cannot pause the flow graph for 5 milliseconds? 
I'm trying to transmit 13-bit through the USRP board, after this transmission 
pause the system for 5 milliseconds then repeat this process again. If 
continuously transmitting the Barker code, this system works fine. I'm 
wondering why lock/unlock method cannot work in this case? What's the problem 
here? I really appreciate your help!


    try:
        top_block.start()
        statr_flag
        payload_13barker ='\x01\x01\x01\x01\x01\x00\x00\x01\x01\x00\x01\00\x01'

        while(start_flag == 1):
              msg_13bit =gr.message_from_string(payload_13barker)
              top_block._ls.msgq.insert_tail(msg_13bit)
              eof_msg = gr.message(1)
              top_block._ls.msgq.insert_tail(eof_msg)
              top_block.lock()
              time.sleep(0.005)
              top_block.unlock()
              top_block.wait()

The top_block that I built:

class tx_bpsk_block(gr.top_block):
    def __init__(self, subdev_spec, freq, verbose, chip_rate,amplitude):    
        gr.top_block.__init__(self, "tx_mpsk")
        self._freq = freq
        self._verbose = verbose 
        self._amplitude = amplitude
        self._u = usrp_sink_s(0,subdev_spec, chip_rate, self._freq, 
self._verbose)
        self.in_data = gr.message_source(gr.sizeof_char, 3329)
        self.msgq = self.in_data.msgq()
        self._constellation = [-1, 1]
        self._mapper = gr.chunks_to_symbols_bf(self._constellation)
        self._gain = gr.multiply_const_ff(self._amplitude)
        self.f2s = gr.float_to_short()
        self.connect(self.in_data,self._mapper self._gain, self.f2s,self._u)

Thank you so much for your help! I really appreciate!

Thanks,
Yan



On 02/21/11, Tom Rondeau  <trondeau1...@gmail.com> wrote:
> 
> On Mon, Feb 21, 2011 at 9:50 PM, Yan Nie <yn...@uwo.ca> wrote:
> > 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
> 
> 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
>

<<attachment: ynie3.vcf>>

_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to