Sorry about the last uncompleted email. I tried the method lock() and unlock() 
to completely pause the flow graph without transmitting any signal, but the 
continuous carrier wave still showed on the oscilloscope. I'm trying to 
transmit 13-bit Barker code carried by a 4MHz sinusoid wave. After this 13-bit 
code transmission, the whole system need to be suspended for 5 milliseconds 
without transmitting any signal, even though the carrier wave. I'm wondering 
how to completely pause the whole flow graph, not transmitting any signal 
including the carrier wave? What's the problem of the scheduler that I wrote. I 
really appreciate any help on solution to this problem! really appreciate! 

The code related to the scheduling part is:

top_block = 
tx_bpsk_block(options.tx_subdev_spec,options.freq,options.verbose,options.chip_rate,options.amplitude)
try:
   top_block.start()
   start_flag = 1
   payload_13barker = '\x01\x01\x01\x01\x01\x00\x00\x01\x01\x00\x01\x00\x01'
   while(start_flag == 1)
         msg_13bit = gr.message_from_string(payload_13barker)
         top_block.msgq.insert_tail(msg_13bit)
         eof_msg = gr.message(1)
         top_block.msgq.insert_tail(eof_msg)
         top_block.lock()
         time.sleep(0.005)
         top_block.unlock()
         top_block.wait()
except KeyboardInterrupt:
       pass

if __name__ == "__main__":
     main()

The top_block is created as:

class tx_bpsk_block(gr.top_block):
      def __init__(slef, 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,14)
      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)

If continuously transmitting Barker code without any pause, this flow graph 
works fine. When using lock/unlock to pause this system, Barker code won't feed 
into the flow graph,which means the carrier signal won't be modulated, but the 
transmitter still send the carrier sinusoid wave which can be observed by 
oscilloscope. I'm wondering how to completely pause the whole flow graph, not 
transmitting any signal including the carrier wave? What's the problem of the 
scheduler that I wrote. I really appreciate any help on solution to this 
problem! really appreciate!

Thanks,
Yan

On 02/22/11, "Yan Nie"  <yn...@uwo.ca> wrote:
> 
> 
> 
> Hi Tom,
> 
> 
> Sorry about the question. I tried the method lock() and unlock() to pause the 
> flow graph that I built, but I still can see the continuous signal wave on 
> the oscilloscope.  Could you please help with
> 
> 
> 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