Пример #1
0
    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?
Пример #2
0
    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)
Пример #3
0
    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)
Пример #4
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))
Пример #5
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))
Пример #6
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)
Пример #8
0
    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)
Пример #9
0
    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)
Пример #10
0
    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)
Пример #11
0
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)
Пример #13
0
 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)
Пример #14
0
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();
Пример #15
0
 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)
Пример #16
0
	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))