diff options
Diffstat (limited to 'gr-digital/examples/narrowband/uhd_interface.py')
-rw-r--r-- | gr-digital/examples/narrowband/uhd_interface.py | 100 |
1 files changed, 52 insertions, 48 deletions
diff --git a/gr-digital/examples/narrowband/uhd_interface.py b/gr-digital/examples/narrowband/uhd_interface.py index e7c7fe3af0..1da2bbb1bf 100644 --- a/gr-digital/examples/narrowband/uhd_interface.py +++ b/gr-digital/examples/narrowband/uhd_interface.py @@ -1,24 +1,28 @@ #!/usr/bin/env python # # Copyright 2010,2011 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 __future__ import print_function +from __future__ import division +from __future__ import unicode_literals from gnuradio import gr, uhd from gnuradio import eng_notation @@ -41,10 +45,10 @@ def add_freq_option(parser): help="set Tx and/or Rx frequency to FREQ [default=%default]", metavar="FREQ") -class uhd_interface: +class uhd_interface(object): def __init__(self, istx, args, sym_rate, sps, freq=None, lo_offset=None, gain=None, spec=None, antenna=None, clock_source=None): - + if(istx): self.u = uhd.usrp_sink(device_addr=args, stream_args=uhd.stream_args('fc32')) else: @@ -61,15 +65,15 @@ class uhd_interface: # Set the antenna if(antenna): self.u.set_antenna(antenna, 0) - + self._args = args self._ant = antenna self._spec = spec self._gain = self.set_gain(gain) - self._lo_offset = lo_offset - self._freq = self.set_freq(freq, lo_offset) + self._lo_offset = lo_offset + self._freq = self.set_freq(freq, lo_offset) self._rate, self._sps = self.set_sample_rate(sym_rate, sps) - self._clock_source = clock_source + self._clock_source = clock_source def set_sample_rate(self, sym_rate, req_sps): start_sps = req_sps @@ -78,37 +82,37 @@ class uhd_interface: self.u.set_samp_rate(asked_samp_rate) actual_samp_rate = self.u.get_samp_rate() - sps = actual_samp_rate/sym_rate + sps = actual_samp_rate / sym_rate if(sps < 2): req_sps +=1 else: actual_sps = sps break - + if(sps != req_sps): - print "\nSymbol Rate: %f" % (sym_rate) - print "Requested sps: %f" % (start_sps) - print "Given sample rate: %f" % (actual_samp_rate) - print "Actual sps for rate: %f" % (actual_sps) + print("\nSymbol Rate: %f" % (sym_rate)) + print("Requested sps: %f" % (start_sps)) + print("Given sample rate: %f" % (actual_samp_rate)) + print("Actual sps for rate: %f" % (actual_sps)) if(actual_samp_rate != asked_samp_rate): - print "\nRequested sample rate: %f" % (asked_samp_rate) - print "Actual sample rate: %f" % (actual_samp_rate) + print("\nRequested sample rate: %f" % (asked_samp_rate)) + print("Actual sample rate: %f" % (actual_samp_rate)) return (actual_samp_rate, actual_sps) def get_sample_rate(self): return self.u.get_samp_rate() - + def set_gain(self, gain=None): if gain is None: # if no gain was specified, use the mid-point in dB g = self.u.get_gain_range() - gain = float(g.start()+g.stop())/2 - print "\nNo gain specified." - print "Setting gain to %f (from [%f, %f])" % \ - (gain, g.start(), g.stop()) - + gain = float(g.start()+g.stop()) / 2 + print("\nNo gain specified.") + print("Setting gain to %f (from [%f, %f])" % + (gain, g.start(), g.stop())) + self.u.set_gain(gain, 0) return gain @@ -116,7 +120,7 @@ class uhd_interface: if(freq is None): sys.stderr.write("You must specify -f FREQ or --freq FREQ\n") sys.exit(1) - + r = self.u.set_center_freq(uhd.tune_request(freq, lo_offset)) if r: return freq @@ -163,22 +167,22 @@ class uhd_transmitter(uhd_interface, gr.hier_block2): parser.add_option("", "--tx-gain", type="eng_float", default=None, help="set transmit gain in dB (default is midpoint)") parser.add_option("-C", "--clock-source", type="string", default=None, - help="select clock source (e.g. 'external') [default=%default]") + help="select clock source (e.g. 'external') [default=%default]") parser.add_option("-v", "--verbose", action="store_true", default=False) def _print_verbage(self): """ Prints information about the UHD transmitter """ - print "\nUHD Transmitter:" - print "Args: %s" % (self._args) - print "Freq: %sHz" % (eng_notation.num_to_str(self._freq)) - print "LO Offset: %sHz" % (eng_notation.num_to_str(self._lo_offset)) - print "Gain: %f dB" % (self._gain) - print "Sample Rate: %ssps" % (eng_notation.num_to_str(self._rate)) - print "Antenna: %s" % (self._ant) - print "Subdev Spec: %s" % (self._spec) - print "Clock Source: %s" % (self._clock_source) + print("\nUHD Transmitter:") + print("Args: %s" % (self._args)) + print("Freq: %sHz" % (eng_notation.num_to_str(self._freq))) + print("LO Offset: %sHz" % (eng_notation.num_to_str(self._lo_offset)) ) + print("Gain: %f dB" % (self._gain)) + print("Sample Rate: %ssps" % (eng_notation.num_to_str(self._rate))) + print("Antenna: %s" % (self._ant)) + print("Subdev Spec: %s" % (self._spec)) + print("Clock Source: %s" % (self._clock_source)) #-------------------------------------------------------------------# # RECEIVER @@ -191,7 +195,7 @@ class uhd_receiver(uhd_interface, gr.hier_block2): gr.hier_block2.__init__(self, "uhd_receiver", gr.io_signature(0,0,0), gr.io_signature(1,1,gr.sizeof_gr_complex)) - + # Set up the UHD interface as a receiver uhd_interface.__init__(self, False, args, sym_rate, sps, freq, lo_offset, gain, spec, antenna, clock_source) @@ -214,11 +218,11 @@ class uhd_receiver(uhd_interface, gr.hier_block2): help="set receive frequency to FREQ [default=%default]", metavar="FREQ") parser.add_option("", "--lo-offset", type="eng_float", default=0, - help="set local oscillator offset in Hz (default is 0)") + help="set local oscillator offset in Hz (default is 0)") parser.add_option("", "--rx-gain", type="eng_float", default=None, help="set receive gain in dB (default is midpoint)") parser.add_option("-C", "--clock-source", type="string", default=None, - help="select clock source (e.g. 'external') [default=%default]") + help="select clock source (e.g. 'external') [default=%default]") if not parser.has_option("--verbose"): parser.add_option("-v", "--verbose", action="store_true", default=False) @@ -226,13 +230,13 @@ class uhd_receiver(uhd_interface, gr.hier_block2): """ Prints information about the UHD transmitter """ - print "\nUHD Receiver:" - print "UHD Args: %s" % (self._args) - print "Freq: %sHz" % (eng_notation.num_to_str(self._freq)) - print "LO Offset: %sHz" % (eng_notation.num_to_str(self._lo_offset)) - print "Gain: %f dB" % (self._gain) - print "Sample Rate: %ssps" % (eng_notation.num_to_str(self._rate)) - print "Antenna: %s" % (self._ant) - print "Spec: %s" % (self._spec) - print "Clock Source: %s" % (self._clock_source) + print("\nUHD Receiver:") + print("UHD Args: %s" % (self._args)) + print("Freq: %sHz" % (eng_notation.num_to_str(self._freq))) + print("LO Offset: %sHz" % (eng_notation.num_to_str(self._lo_offset)) ) + print("Gain: %f dB" % (self._gain)) + print("Sample Rate: %ssps" % (eng_notation.num_to_str(self._rate))) + print("Antenna: %s" % (self._ant)) + print("Spec: %s" % (self._spec)) + print("Clock Source: %s" % (self._clock_source)) |