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