Dear all, I am trying to transmit a sequence at various frequencies on USRP N200 with LFTX.
When I use the uhd.single_usrp_source.set_center_freq() to change the frequency then insert the the sequence as a message in the msgq buffer in another thread other than top_block, underrun occurs. The amplitude of the transmitting signal on oscilloscope varies some, some of the signal have the full amplitude that I set, some of them only reach half amplitude. The following is the thread that I open for the sequence transmitting. The mgq are created by: data=gr.message_source(gr.sizeof_char, msg_limit) #where msg_limit is defined as 2; msgq = data.msgq() transmit_loop(tb) repeat = 40 payload_13barker = repeat * '\x01' payload_13barker += repeat * '\x01' payload_13barker += repeat * '\x01' payload_13barker += repeat * '\x00' payload_13barker += repeat * '\x00' stop_sign = 5*repeat*'\x02' i = 0 while(i<5): payload_13barker += stop_sign i += 1 msg_13bit = gr.message_from_string(payload_13barker) tb._ls.msgq.insert_tail(msg_13bit) time.sleep(1.0) print "info inserted" while 1: freq_cnt = 4 while (freq_cnt < 7): i += 1 if i==40: #this counter is used to slow down the rate the transmission frequency changes i = 0 tx_freq = freq_cnt * 10e6 tb.set_freq_tx(tx_freq,0.0) tb._ls.msgq.insert_tail(msg_13bit) time.sleep(1.0) # suspend to wait for the payload insert into buffer freq_cnt += 1 I am curious 1. what causes the underrun and how to avoid the underrun? 2. How to defined the msgq_limit? Is the underrun cause by the wrongly set of the msgq_limit, as I already set to let the program to wait for buffering? Really appreciate any of your suggestion! Thanks, Yan _______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio