X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=gnuradio-examples%2Fpython%2Fusrp%2Fusrp_wfm_rcv2_nogui.py;h=0103982b8d06f4d170bed64efef9cb7f1a21d968;hb=ea29b08aeb54227e6628f655ccfdb96fe4d8c378;hp=40e7dd754cd36afc1cc1f3168a8976d93b36a620;hpb=18a684bf3dc144c48fc4cc6cc72f5070febd8074;p=debian%2Fgnuradio diff --git a/gnuradio-examples/python/usrp/usrp_wfm_rcv2_nogui.py b/gnuradio-examples/python/usrp/usrp_wfm_rcv2_nogui.py index 40e7dd75..0103982b 100755 --- a/gnuradio-examples/python/usrp/usrp_wfm_rcv2_nogui.py +++ b/gnuradio-examples/python/usrp/usrp_wfm_rcv2_nogui.py @@ -1,15 +1,47 @@ #!/usr/bin/env python +# +# Copyright 2005,2006,2007 Free Software Foundation, Inc. +# +# This file is part of GNU Radio +# +# GNU Radio is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# GNU Radio is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Radio; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 51 Franklin Street, +# Boston, MA 02110-1301, USA. +# from gnuradio import gr, gru, eng_notation, optfir from gnuradio import audio from gnuradio import usrp -from gnuradio import blks +from gnuradio import blks2 from gnuradio.eng_option import eng_option from optparse import OptionParser -import usrp_dbid +from usrpm import usrp_dbid import sys import math +def calc_dxc_freq(target_freq, baseband_freq, fs): + dxc_temp = (target_freq - baseband_freq) % fs + + if dxc_temp < fs/2.0: + dxc_freq = - dxc_temp + inverted = False + else: + dxc_freq = fs - dxc_temp + inverted = True + + return (dxc_freq, inverted) + def pick_subdevice(u): """ The user didn't specify a subdevice on the command line. @@ -22,10 +54,10 @@ def pick_subdevice(u): usrp_dbid.BASIC_RX)) -class wfm_rx_graph (gr.flow_graph): +class wfm_rx_block (gr.top_block): def __init__(self): - gr.flow_graph.__init__(self) + gr.top_block.__init__(self) parser=OptionParser(option_class=eng_option) parser.add_option("-R", "--rx-subdev-spec", type="subdev", default=None, @@ -103,17 +135,17 @@ class wfm_rx_graph (gr.flow_graph): mid_freq = (f[0] + f[1]) / 2 # set front end PLL to middle frequency - ok, baseband_freq = self.subdev.set_freq(mid_freq) + tune_result = self.subdev.set_freq(mid_freq) for n in range(2): chan_filt = gr.fir_filter_ccf (chanfilt_decim, chan_filt_coeffs) - guts = blks.wfm_rcv (self, demod_rate, audio_decimation) + guts = blks2.wfm_rcv (demod_rate, audio_decimation) volume_control = gr.multiply_const_ff(self.vol) self.connect((di, n), chan_filt) self.connect(chan_filt, guts, volume_control) self.connect(volume_control, (audio_sink, n)) - dxc_freq, inverted = usrp.calc_dxc_freq(f[n], baseband_freq, - self.u.converter_rate()) + dxc_freq, inverted = calc_dxc_freq(f[n], tune_result.baseband_freq, + self.u.converter_rate()) self.u.set_rx_freq(n, dxc_freq) @@ -135,10 +167,13 @@ class wfm_rx_graph (gr.flow_graph): def set_gain(self, gain): self.subdev.set_gain(gain) + def __del__(self): + # Avoid weak-reference error + del self.subdev if __name__ == '__main__': - fg = wfm_rx_graph() + tb = wfm_rx_block() try: - fg.run() + tb.run() except KeyboardInterrupt: pass