Index: /vtcross/trunk/src/cognitive_engines/DSA_CE/examples/gnuradio-examples/benchmark_dsa.py
===================================================================
--- /vtcross/trunk/src/cognitive_engines/DSA_CE/examples/gnuradio-examples/benchmark_dsa.py	(revision 410)
+++ /vtcross/trunk/src/cognitive_engines/DSA_CE/examples/gnuradio-examples/benchmark_dsa.py	(revision 413)
@@ -4,6 +4,4 @@
 #
 # Copyright 2009 Virginia Polytechnic Institute and State University 
-# 
-# This file is part of GNU Radio
 # 
 # GNU Radio is free software; you can redistribute it and/or modify
Index: /cross/trunk/src/cognitive_engines/DSA_CE/examples/gnuradio-examples/transmit_path.py
===================================================================
--- /vtcross/trunk/src/cognitive_engines/DSA_CE/examples/gnuradio-examples/transmit_path.py	(revision 389)
+++ 	(revision )
@@ -1,217 +1,0 @@
-#
-# 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, blks2
-from gnuradio import usrp
-from gnuradio import eng_notation
-
-import copy
-import sys
-
-# from current dir
-from pick_bitrate import pick_tx_bitrate
-import usrp_options
-
-# /////////////////////////////////////////////////////////////////////////////
-#                              transmit path
-# /////////////////////////////////////////////////////////////////////////////
-
-class transmit_path(gr.hier_block2): 
-    def __init__(self, modulator_class, options):
-        '''
-        See below for what options should hold
-        '''
-	gr.hier_block2.__init__(self, "transmit_path",
-                                gr.io_signature(0, 0, 0), # Input signature
-                                gr.io_signature(0, 0, 0)) # Output signature
-
-        options = copy.copy(options)    # make a copy so we can destructively modify
-
-        self._verbose            = options.verbose
-        self._tx_freq            = options.tx_freq         # tranmitter's center frequency
-        self._tx_amplitude       = options.tx_amplitude    # digital amplitude sent to USRP
-        self._bitrate            = options.bitrate         # desired bit rate
-        self._interp             = options.interp          # interpolating rate for the USRP (prelim)
-        self._samples_per_symbol = options.samples_per_symbol  # desired samples/baud
-        self._use_whitener_offset = options.use_whitener_offset # increment start of whitener XOR data
-        
-        self._modulator_class = modulator_class         # the modulator_class we are using
-    
-        if self._tx_freq is None:
-            sys.stderr.write("-f FREQ or --freq FREQ or --tx-freq FREQ must be specified\n")
-            raise SystemExit
-
-        # Set up USRP sink; also adjusts interp, samples_per_symbol, and bitrate
-        self._setup_usrp_sink(options)
-
-        if options.show_tx_ampl_range:
-            print "Tx Amplitude Range: minimum = %g, maximum = %g"%tuple(self.u.ampl_range())
-
-        # copy the final answers back into options for use by modulator
-        options.samples_per_symbol = self._samples_per_symbol
-        options.bitrate = self._bitrate
-        options.interp = self._interp
-
-        # Get mod_kwargs
-        mod_kwargs = self._modulator_class.extract_kwargs_from_options(options)
-
-        # Set center frequency of USRP
-        ok = self.set_freq(self._tx_freq)
-        if not ok:
-            print "Failed to set Tx frequency to %s" % (eng_notation.num_to_str(self._tx_freq),)
-            raise ValueError
-    
-        # transmitter
-        self.packet_transmitter = \
-            blks2.mod_pkts(self._modulator_class(**mod_kwargs),
-                           access_code=None,
-                           msgq_limit=4,
-                           pad_for_usrp=True,
-                           use_whitener_offset=options.use_whitener_offset)
-
-
-        # Set the USRP for maximum transmit gain
-        # (Note that on the RFX cards this is a nop.)
-        self.set_gain(self.u.gain_range()[1])
-
-        self.amp = gr.multiply_const_cc(1)
-        self.set_tx_amplitude(self._tx_amplitude)
-
-        # Display some information about the setup
-        if self._verbose:
-            self._print_verbage()
-
-        # Create and setup transmit path flow graph
-        self.connect(self.packet_transmitter, self.amp, self.u)
-
-    def _setup_usrp_sink(self, options):
-        """
-        Creates a USRP sink, determines the settings for best bitrate,
-        and attaches to the transmitter's subdevice.
-        """
-        self.u = usrp_options.create_usrp_sink(options)
-        dac_rate = self.u.dac_rate();
-
-        # derive values of bitrate, samples_per_symbol, and interp from desired info
-        (self._bitrate, self._samples_per_symbol, self._interp) = \
-            pick_tx_bitrate(self._bitrate, self._modulator_class.bits_per_symbol(),
-                            self._samples_per_symbol, self._interp, dac_rate)
-        
-        self.u.set_interp(self._interp)
-	print "printing interpolation ",self._interp,"\n"
-
-    def set_freq(self, target_freq):
-        """
-        Set the center frequency we're interested in.
-
-        @param target_freq: frequency in Hz
-        @rypte: bool
-
-        Tuning is a two step process.  First we ask the front-end to
-        tune as close to the desired frequency as it can.  Then we use
-        the result of that operation and our target_frequency to
-        determine the value for the digital up converter.
-        """
-        return self.u.set_center_freq(target_freq)
-        
-    def set_gain(self, gain):
-        """
-        Sets the analog gain in the USRP
-        """
-        return self.u.set_gain(gain)
-
-    def set_tx_amplitude(self, ampl):
-        """
-        Sets the transmit amplitude sent to the USRP
-        @param ampl the amplitude or None for automatic
-        """
-        ampl_range = self.u.ampl_range()
-        if ampl is None: ampl = (ampl_range[1] - ampl_range[0])*0.15 + ampl_range[0]
-        self._tx_amplitude = max(ampl_range[0], min(ampl, ampl_range[1]))
-        self.amp.set_k(self._tx_amplitude)
-
-    def send_pkt(self, payload='', eof=False):
-        """
-        Calls the transmitter method to send a packet
-        """
-        return self.packet_transmitter.send_pkt(payload, eof)
-        
-    def bitrate(self):
-        return self._bitrate
-
-    def samples_per_symbol(self):
-        return self._samples_per_symbol
-
-    def interp(self):
-        return self._interp
-
-    def add_options(normal, expert):
-        """
-        Adds transmitter-specific options to the Options Parser
-        """
-        add_freq_option(normal)
-        if not normal.has_option('--bitrate'):
-            normal.add_option("-r", "--bitrate", type="eng_float", default=None,
-                              help="specify bitrate.  samples-per-symbol and interp/decim will be derived.")
-        usrp_options.add_tx_options(normal, expert)
-        normal.add_option("--tx-amplitude", type="eng_float", default=None, metavar="AMPL",
-                          help="set transmitter digital amplitude [default=midpoint].  See also --show-tx-ampl-range")
-        normal.add_option("--show-tx-ampl-range", action="store_true", default=False, 
-                          help="print min and max Tx amplitude available")
-        normal.add_option("-v", "--verbose", action="store_true", default=False)
-        expert.add_option("-S", "--samples-per-symbol", type="int", default=None,
-                          help="set samples/symbol [default=%default]")
-        expert.add_option("", "--tx-freq", type="eng_float", default=None,
-                          help="set transmit frequency to FREQ [default=%default]", metavar="FREQ")
-        expert.add_option("", "--log", action="store_true", default=False,
-                          help="Log all parts of flow graph to file (CAUTION: lots of data)")
-        expert.add_option("","--use-whitener-offset", action="store_true", default=False,
-                          help="make sequential packets use different whitening")
-
-    # Make a static method to call before instantiation
-    add_options = staticmethod(add_options)
-
-    def _print_verbage(self):
-        """
-        Prints information about the transmit path
-        """
-        print "Using TX d'board %s"    % (self.u,)
-        print "Tx amplitude     %s"    % (self._tx_amplitude)
-        print "modulation:      %s"    % (self._modulator_class.__name__)
-        print "bitrate:         %sb/s" % (eng_notation.num_to_str(self._bitrate))
-        print "samples/symbol:  %3d"   % (self._samples_per_symbol)
-        print "interp:          %3d"   % (self._interp)
-        print "Tx Frequency:    %s"    % (eng_notation.num_to_str(self._tx_freq))
-        
-
-def add_freq_option(parser):
-    """
-    Hackery that has the -f / --freq option set both tx_freq and rx_freq
-    """
-    def freq_callback(option, opt_str, value, parser):
-        parser.values.rx_freq = value
-        parser.values.tx_freq = value
-
-    if not parser.has_option('--freq'):
-        parser.add_option('-f', '--freq', type="eng_float",
-                          action="callback", callback=freq_callback,
-                          help="set Tx and/or Rx frequency to FREQ [default=%default]",
-                          metavar="FREQ")
Index: /cross/trunk/src/cognitive_engines/DSA_CE/examples/gnuradio-examples/receive_path.py
===================================================================
--- /vtcross/trunk/src/cognitive_engines/DSA_CE/examples/gnuradio-examples/receive_path.py	(revision 389)
+++ 	(revision )
@@ -1,228 +1,0 @@
-#!/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, blks2
-from gnuradio import usrp
-from gnuradio import eng_notation
-import copy
-import sys
-
-# from current dir
-from pick_bitrate import pick_rx_bitrate
-import usrp_options
-
-# /////////////////////////////////////////////////////////////////////////////
-#                              receive path
-# /////////////////////////////////////////////////////////////////////////////
-
-class receive_path(gr.hier_block2):
-    def __init__(self, demod_class, rx_callback, options):
-
-	gr.hier_block2.__init__(self, "receive_path",
-                                gr.io_signature(0, 0, 0), # Input signature
-                                gr.io_signature(0, 0, 0)) # Output signature
-
-        options = copy.copy(options)    # make a copy so we can destructively modify
-
-        self._verbose            = options.verbose
-        self._rx_freq            = options.rx_freq         # receiver's center frequency
-        self._rx_gain            = options.rx_gain         # receiver's gain
-        self._bitrate            = options.bitrate         # desired bit rate
-        self._decim              = options.decim           # Decimating rate for the USRP (prelim)
-        self._samples_per_symbol = options.samples_per_symbol  # desired samples/symbol
-
-        self._rx_callback   = rx_callback      # this callback is fired when there's a packet available
-        self._demod_class   = demod_class      # the demodulator_class we're using
-
-        if self._rx_freq is None:
-            sys.stderr.write("-f FREQ or --freq FREQ or --rx-freq FREQ must be specified\n")
-            raise SystemExit
-
-        # Set up USRP source; also adjusts decim, samples_per_symbol, and bitrate
-        self._setup_usrp_source(options)
-
-        if options.show_rx_gain_range:
-            print "Rx Gain Range: minimum = %g, maximum = %g, step size = %g"%tuple(self.u.gain_range())
-
-        self.set_gain(options.rx_gain)
-
-        # Set RF frequency
-        ok = self.set_freq(self._rx_freq)
-        if not ok:
-            print "Failed to set Rx frequency to %s" % (eng_notation.num_to_str(self._rx_freq))
-            raise ValueError, eng_notation.num_to_str(self._rx_freq)
-
-        # copy the final answers back into options for use by demodulator
-        options.samples_per_symbol = self._samples_per_symbol
-        options.bitrate = self._bitrate
-        options.decim = self._decim
-
-        # Get demod_kwargs
-        demod_kwargs = self._demod_class.extract_kwargs_from_options(options)
-
-        # Design filter to get actual channel we want
-        sw_decim = 1
-        chan_coeffs = gr.firdes.low_pass (1.0,                  # gain
-                                          sw_decim * self._samples_per_symbol, # sampling rate
-                                          1.0,                  # midpoint of trans. band
-                                          0.5,                  # width of trans. band
-                                          gr.firdes.WIN_HANN)   # filter type 
-
-        # Decimating channel filter
-        # complex in and out, float taps
-        self.chan_filt = gr.fft_filter_ccc(sw_decim, chan_coeffs)
-        #self.chan_filt = gr.fir_filter_ccf(sw_decim, chan_coeffs)
-
-        # receiver
-        self.packet_receiver = \
-            blks2.demod_pkts(self._demod_class(**demod_kwargs),
-                             access_code=None,
-                             callback=self._rx_callback,
-                             threshold=-1)
-    
-        # Carrier Sensing Blocks
-        alpha = 0.001
-        thresh = 30   # in dB, will have to adjust
-
-        if options.log_rx_power == True:
-            self.probe = gr.probe_avg_mag_sqrd_cf(thresh,alpha)
-            self.power_sink = gr.file_sink(gr.sizeof_float, "rxpower.dat")
-            self.connect(self.chan_filt, self.probe, self.power_sink)
-        else:
-            self.probe = gr.probe_avg_mag_sqrd_c(thresh,alpha)
-            self.connect(self.chan_filt, self.probe)
-
-        # Display some information about the setup
-        if self._verbose:
-            self._print_verbage()
-            
-        self.connect(self.u, self.chan_filt, self.packet_receiver)
-
-    def _setup_usrp_source(self, options):
-
-        self.u = usrp_options.create_usrp_source(options)
-        adc_rate = self.u.adc_rate()
-
-        # derive values of bitrate, samples_per_symbol, and decim from desired info
-        (self._bitrate, self._samples_per_symbol, self._decim) = \
-            pick_rx_bitrate(self._bitrate, self._demod_class.bits_per_symbol(), \
-                            self._samples_per_symbol, self._decim, adc_rate)
-
-        self.u.set_decim(self._decim)
-
-    def set_freq(self, target_freq):
-        """
-        Set the center frequency we're interested in.
-
-        @param target_freq: frequency in Hz
-        @rypte: bool
-
-        Tuning is a two step process.  First we ask the front-end to
-        tune as close to the desired frequency as it can.  Then we use
-        the result of that operation and our target_frequency to
-        determine the value for the digital up converter.
-        """
-        return self.u.set_center_freq(target_freq)
-
-    def set_gain(self, gain):
-        """
-        Sets the analog gain in the USRP
-        """
-        return self.u.set_gain(gain)
-        
-    def bitrate(self):
-        return self._bitrate
-
-    def samples_per_symbol(self):
-        return self._samples_per_symbol
-
-    def decim(self):
-        return self._decim
-
-    def carrier_sensed(self):
-        """
-        Return True if we think carrier is present.
-        """
-        #return self.probe.level() > X
-        return self.probe.unmuted()
-
-    def carrier_threshold(self):
-        """
-        Return current setting in dB.
-        """
-        return self.probe.threshold()
-
-    def set_carrier_threshold(self, threshold_in_db):
-        """
-        Set carrier threshold.
-
-        @param threshold_in_db: set detection threshold
-        @type threshold_in_db:  float (dB)
-        """
-        self.probe.set_threshold(threshold_in_db)
-    
-    @staticmethod
-    def add_options(normal, expert):
-        """
-        Adds receiver-specific options to the Options Parser
-        """
-        add_freq_option(normal)
-        if not normal.has_option("--bitrate"):
-            normal.add_option("-r", "--bitrate", type="eng_float", default=None,
-                              help="specify bitrate.  samples-per-symbol and interp/decim will be derived.")
-        usrp_options.add_rx_options(normal, expert)
-        normal.add_option("-v", "--verbose", action="store_true", default=False)
-        expert.add_option("-S", "--samples-per-symbol", type="int", default=None,
-                          help="set samples/symbol [default=%default]")
-        expert.add_option("", "--rx-freq", type="eng_float", default=None,
-                          help="set Rx frequency to FREQ [default=%default]", metavar="FREQ")
-        expert.add_option("", "--log", action="store_true", default=False,
-                          help="Log all parts of flow graph to files (CAUTION: lots of data)")
-        expert.add_option("", "--log-rx-power", action="store_true", default=False,
-                          help="Log receive signal power to file (CAUTION: lots of data)")
-
-    def _print_verbage(self):
-        """
-        Prints information about the receive path
-        """
-        print "\nReceive Path:"
-        print "USRP %s"    % (self.u,)
-        print "Rx gain:         %g"    % (self.u.gain(),)
-        print "modulation:      %s"    % (self._demod_class.__name__)
-        print "bitrate:         %sb/s" % (eng_notation.num_to_str(self._bitrate))
-        print "samples/symbol:  %3d"   % (self._samples_per_symbol)
-        print "decim:           %3d"   % (self._decim)
-        print "Rx Frequency:    %s"    % (eng_notation.num_to_str(self._rx_freq))
-
-def add_freq_option(parser):
-    """
-    Hackery that has the -f / --freq option set both tx_freq and rx_freq
-    """
-    def freq_callback(option, opt_str, value, parser):
-        parser.values.rx_freq = value
-        parser.values.tx_freq = value
-
-    if not parser.has_option('--freq'):
-        parser.add_option('-f', '--freq', type="eng_float",
-                          action="callback", callback=freq_callback,
-                          help="set Tx and/or Rx frequency to FREQ [default=%default]",
-                          metavar="FREQ")
Index: /cross/trunk/src/cognitive_engines/DSA_CE/examples/gnuradio-examples/pick_bitrate.py
===================================================================
--- /vtcross/trunk/src/cognitive_engines/DSA_CE/examples/gnuradio-examples/pick_bitrate.py	(revision 389)
+++ 	(revision )
@@ -1,149 +1,0 @@
-#
-# Copyright 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 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 eng_notation
-
-_default_bitrate = 500e3
-
-_valid_samples_per_symbol = (2,3,4,5,6,7)
-
-def _gen_tx_info(converter_rate):
-    results = []
-    for samples_per_symbol in _valid_samples_per_symbol:
-        for interp in range(16, 512 + 1, 4):
-            bitrate = converter_rate / interp / samples_per_symbol
-            results.append((bitrate, samples_per_symbol, interp))
-    results.sort()
-    return results
-
-def _gen_rx_info(converter_rate):
-    results = []
-    for samples_per_symbol in _valid_samples_per_symbol:
-        for decim in range(8, 256 + 1, 2):
-            bitrate = converter_rate / decim / samples_per_symbol
-            results.append((bitrate, samples_per_symbol, decim))
-    results.sort()
-    return results
-    
-def _filter_info(info, samples_per_symbol, xrate):
-    if samples_per_symbol is not None:
-        info = [x for x in info if x[1] == samples_per_symbol]
-    if xrate is not None:
-        info = [x for x in info if x[2] == xrate]
-    return info
-
-def _pick_best(target_bitrate, bits_per_symbol, info):
-    """
-    @returns tuple (bitrate, samples_per_symbol, interp_rate_or_decim_rate)
-    """
-    if len(info) == 0:
-        raise RuntimeError, "info is zero length!"
-
-    if target_bitrate is None:     # return the fastest one
-        return info[-1]
-    
-    # convert bit rate to symbol rate
-    target_symbolrate = target_bitrate / bits_per_symbol
-    
-    # Find the closest matching symbol rate.
-    # In the event of a tie, the one with the lowest samples_per_symbol wins.
-    # (We already sorted them, so the first one is the one we take)
-
-    best = info[0]
-    best_delta = abs(target_symbolrate - best[0])
-    for x in info[1:]:
-        delta = abs(target_symbolrate - x[0])
-        if delta < best_delta:
-            best_delta = delta
-            best = x
-
-    # convert symbol rate back to bit rate
-    return ((best[0] * bits_per_symbol),) + best[1:]
-
-def _pick_bitrate(bitrate, bits_per_symbol, samples_per_symbol,
-                  xrate, converter_rate, gen_info):
-    """
-    @returns tuple (bitrate, samples_per_symbol, interp_rate_or_decim_rate)
-    """
-    if not isinstance(bits_per_symbol, int) or bits_per_symbol < 1:
-        raise ValueError, "bits_per_symbol must be an int >= 1"
-    
-    if samples_per_symbol is not None and xrate is not None:  # completely determined
-        return (float(converter_rate) / xrate / samples_per_symbol,
-                samples_per_symbol, xrate)
-
-    if bitrate is None and samples_per_symbol is None and xrate is None:
-        bitrate = _default_bitrate
-
-    # now we have a target bitrate and possibly an xrate or
-    # samples_per_symbol constraint, but not both of them.
-
-    ret = _pick_best(bitrate, bits_per_symbol,
-                      _filter_info(gen_info(converter_rate), samples_per_symbol, xrate))
-    print "Actual Bitrate:", eng_notation.num_to_str(ret[0])
-    return ret
-    
-# ---------------------------------------------------------------------------------------
-
-def pick_tx_bitrate(bitrate, bits_per_symbol, samples_per_symbol,
-                    interp_rate, converter_rate):
-    """
-    Given the 4 input parameters, return at configuration that matches
-
-    @param bitrate: desired bitrate or None
-    @type bitrate: number or None
-    @param bits_per_symbol: E.g., BPSK -> 1, QPSK -> 2, 8-PSK -> 3
-    @type bits_per_symbol: integer >= 1
-    @param samples_per_symbol: samples/baud (aka samples/symbol)
-    @type samples_per_symbol: number or None
-    @param interp_rate: USRP interpolation factor
-    @type interp_rate: integer or None
-    @param converter_rate: converter sample rate in Hz
-    @type converter_rate: number
-
-    @returns tuple (bitrate, samples_per_symbol, interp_rate)
-    """
-    print "Requested TX Bitrate:", bitrate and eng_notation.num_to_str(bitrate) or 'Auto'
-    return _pick_bitrate(bitrate, bits_per_symbol, samples_per_symbol,
-                         interp_rate, converter_rate, _gen_tx_info)
-
-
-def pick_rx_bitrate(bitrate, bits_per_symbol, samples_per_symbol,
-                    decim_rate, converter_rate):
-    """
-    Given the 4 input parameters, return at configuration that matches
-
-    @param bitrate: desired bitrate or None
-    @type bitrate: number or None
-    @param bits_per_symbol: E.g., BPSK -> 1, QPSK -> 2, 8-PSK -> 3
-    @type bits_per_symbol: integer >= 1
-    @param samples_per_symbol: samples/baud (aka samples/symbol)
-    @type samples_per_symbol: number or None
-    @param decim_rate: USRP decimation factor
-    @type decim_rate: integer or None
-    @param converter_rate: converter sample rate in Hz
-    @type converter_rate: number
-
-    @returns tuple (bitrate, samples_per_symbol, decim_rate)
-    """
-    print "Requested RX Bitrate:", bitrate and eng_notation.num_to_str(bitrate) or 'Auto'
-    return _pick_bitrate(bitrate, bits_per_symbol, samples_per_symbol,
-                         decim_rate, converter_rate, _gen_rx_info)
Index: /cross/trunk/src/cognitive_engines/DSA_CE/examples/gnuradio-examples/usrp_options.py
===================================================================
--- /vtcross/trunk/src/cognitive_engines/DSA_CE/examples/gnuradio-examples/usrp_options.py	(revision 389)
+++ 	(revision )
@@ -1,103 +1,0 @@
-#
-# Copyright 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.
-#
-
-import generic_usrp
-
-def _add_options(parser, expert):
-    """
-    Add options to manually choose between usrp or usrp2.
-    Add options for usb. Add options common to source and sink.
-    @param parser: instance of OptionParser
-    """
-    #pick usrp or usrp2
-    parser.add_option("-u", "--usrpx", type="string", default=None,
-                      help="specify which usrp model: 1 for USRP, 2 for USRP2 [default=auto]")
-    #fast usb options
-    expert.add_option("-B", "--fusb-block-size", type="int", default=0,
-                      help="specify fast usb block size [default=%default]")
-    expert.add_option("-N", "--fusb-nblocks", type="int", default=0,
-                      help="specify number of fast usb blocks [default=%default]")
-    #usrp options
-    parser.add_option("-w", "--which", type="int", default=0,
-                      help="select USRP board [default=%default]")
-    #usrp2 options
-    parser.add_option("-e", "--interface", type="string", default="eth0",
-                      help="Use USRP2 at specified Ethernet interface [default=%default]")
-    parser.add_option("-m", "--mac-addr", type="string", default="",
-                      help="Use USRP2 at specified MAC address [default=None]")
-
-def add_rx_options(parser, expert=None):
-    """
-    Add receive specific usrp options.
-    @param parser: instance of OptionParser
-    """
-    parser.add_option("-R", "--rx-subdev-spec", type="subdev", default=None,
-                      help="select USRP Rx side A or B")
-    parser.add_option("--rx-gain", type="eng_float", default=None, metavar="GAIN",
-                      help="set receiver gain in dB [default=midpoint].  See also --show-rx-gain-range")
-    parser.add_option("--show-rx-gain-range", action="store_true", default=False, 
-                      help="print min and max Rx gain available on selected daughterboard")
-    parser.add_option("-d", "--decim", type="intx", default=None,
-                      help="set fpga decimation rate to DECIM [default=%default]")
-    _add_options(parser, expert)
-
-def create_usrp_source(options):
-    u = generic_usrp.generic_usrp_source_c(
-        usrpx=options.usrpx,
-        which=options.which,
-        subdev_spec=options.rx_subdev_spec,
-        interface=options.interface,
-        mac_addr=options.mac_addr,
-        fusb_block_size=options.fusb_block_size,
-        fusb_nblocks=options.fusb_nblocks,
-    )
-    if options.show_rx_gain_range:
-        print "Rx Gain Range: minimum = %g, maximum = %g, step size = %g"%tuple(u.gain_range())
-    return u
-
-def add_tx_options(parser, expert=None):
-    """
-    Add transmit specific usrp options.
-    @param parser: instance of OptionParser
-    """
-    parser.add_option("-T", "--tx-subdev-spec", type="subdev", default=None,
-                      help="select USRP Rx side A or B")
-    parser.add_option("--tx-gain", type="eng_float", default=None, metavar="GAIN",
-                      help="set transmitter gain in dB [default=midpoint].  See also --show-tx-gain-range")
-    parser.add_option("--show-tx-gain-range", action="store_true", default=False, 
-                      help="print min and max Tx gain available on selected daughterboard")
-    parser.add_option("-i", "--interp", type="intx", default=None,
-                      help="set fpga interpolation rate to INTERP [default=%default]")
-    _add_options(parser, expert)
-
-def create_usrp_sink(options):
-    u = generic_usrp.generic_usrp_sink_c(
-        usrpx=options.usrpx,
-        which=options.which,
-        subdev_spec=options.tx_subdev_spec,
-        interface=options.interface,
-        mac_addr=options.mac_addr,
-        fusb_block_size=options.fusb_block_size,
-        fusb_nblocks=options.fusb_nblocks,
-    )
-    if options.show_tx_gain_range:
-        print "Tx Gain Range: minimum = %g, maximum = %g, step size = %g"%tuple(u.gain_range())
-    return u
Index: /cross/trunk/src/cognitive_engines/DSA_CE/examples/gnuradio-examples/generic_usrp.py
===================================================================
--- /vtcross/trunk/src/cognitive_engines/DSA_CE/examples/gnuradio-examples/generic_usrp.py	(revision 389)
+++ 	(revision )
@@ -1,187 +1,0 @@
-#
-# Copyright 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.
-#
-
-USRP_TYPE = 'usrp'
-USRP2_TYPE = 'usrp2'
-
-from gnuradio import gr, usrp, usrp2
-
-########################################################################
-# generic usrp common stuff
-########################################################################
-class _generic_usrp_base(object):
-
-    def __init__(self, which=0, subdev_spec=None, interface="", mac_addr="", fusb_block_size=0, fusb_nblocks=0, usrpx=None):
-        self._gain = 0
-        self._usrpx = usrpx
-        #usrp options
-        self._which = which
-        self._subdev_spec = subdev_spec
-        #usrp2 options
-        self._interface = interface
-        self._mac_addr = mac_addr
-        #fusb options
-        self._fusb_block_size = fusb_block_size
-        self._fusb_nblocks = fusb_nblocks
-
-    def __str__(self):
-        if self._type == USRP_TYPE: return self._subdev.side_and_name()
-        elif self._type == USRP2_TYPE: return "D-Board ID 0x%x\n"%self._u.daughterboard_id()
-
-    def gain(self): return self._gain
-
-    def set_gain(self, gain=None):
-        if gain is None:
-            r = self.gain_range()
-            gain = (r[0] + r[1])/2               # set gain to midpoint
-        self._gain = gain
-        if self._type == USRP_TYPE: return self._subdev.set_gain(gain)
-        elif self._type == USRP2_TYPE: return self._u.set_gain(gain)
-
-    def gain_range(self):
-        if self._type == USRP_TYPE: return self._subdev.gain_range()
-        elif self._type == USRP2_TYPE: return self._u.gain_range()
-
-    def set_center_freq(self, target_freq):
-        if self._type == USRP_TYPE:
-            return bool(self._u.tune(self._dxc, self._subdev, target_freq))
-        elif self._type == USRP2_TYPE:
-            return self._u.set_center_freq(target_freq)
-
-    def set_auto_tr(self, enable):
-        if self._type == USRP_TYPE: return self._subdev.set_auto_tr(enable)
-
-    def __del__(self):
-        # Avoid weak reference error
-        if self._type == USRP_TYPE: del self._subdev
-
-########################################################################
-# generic usrp source
-########################################################################
-class generic_usrp_source_c(_generic_usrp_base, gr.hier_block2):
-    """
-    Create a generic usrp source that represents usrp and usrp2.
-    Take usrp and usrp2 constructor arguments and try to figure out usrp or usrp2.
-    Provide generic access methods so the API looks the same for both.
-    """
-
-    def __init__(self, **kwargs):
-        _generic_usrp_base.__init__(self, **kwargs)
-        gr.hier_block2.__init__(self, "generic_usrp_source",
-            gr.io_signature(0, 0, 0), # Input signature
-            gr.io_signature(1, 1, gr.sizeof_gr_complex)) # Output signature
-        #pick usrp or usrp2
-        if self._usrpx == '1' or self._subdev_spec:
-            self._setup_usrp_source()
-        elif self._usrpx == '2' or self._mac_addr:
-            self._setup_usrp2_source()
-        else: #automatic
-            try: self._setup_usrp2_source()
-            except: self._setup_usrp_source()
-        self.connect(self._u, self)
-        self.set_auto_tr(True)
-
-    ####################################################################
-    # generic access methods
-    ####################################################################
-    def set_decim(self, decim):
-        if self._type == USRP_TYPE: return self._u.set_decim_rate(decim)
-        elif self._type == USRP2_TYPE: return self._u.set_decim(decim)
-
-    def adc_rate(self): return self._u.adc_rate()
-
-    ####################################################################
-    # setup usrp methods
-    ####################################################################
-    def _setup_usrp_source(self):
-        self._u = usrp.source_c (self._which,
-                                fusb_block_size=self._fusb_block_size,
-                                fusb_nblocks=self._fusb_nblocks)
-        # determine the daughterboard subdevice we're using
-        if self._subdev_spec is None:
-            self._subdev_spec = usrp.pick_rx_subdevice(self._u)
-        self._subdev = usrp.selected_subdev(self._u, self._subdev_spec)
-        self._u.set_mux(usrp.determine_rx_mux_value(self._u, self._subdev_spec))
-        self._type = USRP_TYPE
-        self._dxc = 0
-
-    def _setup_usrp2_source(self):
-        self._u = usrp2.source_32fc(self._interface, self._mac_addr)
-        self._type = USRP2_TYPE
-
-########################################################################
-# generic usrp sink
-########################################################################
-class generic_usrp_sink_c(_generic_usrp_base, gr.hier_block2):
-    """
-    Create a generic usrp sink that represents usrp and usrp2.
-    Take usrp and usrp2 constructor arguments and try to figure out usrp or usrp2.
-    Provide generic access methods so the API looks the same for both.
-    """
-
-    def __init__(self, **kwargs):
-        _generic_usrp_base.__init__(self, **kwargs)
-        gr.hier_block2.__init__(self, "generic_usrp_sink",
-            gr.io_signature(1, 1, gr.sizeof_gr_complex), # Input signature
-            gr.io_signature(0, 0, 0)) # Output signature
-
-        #pick usrp or usrp2
-        if self._usrpx == '1' or self._subdev_spec:
-            self._setup_usrp_source()
-        elif self._usrpx == '2' or self._mac_addr:
-            self._setup_usrp2_source()
-        else: #automatic
-            try: self._setup_usrp2_source()
-            except: self._setup_usrp_source()
-        self.connect(self, self._u)
-        self.set_auto_tr(True)
-
-    ####################################################################
-    # generic access methods
-    ####################################################################
-    def set_interp(self, interp):
-        if self._type == USRP_TYPE: return self._u.set_interp_rate(interp)
-        elif self._type == USRP2_TYPE: return self._u.set_interp(interp)
-
-    def dac_rate(self): return self._u.dac_rate()
-
-    def ampl_range(self):
-        if self._type == USRP_TYPE: return (0.0, 2.**15-1)
-        elif self._type == USRP2_TYPE: return (0.0, 1.0)
-
-    ####################################################################
-    # setup usrp methods
-    ####################################################################
-    def _setup_usrp_source(self):
-        self._u = usrp.sink_c (self._which,
-                                fusb_block_size=self._fusb_block_size,
-                                fusb_nblocks=self._fusb_nblocks)
-        # determine the daughterboard subdevice we're using
-        if self._subdev_spec is None:
-            self._subdev_spec = usrp.pick_tx_subdevice(self._u)
-        self._subdev = usrp.selected_subdev(self._u, self._subdev_spec)
-        self._u.set_mux(usrp.determine_tx_mux_value(self._u, self._subdev_spec))
-        self._type = USRP_TYPE
-        self._dxc = self._subdev.which()
-
-    def _setup_usrp2_source(self):
-        self._u = usrp2.sink_32fc(self._interface, self._mac_addr)
-        self._type = USRP2_TYPE
