From ec8e9c7e113046c66176498f12ec79f11d3da65e Mon Sep 17 00:00:00 2001 From: Tom Rondeau Date: Sat, 13 Mar 2010 20:08:50 -0500 Subject: Adding version 2 of receive path so as not to affect old dbpsk and dqpsk operations. --- gnuradio-examples/python/digital/benchmark_rx2.py | 114 ++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 gnuradio-examples/python/digital/benchmark_rx2.py (limited to 'gnuradio-examples/python/digital/benchmark_rx2.py') diff --git a/gnuradio-examples/python/digital/benchmark_rx2.py b/gnuradio-examples/python/digital/benchmark_rx2.py new file mode 100644 index 000000000..458279ef8 --- /dev/null +++ b/gnuradio-examples/python/digital/benchmark_rx2.py @@ -0,0 +1,114 @@ +#!/usr/bin/env python +# +# Copyright 2005,2006,2007,2009 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, modulation_utils +from gnuradio import usrp +from gnuradio import eng_notation +from gnuradio.eng_option import eng_option +from optparse import OptionParser + +import random +import struct +import sys + +# from current dir +import usrp_receive_path2 + +#import os +#print os.getpid() +#raw_input('Attach and press enter: ') + +class my_top_block(gr.top_block): + def __init__(self, demodulator, rx_callback, options): + gr.top_block.__init__(self) + + # Set up receive path + self.rxpath = usrp_receive_path.usrp_receive_path(demodulator, rx_callback, options) + + self.connect(self.rxpath) + +# ///////////////////////////////////////////////////////////////////////////// +# main +# ///////////////////////////////////////////////////////////////////////////// + +global n_rcvd, n_right + +def main(): + global n_rcvd, n_right + + n_rcvd = 0 + n_right = 0 + + def rx_callback(ok, payload): + global n_rcvd, n_right + (pktno,) = struct.unpack('!H', payload[0:2]) + n_rcvd += 1 + if ok: + n_right += 1 + + print "ok = %5s pktno = %4d n_rcvd = %4d n_right = %4d" % ( + ok, pktno, n_rcvd, n_right) + + + demods = modulation_utils.type_1_demods() + + # Create Options Parser: + parser = OptionParser (option_class=eng_option, conflict_handler="resolve") + expert_grp = parser.add_option_group("Expert") + + parser.add_option("-m", "--modulation", type="choice", choices=demods.keys(), + default='gmsk', + help="Select modulation from: %s [default=%%default]" + % (', '.join(demods.keys()),)) + + usrp_receive_path.add_options(parser, expert_grp) + + for mod in demods.values(): + mod.add_options(expert_grp) + + (options, args) = parser.parse_args () + + if len(args) != 0: + parser.print_help(sys.stderr) + sys.exit(1) + + if options.rx_freq is None: + sys.stderr.write("You must specify -f FREQ or --freq FREQ\n") + parser.print_help(sys.stderr) + sys.exit(1) + + + # build the graph + tb = my_top_block(demods[options.modulation], rx_callback, options) + + r = gr.enable_realtime_scheduling() + if r != gr.RT_OK: + print "Warning: Failed to enable realtime scheduling." + + tb.start() # start flow graph + tb.wait() # wait for it to finish + +if __name__ == '__main__': + try: + main() + except KeyboardInterrupt: + pass -- cgit From 6a617516e0678df0c6cb94319cb5980556d49793 Mon Sep 17 00:00:00 2001 From: Tom Rondeau Date: Sat, 13 Mar 2010 20:13:01 -0500 Subject: Fixing call to usrp_receive_path2. --- gnuradio-examples/python/digital/benchmark_rx2.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) mode change 100644 => 100755 gnuradio-examples/python/digital/benchmark_rx2.py (limited to 'gnuradio-examples/python/digital/benchmark_rx2.py') diff --git a/gnuradio-examples/python/digital/benchmark_rx2.py b/gnuradio-examples/python/digital/benchmark_rx2.py old mode 100644 new mode 100755 index 458279ef8..cc3dd6727 --- a/gnuradio-examples/python/digital/benchmark_rx2.py +++ b/gnuradio-examples/python/digital/benchmark_rx2.py @@ -42,7 +42,7 @@ class my_top_block(gr.top_block): gr.top_block.__init__(self) # Set up receive path - self.rxpath = usrp_receive_path.usrp_receive_path(demodulator, rx_callback, options) + self.rxpath = usrp_receive_path2.usrp_receive_path(demodulator, rx_callback, options) self.connect(self.rxpath) @@ -80,7 +80,7 @@ def main(): help="Select modulation from: %s [default=%%default]" % (', '.join(demods.keys()),)) - usrp_receive_path.add_options(parser, expert_grp) + usrp_receive_path2.add_options(parser, expert_grp) for mod in demods.values(): mod.add_options(expert_grp) -- cgit From b53bc1395bd2e8b1ad8a34c583d36fb4ddda7629 Mon Sep 17 00:00:00 2001 From: Tom Rondeau Date: Sun, 14 Mar 2010 17:32:23 -0400 Subject: Making old and new digital modulations completely seperable by adding modulation_utils2 so only new modulator blocks work with the version 2 of everything. Also changed some internal names for clarity. --- gnuradio-examples/python/digital/benchmark_rx2.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gnuradio-examples/python/digital/benchmark_rx2.py') diff --git a/gnuradio-examples/python/digital/benchmark_rx2.py b/gnuradio-examples/python/digital/benchmark_rx2.py index cc3dd6727..ed6d4f0f5 100755 --- a/gnuradio-examples/python/digital/benchmark_rx2.py +++ b/gnuradio-examples/python/digital/benchmark_rx2.py @@ -20,7 +20,7 @@ # Boston, MA 02110-1301, USA. # -from gnuradio import gr, gru, modulation_utils +from gnuradio import gr, gru, modulation_utils2 from gnuradio import usrp from gnuradio import eng_notation from gnuradio.eng_option import eng_option @@ -69,14 +69,14 @@ def main(): ok, pktno, n_rcvd, n_right) - demods = modulation_utils.type_1_demods() + demods = modulation_utils2.type_1_demods() # Create Options Parser: parser = OptionParser (option_class=eng_option, conflict_handler="resolve") expert_grp = parser.add_option_group("Expert") parser.add_option("-m", "--modulation", type="choice", choices=demods.keys(), - default='gmsk', + default='dbpsk2', help="Select modulation from: %s [default=%%default]" % (', '.join(demods.keys()),)) -- cgit From c11ce18def574dabf46532baba924429d421b565 Mon Sep 17 00:00:00 2001 From: Tom Rondeau Date: Sun, 14 Mar 2010 17:36:37 -0400 Subject: Fixing copyright dates. --- gnuradio-examples/python/digital/benchmark_rx2.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gnuradio-examples/python/digital/benchmark_rx2.py') diff --git a/gnuradio-examples/python/digital/benchmark_rx2.py b/gnuradio-examples/python/digital/benchmark_rx2.py index ed6d4f0f5..fe422be83 100755 --- a/gnuradio-examples/python/digital/benchmark_rx2.py +++ b/gnuradio-examples/python/digital/benchmark_rx2.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -# Copyright 2005,2006,2007,2009 Free Software Foundation, Inc. +# Copyright 2010 Free Software Foundation, Inc. # # This file is part of GNU Radio # -- cgit