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