commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] gr-error-correcting-codes/src/python Makefile.a...


From: Michael Dickens
Subject: [Commit-gnuradio] gr-error-correcting-codes/src/python Makefile.a...
Date: Mon, 03 Jul 2006 02:11:59 +0000

CVSROOT:        /sources/gnuradio
Module name:    gr-error-correcting-codes
Changes by:     Michael Dickens <michaelld>     06/07/03 02:11:59

Added files:
        src/python     : Makefile.am qa_test_coding_1.py 
                         qa_test_coding_2.py run_tests 

Log message:
        Initial checkin.  Work in progress.  More QA code coming.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gr-error-correcting-codes/src/python/Makefile.am?cvsroot=gnuradio&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/gr-error-correcting-codes/src/python/qa_test_coding_1.py?cvsroot=gnuradio&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/gr-error-correcting-codes/src/python/qa_test_coding_2.py?cvsroot=gnuradio&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/gr-error-correcting-codes/src/python/run_tests?cvsroot=gnuradio&rev=1.1

Patches:
Index: Makefile.am
===================================================================
RCS file: Makefile.am
diff -N Makefile.am
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ Makefile.am 3 Jul 2006 02:11:59 -0000       1.1
@@ -0,0 +1,34 @@
+#
+# Copyright 2004 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., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+# 
+
+include $(top_srcdir)/Makefile.common
+
+EXTRA_DIST = run_tests.in
+
+TESTS = run_tests
+
+noinst_PYTHON =  qa_test_coding_1.py qa_test_coding_2.py
+
+grpython_PYTHON =
+
+MOSTLYCLEANFILES = *.pyc *~
+
+CONFIG_CLEAN_FILES = *.in

Index: qa_test_coding_1.py
===================================================================
RCS file: qa_test_coding_1.py
diff -N qa_test_coding_1.py
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ qa_test_coding_1.py 3 Jul 2006 02:11:59 -0000       1.1
@@ -0,0 +1,95 @@
+#!/usr/bin/env python
+#
+# Copyright 2004,2005 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., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+# 
+
+from gnuradio import gr
+from gnuradio import audio
+from gnuradio.eng_option import eng_option
+from optparse import OptionParser
+from und import error-correcting-codes
+
+class my_graph(gr.flow_graph):
+
+    def __init__(self):
+        gr.flow_graph.__init__(self)
+
+        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 = 44100 # int(options.sample_rate)
+       audio_option = "2" # options.audio_output
+        src = audio.source (sample_rate, audio_option)
+       src_out_chan = src.output_signature().max_streams()
+        dst = audio.sink (sample_rate, str(src_out_chan))
+       dst_in_chan = dst.input_signature().max_streams()
+       audio_el_size = src.output_signature().sizeof_stream_item(1)
+       frame_size = 1000
+       do_mux_outputs = 0
+       enc_code_in_chan = src_out_chan
+       code_generators = [05, 06] #, 03, 04] # , 0, 07]
+       enc_code_out_chan = len (code_generators) / enc_code_in_chan
+       do_termination = 1
+
+       if do_mux_outputs == 1:
+           enc_dec_chan = 1
+       else:
+           enc_dec_chan = enc_code_out_chan
+
+       ss_enc = error-correcting-codes.streams_encode_convolutional 
(audio_el_size,
+                                                  frame_size,
+                                                  do_termination,
+                                                  do_mux_outputs,
+                                                  enc_code_in_chan,
+                                                  enc_code_out_chan,
+                                                  code_generators)
+# for now
+       ss2s = gr.streams_to_stream (1, enc_dec_chan);
+       ns = gr.null_sink (1);
+# end for now
+
+#      ss_dec = error-correcting-codes.frames_to_streams (audio_el_size, 1, 
1000)
+
+       for i in range (src_out_chan):
+           self.connect ((src, i), (ss_enc, i))
+# for now
+       for i in range (enc_dec_chan):
+           self.connect ((ss_enc, i), (ss2s, i))
+       self.connect (ss2s, ns)
+# end for now
+
+#      for i in range (enc_dec_chan):
+#          self.connect ((ss_enc, i), (ss_dec, i))
+
+#      for i in range (dst_in_chan):
+#          self.connect ((ss_dec, i), (dst, i))
+
+if __name__ == '__main__':
+    try:
+        my_graph().run()
+    except KeyboardInterrupt:
+        pass

Index: qa_test_coding_2.py
===================================================================
RCS file: qa_test_coding_2.py
diff -N qa_test_coding_2.py
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ qa_test_coding_2.py 3 Jul 2006 02:11:59 -0000       1.1
@@ -0,0 +1,90 @@
+#!/usr/bin/env python
+#
+# Copyright 2004,2005 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., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+# 
+
+from gnuradio import gr
+from gnuradio import audio
+from gnuradio.eng_option import eng_option
+from optparse import OptionParser
+from und import error-correcting-codes
+
+class my_graph(gr.flow_graph):
+
+    def __init__(self):
+        gr.flow_graph.__init__(self)
+
+        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 = 44100 # int(options.sample_rate)
+       audio_option = "2" # options.audio_output
+        src = audio.source (sample_rate, audio_option)
+       enc_chan_in = 2
+       src_out_chan = src.output_signature().max_streams()
+        dst = audio.sink (sample_rate, str(enc_chan_in))
+       dst_in_chan = dst.input_signature().max_streams()
+       audio_el_size = dst.input_signature().sizeof_stream_item(0)
+       frame_size = 10
+       enc_code_in_chan = enc_chan_in
+       code_generators = [05, 06] #, 03, 04] #, 0, 07]
+       enc_code_out_chan = len (code_generators) / enc_code_in_chan
+       do_termination = 1
+
+       ss_enc = error-correcting-codes.streams_encode_convolutional 
(frame_size,
+                                                  enc_code_in_chan,
+                                                  enc_code_out_chan,
+                                                  code_generators,
+                                                  do_termination)
+
+       for i in range (src_out_chan):
+           p2up = gr.packed_to_unpacked_bb (1, 1)
+           self.connect ((src, i), p2up, (ss_enc, i))
+
+       tau_bits = 0  # 0 -> decode all first
+       ss_dec = error-correcting-codes.dec_blk_conv_soft_full (audio_el_size,
+                                            frame_size,
+                                            do_termination,
+                                            do_mux_outputs,
+                                            enc_code_in_chan,
+                                            enc_code_out_chan,
+                                            code_generators)
+        up2bf0 = gr.chunks_to_symbols_bf ([1.0, -1.0])
+        self.connect ((ss_enc, 0), p2up0, up2bf0, (ss_dec, 0))
+        if enc_dec_chan > 1:
+           p2up1 = gr.packed_to_unpacked_bb (1, 1)
+           up2bf1 = gr.chunks_to_symbols_bf ([1.0, -1.0])
+           self.connect ((ss_enc, 1), p2up1, up2bf1, (ss_dec, 1))
+
+       for i in range (dst_in_chan):
+           self.connect ((ss_dec, i), (dst, i))
+
+if __name__ == '__main__':
+    try:
+        my_graph().run()
+    except KeyboardInterrupt:
+        pass

Index: run_tests
===================================================================
RCS file: run_tests
diff -N run_tests
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ run_tests   3 Jul 2006 02:11:59 -0000       1.1
@@ -0,0 +1,50 @@
+#!/bin/sh
+
+# All this strange PYTHONPATH manipulation is required to run our
+# tests using our just built shared library and swig-generated python
+# code prior to installation.
+
+# build tree == src tree unless you're doing a VPATH build.  
+# If you don't know what a VPATH build is, you're not doing one.  Relax...
+
+prefix=/Users/mlk/GNURadio/local/Darwin8-ppc7450
+exec_prefix=${prefix}
+
+# Where to look in the build tree for our shared library
+libbld=/Users/mlk/GNURadio/gr-build/gr-error-correcting-codes/src/python/../.././src
+# Where to look in the src tree for swig generated python code
+libsrc=/Users/mlk/GNURadio/gr-build/gr-error-correcting-codes/src/python/../../src
+# Where to look in the src tree for hand written python code
+py=/Users/mlk/GNURadio/gr-build/gr-error-correcting-codes/src/python/../../src
+
+# Where to look for installed GNU Radio python modules
+# FIXME this is wrong on a distcheck.  We really need to ask gnuradio-core
+# where it put its python files.
+installed_pythondir=${prefix}/lib/python2.4/site-packages
+installed_pyexecdir=${exec_prefix}/lib/python2.4/site-packages
+
+PYTHONPATH="$libbld:$libbld/.libs:$libsrc:$py:$installed_pythondir:$installed_pyexecdir:$PYTHONPATH"
+#PYTHONPATH="$libbld:$libbld/.libs:$libsrc:$py:$installed_pythondir:$installed_pyexecdir"
+
+export PYTHONPATH
+
+#
+# This is the simple part...
+# Run everything that matches qa_*.py and return the final result.
+#
+
+ok=yes
+for file in ./qa_*.py
+do
+  if ! $file
+  then
+    ok=no
+  fi  
+done
+
+if [ $ok = yes ]
+then
+  exit 0
+else
+  exit 1
+fi




reply via email to

[Prev in Thread] Current Thread [Next in Thread]