# -*- coding: utf-8 -*- import os import signal import sys from gnuradio import gr import numpy class my_null_source(gr.sync_block): def __init__(self, item=numpy.uint32, vlen=1): gr.sync_block.__init__( self, name="my_null_source", in_sig=None, out_sig=[(item, vlen)]) def work(self, input_items, output_items): out = output_items[0] for i in range(len(out)): out[i] = 0 return len(out) class my_null_sink(gr.sync_block): def __init__(self, item=numpy.uint32, vlen=1): gr.sync_block.__init__( self, name="my_null_sink", in_sig=[(item, vlen)], out_sig=None) def work(self, input_items, output_items): return len(input_items[0]) class python_sink(gr.top_block): def __init__(self): gr.top_block.__init__(self, "Testing Python Sinks") # source1 = blocks.null_source(gr.sizeof_gr_complex) # source2 = blocks.null_source(gr.sizeof_gr_complex) source1 = my_null_source(item=numpy.complex64) source2 = my_null_source(item=numpy.complex64) # null_sink1 = blocks.null_sink(gr.sizeof_gr_complex) my_null_sink1 = my_null_sink(item=numpy.complex64) my_null_sink2 = my_null_sink(item=numpy.complex64) # self.connect(source1, null_sink1) self.connect(source1, my_null_sink1) self.connect(source2, my_null_sink2) print('GR Version: {}'.format(gr.version())) # print('Blocked waiting for GDB attach (pid = {})'.format(os.getpid())) # raw_input('Press Enter to continue: ') def main(top_block_cls=python_sink, options=None): tb = top_block_cls() def sig_handler(sig=None, frame=None): tb.stop() tb.wait() sys.exit(0) signal.signal(signal.SIGINT, sig_handler) signal.signal(signal.SIGTERM, sig_handler) tb.start() tb.wait() if __name__ == '__main__': main()