Beispiel #1
0
    def __init__(self):
        grc_wxgui.top_block_gui.__init__(self, title="Top Block")

        ##################################################
        # Variables
        ##################################################
        self.sps = sps = 8
        self.samp_rate = samp_rate = 10000
        self.freq_error = freq_error = 0
        self.freq = freq = 500
        self.fm_sensitivity = fm_sensitivity = 1.0

        ##################################################
        # Blocks
        ##################################################
        self.wxgui_scopesink2_0_0 = scopesink2.scope_sink_f(
            self.GetWin(),
            title="GFSK Demod Spectrum",
            sample_rate=samp_rate,
            v_scale=0,
            v_offset=0,
            t_scale=1. / freq,
            ac_couple=False,
            xy_mode=False,
            num_inputs=1,
            trig_mode=gr.gr_TRIG_MODE_AUTO,
            y_axis_label="Counts",
        )
        self.Add(self.wxgui_scopesink2_0_0.win)
        self.quadrature_demod_0 = quadrature_demod()
        self.ieee_802_15_4_gfsk_mod_0 = ieee_802_15_1_gfsk_mod.gfsk_mod(
            samples_per_symbol=8,
            sensitivity=1.0,
            bt=0.35,
            verbose=False,
            log=False,
        )

        self.gr_vector_source_x_0 = gr.vector_source_f((0, 0, 0, 0, 1, 1, 1),
                                                       True, 1)
        self.gr_throttle_0_0 = gr.throttle(gr.sizeof_float * 1, samp_rate)
        self.digital_clock_recovery_mm_xx_0 = digital.clock_recovery_mm_ff(
            sps * (1 + freq_error), 0.25 * 0.175, 0.5, 0.175, 0.005)
        self.digital_binary_slicer_fb_0 = digital.binary_slicer_fb()
        self.blks2_packet_encoder_0 = grc_blks2.packet_mod_f(
            grc_blks2.packet_encoder(
                samples_per_symbol=2,
                bits_per_symbol=1,
                access_code="",
                pad_for_usrp=True,
            ),
            payload_length=0,
        )
        self.blks2_packet_decoder_0_0 = grc_blks2.packet_demod_f(
            grc_blks2.packet_decoder(
                access_code="",
                threshold=-1,
                callback=lambda ok, payload: self.blks2_packet_decoder_0_0.
                recv_pkt(ok, payload),
            ), )

        ##################################################
        # Connections
        ##################################################
        self.connect((self.gr_throttle_0_0, 0),
                     (self.blks2_packet_encoder_0, 0))
        self.connect((self.blks2_packet_encoder_0, 0),
                     (self.ieee_802_15_4_gfsk_mod_0, 0))
        self.connect((self.ieee_802_15_4_gfsk_mod_0, 0),
                     (self.quadrature_demod_0, 0))
        self.connect((self.quadrature_demod_0, 0),
                     (self.digital_clock_recovery_mm_xx_0, 0))
        self.connect((self.digital_clock_recovery_mm_xx_0, 0),
                     (self.digital_binary_slicer_fb_0, 0))
        self.connect((self.digital_binary_slicer_fb_0, 0),
                     (self.blks2_packet_decoder_0_0, 0))
        self.connect((self.blks2_packet_decoder_0_0, 0),
                     (self.wxgui_scopesink2_0_0, 0))
        self.connect((self.gr_vector_source_x_0, 0), (self.gr_throttle_0_0, 0))
Beispiel #2
0
    def __init__(self):
        grc_wxgui.top_block_gui.__init__(self, title="Loopback 802.15.1")

        ##################################################
        # Variables
        ##################################################
        self.usrp_samp_rate = usrp_samp_rate = 1e6
        self.samp_rate = samp_rate = 10000
        self.rf_freq = rf_freq = 2441e6
        self.payload = payload = 0, 0, 0, 1, 1, 1
        self.gain = gain = 30
        self.freq_error = freq_error = 0
        self.freq = freq = 500
        self.fm_sensitivity = fm_sensitivity = 1.0
        self.baud = baud = 8

        ##################################################
        # Blocks
        ##################################################
        self.xmlrpc_server_0 = SimpleXMLRPCServer.SimpleXMLRPCServer(
            ("localhost", 8080), allow_none=True)
        self.xmlrpc_server_0.register_instance(self)
        threading.Thread(target=self.xmlrpc_server_0.serve_forever).start()
        self.wxgui_scopesink2_0 = scopesink2.scope_sink_f(
            self.GetWin(),
            title="Scope Plot",
            sample_rate=samp_rate,
            v_scale=0,
            v_offset=0,
            t_scale=0,
            ac_couple=False,
            xy_mode=False,
            num_inputs=1,
            trig_mode=gr.gr_TRIG_MODE_AUTO,
            y_axis_label="Counts",
        )
        self.Add(self.wxgui_scopesink2_0.win)
        self.wxgui_fftsink2_0 = fftsink2.fft_sink_c(
            self.GetWin(),
            baseband_freq=0,
            y_per_div=10,
            y_divs=10,
            ref_level=0,
            ref_scale=2.0,
            sample_rate=samp_rate,
            fft_size=1024,
            fft_rate=15,
            average=False,
            avg_alpha=None,
            title="FFT Plot",
            peak_hold=False,
        )
        self.Add(self.wxgui_fftsink2_0.win)
        self.quadrature_demod_0 = quadrature_demod()
        self.ieee_802_15_4_gfsk_mod_0 = ieee_802_15_1_gfsk_mod.gfsk_mod(
            samples_per_symbol=baud,
            sensitivity=1.0,
            bt=0.35,
            verbose=False,
            log=False,
        )

        self.gr_vector_source_x_0 = gr.vector_source_f((payload), True, 1)
        self.gr_throttle_0_0 = gr.throttle(gr.sizeof_float * 1, 10000)
        self.gr_multiply_xx_0 = gr.multiply_vff(1)
        self.digital_clock_recovery_mm_xx_0 = digital.clock_recovery_mm_ff(
            baud * (1 + freq_error), 0.25 * 0.175, 0.5, 0.175, 0.005)
        self.digital_binary_slicer_fb_0 = digital.binary_slicer_fb()
        self.const_source_x_0 = gr.sig_source_f(0, gr.GR_CONST_WAVE, 0, 0,
                                                fm_sensitivity)
        self.blks2_packet_encoder_0 = grc_blks2.packet_mod_f(
            grc_blks2.packet_encoder(
                samples_per_symbol=2,
                bits_per_symbol=1,
                access_code="",
                pad_for_usrp=True,
            ),
            payload_length=0,
        )
        self.blks2_packet_decoder_0_0 = grc_blks2.packet_demod_f(
            grc_blks2.packet_decoder(
                access_code="",
                threshold=-1,
                callback=lambda ok, payload: self.blks2_packet_decoder_0_0.
                recv_pkt(ok, payload),
            ), )

        ##################################################
        # Connections
        ##################################################
        self.connect((self.gr_throttle_0_0, 0),
                     (self.blks2_packet_encoder_0, 0))
        self.connect((self.blks2_packet_encoder_0, 0),
                     (self.ieee_802_15_4_gfsk_mod_0, 0))
        self.connect((self.ieee_802_15_4_gfsk_mod_0, 0),
                     (self.quadrature_demod_0, 0))
        self.connect((self.digital_clock_recovery_mm_xx_0, 0),
                     (self.digital_binary_slicer_fb_0, 0))
        self.connect((self.digital_binary_slicer_fb_0, 0),
                     (self.blks2_packet_decoder_0_0, 0))
        self.connect((self.blks2_packet_decoder_0_0, 0),
                     (self.wxgui_scopesink2_0, 0))
        self.connect((self.gr_vector_source_x_0, 0), (self.gr_throttle_0_0, 0))
        self.connect((self.quadrature_demod_0, 0), (self.gr_multiply_xx_0, 0))
        self.connect((self.const_source_x_0, 0), (self.gr_multiply_xx_0, 1))
        self.connect((self.gr_multiply_xx_0, 0),
                     (self.digital_clock_recovery_mm_xx_0, 0))
        self.connect((self.ieee_802_15_4_gfsk_mod_0, 0),
                     (self.wxgui_fftsink2_0, 0))
Beispiel #3
0
	def __init__(self):
		grc_wxgui.top_block_gui.__init__(self, title="Top Block")

		##################################################
		# Variables
		##################################################
		self.sps = sps = 8
		self.samp_rate = samp_rate = 10000
		self.freq_error = freq_error = 0
		self.freq = freq = 500
		self.fm_sensitivity = fm_sensitivity = 1.0

		##################################################
		# Blocks
		##################################################
		self.wxgui_scopesink2_0_0 = scopesink2.scope_sink_f(
			self.GetWin(),
			title="GFSK Demod Spectrum",
			sample_rate=samp_rate,
			v_scale=0,
			v_offset=0,
			t_scale=1./freq,
			ac_couple=False,
			xy_mode=False,
			num_inputs=1,
			trig_mode=gr.gr_TRIG_MODE_AUTO,
			y_axis_label="Counts",
		)
		self.Add(self.wxgui_scopesink2_0_0.win)
		self.quadrature_demod_0 = quadrature_demod()
		self.ieee_802_15_4_gfsk_mod_0 = ieee_802_15_1_gfsk_mod.gfsk_mod(
				samples_per_symbol=8,
				sensitivity=1.0,
				bt=0.35,
				verbose=False,
				log=False,
				)
			
		self.gr_vector_source_x_0 = gr.vector_source_f((0, 0, 0, 0, 1, 1, 1), True, 1)
		self.gr_throttle_0_0 = gr.throttle(gr.sizeof_float*1, samp_rate)
		self.digital_clock_recovery_mm_xx_0 = digital.clock_recovery_mm_ff(sps*(1+freq_error), 0.25*0.175, 0.5, 0.175, 0.005)
		self.digital_binary_slicer_fb_0 = digital.binary_slicer_fb()
		self.blks2_packet_encoder_0 = grc_blks2.packet_mod_f(grc_blks2.packet_encoder(
				samples_per_symbol=2,
				bits_per_symbol=1,
				access_code="",
				pad_for_usrp=True,
			),
			payload_length=0,
		)
		self.blks2_packet_decoder_0_0 = grc_blks2.packet_demod_f(grc_blks2.packet_decoder(
				access_code="",
				threshold=-1,
				callback=lambda ok, payload: self.blks2_packet_decoder_0_0.recv_pkt(ok, payload),
			),
		)

		##################################################
		# Connections
		##################################################
		self.connect((self.gr_throttle_0_0, 0), (self.blks2_packet_encoder_0, 0))
		self.connect((self.blks2_packet_encoder_0, 0), (self.ieee_802_15_4_gfsk_mod_0, 0))
		self.connect((self.ieee_802_15_4_gfsk_mod_0, 0), (self.quadrature_demod_0, 0))
		self.connect((self.quadrature_demod_0, 0), (self.digital_clock_recovery_mm_xx_0, 0))
		self.connect((self.digital_clock_recovery_mm_xx_0, 0), (self.digital_binary_slicer_fb_0, 0))
		self.connect((self.digital_binary_slicer_fb_0, 0), (self.blks2_packet_decoder_0_0, 0))
		self.connect((self.blks2_packet_decoder_0_0, 0), (self.wxgui_scopesink2_0_0, 0))
		self.connect((self.gr_vector_source_x_0, 0), (self.gr_throttle_0_0, 0))
Beispiel #4
0
	def __init__(self):
		grc_wxgui.top_block_gui.__init__(self, title="Loopback 802.15.1")

		##################################################
		# Variables
		##################################################
		self.usrp_samp_rate = usrp_samp_rate = 1e6
		self.samp_rate = samp_rate = 10000
		self.rf_freq = rf_freq = 2441e6
		self.payload = payload = 0, 0, 0, 1, 1, 1
		self.gain = gain = 30
		self.freq_error = freq_error = 0
		self.freq = freq = 500
		self.fm_sensitivity = fm_sensitivity = 1.0
		self.baud = baud = 8

		##################################################
		# Blocks
		##################################################
		self.xmlrpc_server_0 = SimpleXMLRPCServer.SimpleXMLRPCServer(("localhost", 8080), allow_none=True)
		self.xmlrpc_server_0.register_instance(self)
		threading.Thread(target=self.xmlrpc_server_0.serve_forever).start()
		self.wxgui_scopesink2_0 = scopesink2.scope_sink_f(
			self.GetWin(),
			title="Scope Plot",
			sample_rate=samp_rate,
			v_scale=0,
			v_offset=0,
			t_scale=0,
			ac_couple=False,
			xy_mode=False,
			num_inputs=1,
			trig_mode=gr.gr_TRIG_MODE_AUTO,
			y_axis_label="Counts",
		)
		self.Add(self.wxgui_scopesink2_0.win)
		self.wxgui_fftsink2_0 = fftsink2.fft_sink_c(
			self.GetWin(),
			baseband_freq=0,
			y_per_div=10,
			y_divs=10,
			ref_level=0,
			ref_scale=2.0,
			sample_rate=samp_rate,
			fft_size=1024,
			fft_rate=15,
			average=False,
			avg_alpha=None,
			title="FFT Plot",
			peak_hold=False,
		)
		self.Add(self.wxgui_fftsink2_0.win)
		self.quadrature_demod_0 = quadrature_demod()
		self.ieee_802_15_4_gfsk_mod_0 = ieee_802_15_1_gfsk_mod.gfsk_mod(
				samples_per_symbol=baud,
				sensitivity=1.0,
				bt=0.35,
				verbose=False,
				log=False,
				)
			
		self.gr_vector_source_x_0 = gr.vector_source_f((payload), True, 1)
		self.gr_throttle_0_0 = gr.throttle(gr.sizeof_float*1, 10000)
		self.gr_multiply_xx_0 = gr.multiply_vff(1)
		self.digital_clock_recovery_mm_xx_0 = digital.clock_recovery_mm_ff(baud*(1+freq_error), 0.25*0.175, 0.5, 0.175, 0.005)
		self.digital_binary_slicer_fb_0 = digital.binary_slicer_fb()
		self.const_source_x_0 = gr.sig_source_f(0, gr.GR_CONST_WAVE, 0, 0, fm_sensitivity)
		self.blks2_packet_encoder_0 = grc_blks2.packet_mod_f(grc_blks2.packet_encoder(
				samples_per_symbol=2,
				bits_per_symbol=1,
				access_code="",
				pad_for_usrp=True,
			),
			payload_length=0,
		)
		self.blks2_packet_decoder_0_0 = grc_blks2.packet_demod_f(grc_blks2.packet_decoder(
				access_code="",
				threshold=-1,
				callback=lambda ok, payload: self.blks2_packet_decoder_0_0.recv_pkt(ok, payload),
			),
		)

		##################################################
		# Connections
		##################################################
		self.connect((self.gr_throttle_0_0, 0), (self.blks2_packet_encoder_0, 0))
		self.connect((self.blks2_packet_encoder_0, 0), (self.ieee_802_15_4_gfsk_mod_0, 0))
		self.connect((self.ieee_802_15_4_gfsk_mod_0, 0), (self.quadrature_demod_0, 0))
		self.connect((self.digital_clock_recovery_mm_xx_0, 0), (self.digital_binary_slicer_fb_0, 0))
		self.connect((self.digital_binary_slicer_fb_0, 0), (self.blks2_packet_decoder_0_0, 0))
		self.connect((self.blks2_packet_decoder_0_0, 0), (self.wxgui_scopesink2_0, 0))
		self.connect((self.gr_vector_source_x_0, 0), (self.gr_throttle_0_0, 0))
		self.connect((self.quadrature_demod_0, 0), (self.gr_multiply_xx_0, 0))
		self.connect((self.const_source_x_0, 0), (self.gr_multiply_xx_0, 1))
		self.connect((self.gr_multiply_xx_0, 0), (self.digital_clock_recovery_mm_xx_0, 0))
		self.connect((self.ieee_802_15_4_gfsk_mod_0, 0), (self.wxgui_fftsink2_0, 0))