From 1b57a6db754487283026e3c2bab615a00ccfff84 Mon Sep 17 00:00:00 2001 From: jcorgan Date: Sun, 24 Dec 2006 19:13:47 +0000 Subject: [PATCH] Organized python example directory for new hierarchical blocks, cleaned up dial_tone2.py git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@4190 221aa14e-8319-0410-a670-987f0aec2ac5 --- config/grc_gnuradio_examples.m4 | 5 +- gnuradio-examples/python/Makefile.am | 2 +- gnuradio-examples/python/audio/Makefile.am | 1 - gnuradio-examples/python/audio/dial_tone2.py | 61 -------------- gnuradio-examples/python/hier/Makefile.am | 24 ++++++ .../python/hier/audio/Makefile.am | 23 +++++ .../python/hier/audio/dial_tone2.py | 84 +++++++++++++++++++ .../python/hier/ofdm/Makefile.am | 22 +++++ 8 files changed, 158 insertions(+), 64 deletions(-) delete mode 100755 gnuradio-examples/python/audio/dial_tone2.py create mode 100644 gnuradio-examples/python/hier/Makefile.am create mode 100644 gnuradio-examples/python/hier/audio/Makefile.am create mode 100755 gnuradio-examples/python/hier/audio/dial_tone2.py create mode 100644 gnuradio-examples/python/hier/ofdm/Makefile.am diff --git a/config/grc_gnuradio_examples.m4 b/config/grc_gnuradio_examples.m4 index 5b987d61..30124039 100644 --- a/config/grc_gnuradio_examples.m4 +++ b/config/grc_gnuradio_examples.m4 @@ -31,10 +31,13 @@ AC_DEFUN([GRC_GNURADIO_EXAMPLES],[ gnuradio-examples/python/channel-coding/fsm_files/Makefile \ gnuradio-examples/python/digital/Makefile \ gnuradio-examples/python/digital_voice/Makefile \ + gnuradio-examples/python/hier/Makefile \ + gnuradio-examples/python/hier/audio/Makefile \ + gnuradio-examples/python/hier/ofdm/Makefile \ gnuradio-examples/python/multi-antenna/Makefile \ gnuradio-examples/python/multi_usrp/Makefile \ gnuradio-examples/python/networking/Makefile \ - gnuradio-examples/python/usrp/Makefile + gnuradio-examples/python/usrp/Makefile \ ]) passed=yes diff --git a/gnuradio-examples/python/Makefile.am b/gnuradio-examples/python/Makefile.am index 62b79fcc..0ebffb64 100644 --- a/gnuradio-examples/python/Makefile.am +++ b/gnuradio-examples/python/Makefile.am @@ -20,4 +20,4 @@ # SUBDIRS = apps audio channel-coding digital_voice digital multi-antenna \ - multi_usrp networking usrp + multi_usrp networking usrp hier diff --git a/gnuradio-examples/python/audio/Makefile.am b/gnuradio-examples/python/audio/Makefile.am index 3f9b1626..0a1213c3 100644 --- a/gnuradio-examples/python/audio/Makefile.am +++ b/gnuradio-examples/python/audio/Makefile.am @@ -26,7 +26,6 @@ EXTRA_DIST = \ audio_to_file.py \ dial_squelch.py \ dial_tone.py \ - dial_tone2.py \ dialtone_v.py \ mono_tone.py \ multi_tone.py \ diff --git a/gnuradio-examples/python/audio/dial_tone2.py b/gnuradio-examples/python/audio/dial_tone2.py deleted file mode 100755 index 5881f06f..00000000 --- a/gnuradio-examples/python/audio/dial_tone2.py +++ /dev/null @@ -1,61 +0,0 @@ -#!/usr/bin/env python -# -# Copyright 2004,2005,2006 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 2, 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 -from gnuradio import audio -from gnuradio.eng_option import eng_option -from optparse import OptionParser - -class dial_tone(gr.hier_block2): - def __init__(self): - gr.hier_block2.__init__(self, - "dial_tone", - gr.io_signature(0,0,0), - gr.io_signature(0,0,0)) - - parser = OptionParser(option_class=eng_option) - parser.add_option("-O", "--audio-output", type="string", default="", - help="pcm output device name. E.g., hw:0,0 or /dev/dsp") - parser.add_option("-r", "--sample-rate", type="eng_float", default=48000, - help="set sample rate to RATE (48000)") - (options, args) = parser.parse_args () - if len(args) != 0: - parser.print_help() - raise SystemExit, 1 - - sample_rate = int(options.sample_rate) - ampl = 0.1 - - self.define_component("source0", gr.sig_source_f (sample_rate, gr.GR_SIN_WAVE, 350, ampl)) - self.define_component("source1", gr.sig_source_f (sample_rate, gr.GR_SIN_WAVE, 440, ampl)) - self.define_component("dest", audio.sink(sample_rate, options.audio_output)) - self.connect("source0", 0, "dest", 0) - self.connect("source1", 0, "dest", 1) - -if __name__ == '__main__': - top_block = dial_tone() - runtime = gr.runtime(top_block) - - try: - runtime.run() - except KeyboardInterrupt: - pass diff --git a/gnuradio-examples/python/hier/Makefile.am b/gnuradio-examples/python/hier/Makefile.am new file mode 100644 index 00000000..f3986432 --- /dev/null +++ b/gnuradio-examples/python/hier/Makefile.am @@ -0,0 +1,24 @@ +# +# Copyright 2006 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 2, 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. +# + +SUBDIRS = \ + audio \ + ofdm diff --git a/gnuradio-examples/python/hier/audio/Makefile.am b/gnuradio-examples/python/hier/audio/Makefile.am new file mode 100644 index 00000000..50cf3e6c --- /dev/null +++ b/gnuradio-examples/python/hier/audio/Makefile.am @@ -0,0 +1,23 @@ +# +# Copyright 2006 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 2, 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. +# + +EXTRA_DIST = \ + dial_tone2.py diff --git a/gnuradio-examples/python/hier/audio/dial_tone2.py b/gnuradio-examples/python/hier/audio/dial_tone2.py new file mode 100755 index 00000000..cbb187a3 --- /dev/null +++ b/gnuradio-examples/python/hier/audio/dial_tone2.py @@ -0,0 +1,84 @@ +#!/usr/bin/env python +# +# Copyright 2004,2005,2006 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 2, 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 +from gnuradio import audio +from gnuradio.eng_option import eng_option +from optparse import OptionParser + +# Top-level block creating a dial tone +# Derives from new class gr.hier_block2 +class dial_tone(gr.hier_block2): + def __init__(self, + sample_rate, # Audio output sample rate (int) + audio_output, # Audio output device + amplitude): # Output volume (0.0-1.0) + + # Call hierarchical block constructor + # Top-level blocks have no inputs or outputs + gr.hier_block2.__init__(self, + "dial_tone", # Block type + gr.io_signature(0,0,0), # Input signature + gr.io_signature(0,0,0)) # Output signature + + # Hierarchical blocks have a set of 'components' (which may + # be themselves hierarchical blocks), mapped to names. + # 'define_component' takes a string and either a hierarchical + # block or an instance of a 'leaf node' (gr_block) block + + # Give names to two sine wave sources and an audio sink + self.define_component("src0", gr.sig_source_f (sample_rate, gr.GR_SIN_WAVE, 350, amplitude)) + self.define_component("src1", gr.sig_source_f (sample_rate, gr.GR_SIN_WAVE, 440, amplitude)) + self.define_component("dst", audio.sink(sample_rate, audio_output)) + + # Wire up outputs to inputs. (TODO: convenience functions) + self.connect("src0", 0, "dst", 0) + self.connect("src1", 0, "dst", 1) + +if __name__ == '__main__': + parser = OptionParser(option_class=eng_option) + parser.add_option("-O", "--audio-output", type="string", default="", + help="pcm output device name. E.g., hw:0,0 or /dev/dsp") + parser.add_option("-r", "--sample-rate", type="eng_float", default=48000, + help="set sample rate to RATE (48000)") + parser.add_option("-a", "--amplitude", type="eng_float", default=0.1, + help="set output volume to AMPLITUDE (0.1)") + (options, args) = parser.parse_args() + if len(args) != 0: + parser.print_help() + raise SystemExit, 1 + + # Create an instance of a hierarchical block + top_block = dial_tone(int(options.sample_rate), + options.audio_output, + options.amplitude) + + # Create an instance of a runtime, passing it the top block + # to process + runtime = gr.runtime(top_block) + + try: + # Run forever + runtime.run() + except KeyboardInterrupt: + # Ctrl-C exits + pass diff --git a/gnuradio-examples/python/hier/ofdm/Makefile.am b/gnuradio-examples/python/hier/ofdm/Makefile.am new file mode 100644 index 00000000..68304cd3 --- /dev/null +++ b/gnuradio-examples/python/hier/ofdm/Makefile.am @@ -0,0 +1,22 @@ +# +# Copyright 2006 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 2, 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. +# + +EXTRA_DIST = \ No newline at end of file -- 2.30.2