#!/usr/bin/env python ################################################## # Gnuradio Python Flow Graph # Title: FcdTest # Generated: Sat Apr 7 16:09:26 2012 ################################################## from gnuradio import audio from gnuradio import blks2 from gnuradio import eng_notation from gnuradio import fcd from gnuradio import gr from gnuradio.eng_option import eng_option from gnuradio.gr import firdes from gnuradio.wxgui import forms from grc_gnuradio import wxgui as grc_wxgui from optparse import OptionParser import wx class gr_fcdtest(grc_wxgui.top_block_gui): def __init__(self): grc_wxgui.top_block_gui.__init__(self, title="FcdTest") ################################################## # Variables ################################################## self.samp_rate = samp_rate = 96000 self.xlate_filter_taps = xlate_filter_taps = firdes.low_pass(1, samp_rate, 30000, 5000, firdes.WIN_HAMMING, 6.76) self.Freq = Freq = 100 ################################################## # Blocks ################################################## _Freq_sizer = wx.BoxSizer(wx.VERTICAL) self._Freq_text_box = forms.text_box( parent=self.GetWin(), sizer=_Freq_sizer, value=self.Freq, callback=self.set_Freq, label='Freq', converter=forms.float_converter(), proportion=0, ) self._Freq_slider = forms.slider( parent=self.GetWin(), sizer=_Freq_sizer, value=self.Freq, callback=self.set_Freq, minimum=60, maximum=150, num_steps=1, style=wx.SL_HORIZONTAL, cast=float, proportion=1, ) self.Add(_Freq_sizer) self.xlating_fir_filter = gr.freq_xlating_fir_filter_ccf(1, (xlate_filter_taps), 0, samp_rate) self.fcd_source_c_0 = fcd.source_c("FCD") self.fcd_source_c_0.set_freq_corr(-120) self.fcd_source_c_0.set_freq(Freq*10000000) self.blks2_wfm_rcv_0 = blks2.wfm_rcv( quad_rate=samp_rate, audio_decimation=2, ) self.audio_sink_0 = audio.sink(samp_rate/2, "LinPSK_Play", True) ################################################## # Connections ################################################## self.connect((self.xlating_fir_filter, 0), (self.blks2_wfm_rcv_0, 0)) self.connect((self.blks2_wfm_rcv_0, 0), (self.audio_sink_0, 0)) self.connect((self.blks2_wfm_rcv_0, 0), (self.audio_sink_0, 1)) self.connect((self.fcd_source_c_0, 0), (self.xlating_fir_filter, 0)) def get_samp_rate(self): return self.samp_rate def set_samp_rate(self, samp_rate): self.samp_rate = samp_rate self.set_xlate_filter_taps(firdes.low_pass(1, self.samp_rate, 30000, 5000, firdes.WIN_HAMMING, 6.76)) def get_xlate_filter_taps(self): return self.xlate_filter_taps def set_xlate_filter_taps(self, xlate_filter_taps): self.xlate_filter_taps = xlate_filter_taps self.xlating_fir_filter.set_taps((self.xlate_filter_taps)) def get_Freq(self): return self.Freq def set_Freq(self, Freq): self.Freq = Freq self._Freq_slider.set_value(self.Freq) self._Freq_text_box.set_value(self.Freq) self.fcd_source_c_0.set_freq(self.Freq*10000000) if __name__ == '__main__': parser = OptionParser(option_class=eng_option, usage="%prog: [options]") (options, args) = parser.parse_args() tb = gr_fcdtest() tb.Run(True)