def test_002(self): udp_rcv = gr.udp_source( gr.sizeof_float, '0.0.0.0', 0, eof=False ) rcv_port = udp_rcv.get_port() udp_snd = gr.udp_sink( gr.sizeof_float, '127.0.0.1', 65500 ) udp_snd.connect( 'localhost', rcv_port ) n_data = 16 src_data = [float(x) for x in range(n_data)] expected_result = tuple(src_data) src = gr.vector_source_f(src_data) dst = gr.vector_sink_f() self.tb_snd.connect( src, udp_snd ) self.tb_rcv.connect( udp_rcv, dst ) self.tb_rcv.start() self.tb_snd.run() udp_snd.disconnect() self.timeout = False q = Timer(3.0,self.stop_rcv) q.start() self.tb_rcv.wait() q.cancel() result_data = dst.data() self.assertEqual(expected_result, result_data) self.assert_(self.timeout) # source ignores EOF?
def __init__(self, serverip, serverport, clientname, packetsize, simulation, samp_rate, center_freq, net_id, device_addr, stream_args): gr.hier_block2.__init__(self, "sim_source_c", gr.io_signature(1, 1, gr.sizeof_gr_complex), gr.io_signature(0, 0, 0)) uhd_gate.__init__(self) self.simulation = simulation self.samp_rate = samp_rate self.typ = 'tx' if not self.simulation: self.usrp = uhd.usrp_sink(device_addr, stream_args) # TODO: Parameters self.connect(self, self.usrp) else: self.simsnk = sim_sink_cc(self, serverip, serverport, clientname, packetsize, samp_rate, center_freq, net_id) # self.tcp_sink = grc_blks2.tcp_sink(itemsize=gr.sizeof_gr_complex, # addr=serverip, # port=self.simsnk.get_dataport(), # server=False) self.tcp_sink = gr.udp_sink(itemsize=gr.sizeof_gr_complex, host=str(serverip), port=self.simsnk.get_dataport(), payload_size=1472, eof=False) self.gain_blk = gr.multiply_const_vcc((1, )) self.heartbeat = heart_beat(0.1, "", "") self.connect(self.heartbeat, (self.simsnk, 1)) #self.connect(self, (simsnk, 0), self.tcp_sink) self.connect(self, self.gain_blk, (self.simsnk, 0)) self.connect((self.simsnk, 0), self.tcp_sink)
def test_001(self): port = 65500 n_data = 16 src_data = [float(x) for x in range(n_data)] expected_result = tuple(src_data) src = gr.vector_source_f(src_data) udp_snd = gr.udp_sink( gr.sizeof_float, 'localhost', port ) self.tb_snd.connect( src, udp_snd ) udp_rcv = gr.udp_source( gr.sizeof_float, 'localhost', port ) dst = gr.vector_sink_f() self.tb_rcv.connect( udp_rcv, dst ) self.tb_rcv.start() self.tb_snd.run() udp_snd.disconnect() self.timeout = False q = Timer(3.0,self.stop_rcv) q.start() self.tb_rcv.wait() q.cancel() result_data = dst.data() self.assertEqual(expected_result, result_data) self.assert_(not self.timeout)
def __init__(self, buf=True, tuner=""): gr.top_block.__init__(self, "Borip Rtl2") ################################################## # Parameters ################################################## self.buf = buf self.tuner = tuner ################################################## # Variables ################################################## self.master_clock = master_clock = 3200000 ################################################## # Message Queues ################################################## source_msgq_out = sink_msgq_in = gr.msg_queue(2) ################################################## # Blocks ################################################## self.sink = gr.udp_sink(gr.sizeof_short*1, "127.0.0.1", 28888, 1472, False, True) self.sink.set_status_msgq(sink_msgq_in) self.source = baz.rtl_source_c(defer_creation=True, output_size=gr.sizeof_short) self.source.set_verbose(True) self.source.set_vid(0x0) self.source.set_pid(0x0) self.source.set_tuner_name(tuner) self.source.set_default_timeout(0) self.source.set_use_buffer(buf) self.source.set_fir_coefficients(([])) self.source.set_read_length(0) if self.source.create() == False: raise Exception("Failed to create RTL2832 Source: source") self.source.set_sample_rate(1000000) self.source.set_frequency(0) self.source.set_status_msgq(source_msgq_out) self.source.set_auto_gain_mode(False) self.source.set_relative_gain(False) self.source.set_gain(0) ################################################## # Connections ################################################## self.connect((self.source, 0), (self.sink, 0))
def __init__(self, buf=True, tuner=""): gr.top_block.__init__(self, "Borip Rtl2") ################################################## # Parameters ################################################## self.buf = buf self.tuner = tuner ################################################## # Variables ################################################## self.master_clock = master_clock = 3200000 ################################################## # Message Queues ################################################## source_msgq_out = sink_msgq_in = gr.msg_queue(2) ################################################## # Blocks ################################################## self.sink = gr.udp_sink(gr.sizeof_short * 1, "127.0.0.1", 28888, 1472, False, True) self.sink.set_status_msgq(sink_msgq_in) self.source = baz.rtl_source_c(defer_creation=True, output_size=gr.sizeof_short) self.source.set_verbose(True) self.source.set_vid(0x0) self.source.set_pid(0x0) self.source.set_tuner_name(tuner) self.source.set_default_timeout(0) self.source.set_use_buffer(buf) self.source.set_fir_coefficients(([])) self.source.set_read_length(0) if self.source.create() == False: raise Exception("Failed to create RTL2832 Source: source") self.source.set_sample_rate(1000000) self.source.set_frequency(0) self.source.set_status_msgq(source_msgq_out) self.source.set_auto_gain_mode(False) self.source.set_relative_gain(False) self.source.set_gain(0) ################################################## # Connections ################################################## self.connect((self.source, 0), (self.sink, 0))
def xSetEnable(self, sender, state): # ------------------------------------------------------------------------ if sender == "Audio Out": self.audiomute.set_mute(not state) if sender == "UDP Out": host = self.udpconfig["host"] port = self.udpconfig["port"] self.Stop() if state == False or not host or not port: self.udp = gr.null_sink(gr.sizeof_float) wx.GetApp().PostStatus( "SignalGenerator Info: Stopped UDP output to \"%s:%s\"" % ( host, port)) else: self.udp = gr.udp_sink(gr.sizeof_float, host, port, 1472, True) wx.GetApp().PostStatus( "SignalGenerator Info: Started UDP output to \"%s:%s\"" % ( host, port)) self.Start() if sender == "File Out": filename = self.fileconfig["filename"] self.Stop() if state == False or not filename: self.rawfile = gr.null_sink(gr.sizeof_float) wx.GetApp().PostStatus( "SignalGenerator Info: Stopped rawfile device \"%s\"" % ( filename,)) else: self.rawfile = gr.file_sink(gr.sizeof_float, filename) wx.GetApp().PostStatus( "SignalGenerator Info: Started rawfile device \"%s\"" % ( filename,)) self.Start() if sender == "Wave Out": filename = self.waveconfig["filename"] self.Stop() if state == False or not filename: self.wavefile = gr.null_sink(gr.sizeof_float) wx.GetApp().PostStatus( "SignalGenerator Info: Stopped wave device \"%s\"" % ( filename,)) else: self.wavefile = gr.wavfile_sink(filename, 1, self.samprate, 16) wx.GetApp().PostStatus( "SignalGenerator Info: Started wave device \"%s\"" % ( filename,)) self.Start()
def __init__(self, src, dst, port, pkt_size, sample_rate): gr.top_block.__init__(self, "dial_tone_source") amplitude = 0.3 src0 = gr.sig_source_f (sample_rate, gr.GR_SIN_WAVE, 350, amplitude) src1 = gr.sig_source_f (sample_rate, gr.GR_SIN_WAVE, 440, amplitude) add = gr.add_ff() # Throttle needed here to account for the other side's audio card sampling rate thr = gr.throttle(gr.sizeof_float, sample_rate) sink = gr.udp_sink(gr.sizeof_float, src, 0, dst, port, pkt_size) self.connect(src0, (add, 0)) self.connect(src1, (add, 1)) self.connect(add, thr, sink)
def __init__(self, host, port, pkt_size, sample_rate, eof): gr.top_block.__init__(self, "dial_tone_source") amplitude = 0.3 src0 = gr.sig_source_f (sample_rate, gr.GR_SIN_WAVE, 350, amplitude) src1 = gr.sig_source_f (sample_rate, gr.GR_SIN_WAVE, 440, amplitude) add = gr.add_ff() # Throttle needed here to account for the other side's audio card sampling rate thr = gr.throttle(gr.sizeof_float, sample_rate) sink = gr.udp_sink(gr.sizeof_float, host, port, pkt_size, eof=eof) self.connect(src0, (add, 0)) self.connect(src1, (add, 1)) self.connect(add, thr, sink)
def __init__(self, twisted_con, tcp_addr, tcp_port, app_center_freq, app_samp_rate, sim_bw, sim_center_freq): gr.hier_block2.__init__(self, "gr2tw_c", gr.io_signature(1, 1, gr.sizeof_gr_complex), gr.io_signature(0, 0, 0)) gr2tw = gr2tw_cc(twisted_con, tcp_port) # self.tcp_sink = tcp_sink(itemsize=gr.sizeof_gr_complex, # addr=tcp_addr, # port=tcp_port, # server=True) self.tcp_sink = gr.udp_sink(itemsize=gr.sizeof_gr_complex, host=tcp_addr, port=tcp_port, payload_size=1472, eof=False) self.connect(self, gr2tw, self.tcp_sink)
def __init__(self, host, port, pkt_size, sample_rate, eof): gr.top_block.__init__(self, "audio_source") self.audio = audio.source(sample_rate) self.sink = gr.udp_sink(gr.sizeof_float, host, port, pkt_size, eof=eof) self.connect(self.audio, self.sink)
key_handler_graph = es.es_handler_flowgraph(key_handler, 2) # set up some common es components arb = es.es_make_arbiter() queue = es.queue() # most packets will got out as scheduled # but if we are ever later just send it as soon as possible queue.set_early_behavior(1) #queue.set_early_behavior(0); # set up the main flow graph tb = gr.top_block() src = es.source(arb, queue, [gr.sizeof_gr_complex]) #sink = gr.file_sink(gr.sizeof_gr_complex , "outfile.dat" ); sink = gr.udp_sink(gr.sizeof_gr_complex, "localhost", 12345) summer = gr.add_cc() noise = gr.noise_source_c(gr.GR_GAUSSIAN, noise_amp) throttle = gr.throttle(gr.sizeof_gr_complex, fs) tb.connect(src, summer, sink) tb.connect(noise, throttle, (summer, 1)) # create initial event, set up event bindings, handlers e1 = es.event_create("burst_transmit", 10, 1000) e1 = es.event_args_add(e1, key_sym, pmt.intern("1")) queue.register_event_type(es.event_type(e1)) queue.bind_handler(es.event_type(e1), es.make_handler_pmt(key_handler_graph)) # start the main flowgraph tb.start()
def __init__(self, src, dst, port, pkt_size): gr.top_block.__init__(self, "vector_source") data = [i*0.01 for i in range(1000)] vec = gr.vector_source_f(data, True) udp = gr.udp_sink(gr.sizeof_float, src, 0, dst, port, pkt_size) self.connect(vec, udp)
key_handler_graph = es.es_handler_flowgraph( key_handler,2 ); # set up some common es components arb = es.es_make_arbiter(); queue = es.queue(); # most packets will got out as scheduled # but if we are ever later just send it as soon as possible queue.set_early_behavior(1); #queue.set_early_behavior(0); # set up the main flow graph tb = gr.top_block(); src = es.source( arb, queue, [gr.sizeof_gr_complex] ); #sink = gr.file_sink(gr.sizeof_gr_complex , "outfile.dat" ); sink = gr.udp_sink( gr.sizeof_gr_complex, "localhost", 12345 ); summer = gr.add_cc(); noise = gr.noise_source_c( gr.GR_GAUSSIAN, noise_amp); throttle = gr.throttle(gr.sizeof_gr_complex, fs); tb.connect(src, summer, sink); tb.connect(noise, throttle, (summer,1)); # create initial event, set up event bindings, handlers e1 = es.event_create("burst_transmit", 10, 1000 ); e1 = es.event_args_add( e1, key_sym, pmt.intern("1") ); queue.register_event_type( es.event_type( e1 ) ); queue.bind_handler( es.event_type( e1 ), es.make_handler_pmt(key_handler_graph) ); # start the main flowgraph tb.start();
def __init__(self, host, port, pkt_size, eof): gr.top_block.__init__(self, "vector_source") data = [i * 0.01 for i in range(1000)] vec = gr.vector_source_f(data, True) udp = gr.udp_sink(gr.sizeof_float, host, port, pkt_size, eof=eof) self.connect(vec, udp)
def __init__(self): grc_wxgui.top_block_gui.__init__(self, title="RTL-SDR to Pure Data") _icon_path = "/usr/share/icons/hicolor/32x32/apps/gnuradio-grc.png" self.SetIcon(wx.Icon(_icon_path, wx.BITMAP_TYPE_ANY)) ################################################## # Variables ################################################## self.samp_rate = samp_rate = 1920000 self.cur_freq_fine = cur_freq_fine = 0 self.cur_freq = cur_freq = 0 self.channels_coeffs_0 = channels_coeffs_0 = gr.firdes.low_pass(1.0,samp_rate,20000,25000,gr.firdes.WIN_HAMMING) self.channels_coeffs = channels_coeffs = gr.firdes.low_pass(1.0,samp_rate,20000,45000,gr.firdes.WIN_HAMMING) ################################################## # Blocks ################################################## self.signal_cur = gr.probe_signal_f() self.fine_cur = gr.probe_signal_f() self.rtlsdr_source_c_0 = osmosdr.source_c( args="nchan=" + str(1) + " " + "" ) self.rtlsdr_source_c_0.set_sample_rate(samp_rate) self.rtlsdr_source_c_0.set_center_freq(78000000, 0) self.rtlsdr_source_c_0.set_freq_corr(0, 0) self.rtlsdr_source_c_0.set_gain_mode(0, 0) self.rtlsdr_source_c_0.set_gain(10, 0) self.rtlsdr_source_c_0.set_if_gain(24, 0) self.gr_udp_source_0_0 = gr.udp_source(gr.sizeof_float*1, "127.0.0.1", 2001, 4, True, True) self.gr_udp_source_0 = gr.udp_source(gr.sizeof_float*1, "127.0.0.1", 2000, 4, True, True) self.gr_udp_sink_0_0 = gr.udp_sink(gr.sizeof_float*2048, "127.0.0.1", 2002, 11776, True) self.fft_vxx_0 = fft.fft_vcc(2048, True, (window.blackmanharris(1024)), True, 1) def _cur_freq_fine_probe(): while True: val = self.fine_cur.level() try: self.set_cur_freq_fine(val) except AttributeError, e: pass time.sleep(1.0/(10)) _cur_freq_fine_thread = threading.Thread(target=_cur_freq_fine_probe) _cur_freq_fine_thread.daemon = True _cur_freq_fine_thread.start() def _cur_freq_probe(): while True: val = self.signal_cur.level() try: self.set_cur_freq(val) except AttributeError, e: pass time.sleep(1.0/(10)) _cur_freq_thread = threading.Thread(target=_cur_freq_probe) _cur_freq_thread.daemon = True _cur_freq_thread.start() self.blocks_nlog10_ff_0 = blocks.nlog10_ff(1, 2048, 0) self.blocks_complex_to_mag_squared_0 = blocks.complex_to_mag_squared(2048) self.blks2_stream_to_vector_decimator_0 = blks2.stream_to_vector_decimator( item_size=gr.sizeof_gr_complex, sample_rate=samp_rate, vec_rate=25, vec_len=2048, ) ################################################## # Connections ################################################## self.connect((self.fft_vxx_0, 0), (self.blocks_complex_to_mag_squared_0, 0)) self.connect((self.blks2_stream_to_vector_decimator_0, 0), (self.fft_vxx_0, 0)) self.connect((self.blocks_complex_to_mag_squared_0, 0), (self.blocks_nlog10_ff_0, 0)) self.connect((self.rtlsdr_source_c_0, 0), (self.blks2_stream_to_vector_decimator_0, 0)) self.connect((self.gr_udp_source_0_0, 0), (self.fine_cur, 0)) self.connect((self.gr_udp_source_0, 0), (self.signal_cur, 0)) self.connect((self.blocks_nlog10_ff_0, 0), (self.gr_udp_sink_0_0, 0))