diff options
-rw-r--r-- | config/grc_gnuradio_examples.m4 | 5 | ||||
-rw-r--r-- | config/grc_gr_audio.m4 | 3 | ||||
-rw-r--r-- | config/grc_gr_usrp2.m4 | 1 | ||||
-rw-r--r-- | gnuradio-core/src/lib/filter/gr_single_pole_iir.h | 4 | ||||
-rw-r--r-- | gnuradio-core/src/lib/general/gr_quadrature_demod_cf.h | 2 | ||||
-rw-r--r-- | gnuradio-core/src/lib/general/gr_quadrature_demod_cf.i | 4 | ||||
-rw-r--r-- | gnuradio-examples/Makefile.am | 3 | ||||
-rw-r--r-- | gnuradio-examples/c++/.gitignore | 5 | ||||
-rw-r--r-- | gnuradio-examples/python/Makefile.am | 3 | ||||
-rw-r--r-- | gr-audio/Makefile.am | 2 | ||||
-rw-r--r-- | gr-audio/examples/.gitignore | 2 | ||||
-rw-r--r-- | gr-audio/examples/Makefile.am (renamed from gnuradio-examples/c++/Makefile.am) | 7 | ||||
-rw-r--r-- | gr-audio/examples/c++/.gitignore (renamed from gnuradio-examples/c++/audio/.gitignore) | 0 | ||||
-rw-r--r-- | gr-audio/examples/c++/Makefile.am (renamed from gnuradio-examples/c++/audio/Makefile.am) | 0 | ||||
-rw-r--r-- | gr-audio/examples/c++/dial_tone.cc (renamed from gnuradio-examples/c++/audio/dial_tone.cc) | 0 | ||||
-rw-r--r-- | gr-audio/examples/python/.gitignore (renamed from gnuradio-examples/python/audio/.gitignore) | 6 | ||||
-rw-r--r-- | gr-audio/examples/python/Makefile.am (renamed from gnuradio-examples/python/audio/Makefile.am) | 0 | ||||
-rwxr-xr-x | gr-audio/examples/python/audio_copy.py (renamed from gnuradio-examples/python/audio/audio_copy.py) | 0 | ||||
-rwxr-xr-x | gr-audio/examples/python/audio_fft.py (renamed from gnuradio-examples/python/audio/audio_fft.py) | 0 | ||||
-rwxr-xr-x | gr-audio/examples/python/audio_play.py (renamed from gnuradio-examples/python/audio/audio_play.py) | 0 | ||||
-rwxr-xr-x | gr-audio/examples/python/audio_to_file.py (renamed from gnuradio-examples/python/audio/audio_to_file.py) | 0 | ||||
-rwxr-xr-x | gr-audio/examples/python/dial_tone.py (renamed from gnuradio-examples/python/audio/dial_tone.py) | 0 | ||||
-rwxr-xr-x | gr-audio/examples/python/dial_tone_daemon.py (renamed from gnuradio-examples/python/audio/dial_tone_daemon.py) | 0 | ||||
-rwxr-xr-x | gr-audio/examples/python/dial_tone_wav.py (renamed from gnuradio-examples/python/audio/dial_tone_wav.py) | 0 | ||||
-rwxr-xr-x | gr-audio/examples/python/mono_tone.py (renamed from gnuradio-examples/python/audio/mono_tone.py) | 0 | ||||
-rwxr-xr-x | gr-audio/examples/python/multi_tone.py (renamed from gnuradio-examples/python/audio/multi_tone.py) | 0 | ||||
-rwxr-xr-x | gr-audio/examples/python/noise.py (renamed from gnuradio-examples/python/audio/noise.py) | 0 | ||||
-rwxr-xr-x | gr-audio/examples/python/spectrum_inversion.py (renamed from gnuradio-examples/python/audio/spectrum_inversion.py) | 0 | ||||
-rwxr-xr-x | gr-audio/examples/python/test_resampler.py (renamed from gnuradio-examples/python/audio/test_resampler.py) | 0 | ||||
-rw-r--r-- | gr-howto-write-a-block/version.sh | 4 | ||||
-rw-r--r-- | gr-qtgui/.gitignore | 1 | ||||
-rw-r--r-- | gr-qtgui/lib/.gitignore | 1 | ||||
-rw-r--r-- | gr-qtgui/swig/.gitignore | 2 | ||||
-rw-r--r-- | gr-uhd/.gitignore | 1 | ||||
-rw-r--r-- | gr-uhd/grc/gen_uhd_usrp_blocks.py | 65 | ||||
-rw-r--r-- | gr-uhd/lib/gr_uhd_usrp_source.cc | 34 | ||||
-rw-r--r-- | gr-usrp/apps/Makefile.am | 11 | ||||
-rwxr-xr-x | gr-usrp/apps/lsusrp (renamed from gr-utils/src/python/lsusrp) | 0 | ||||
-rwxr-xr-x | gr-usrp/apps/usrp_print_db.py (renamed from gr-utils/src/python/usrp_print_db.py) | 0 | ||||
-rwxr-xr-x | gr-usrp/apps/usrp_rx_cfile.py (renamed from gr-utils/src/python/usrp_rx_cfile.py) | 0 | ||||
-rwxr-xr-x | gr-usrp/apps/usrp_test_counting.py (renamed from gr-utils/src/python/usrp_test_counting.py) | 0 | ||||
-rwxr-xr-x | gr-usrp/apps/usrp_test_loopback.py (renamed from gr-utils/src/python/usrp_test_loopback.py) | 0 | ||||
-rw-r--r-- | gr-usrp2/Makefile.am | 2 | ||||
-rw-r--r-- | gr-usrp2/apps/.gitignore | 2 | ||||
-rw-r--r-- | gr-usrp2/apps/Makefile.am | 32 | ||||
-rwxr-xr-x | gr-usrp2/apps/usrp2_rx_cfile.py (renamed from gr-utils/src/python/usrp2_rx_cfile.py) | 0 | ||||
-rw-r--r-- | gr-utils/src/python/Makefile.am | 9 | ||||
-rw-r--r-- | grc/blocks/gr_quadrature_demod_cf.xml | 1 | ||||
-rw-r--r-- | grc/python/flow_graph.tmpl | 11 | ||||
-rw-r--r-- | gruel/src/python/.gitignore | 1 | ||||
-rw-r--r-- | gruel/src/swig/.gitignore | 2 | ||||
-rw-r--r-- | version.sh | 4 |
52 files changed, 159 insertions, 71 deletions
diff --git a/config/grc_gnuradio_examples.m4 b/config/grc_gnuradio_examples.m4 index 203f39d0d..6dff01943 100644 --- a/config/grc_gnuradio_examples.m4 +++ b/config/grc_gnuradio_examples.m4 @@ -1,4 +1,4 @@ -dnl Copyright 2001,2002,2003,2004,2005,2006,2008,2009 Free Software Foundation, Inc. +dnl Copyright 2001,2002,2003,2004,2005,2006,2008,2009,2011 Free Software Foundation, Inc. dnl dnl This file is part of GNU Radio dnl @@ -26,14 +26,11 @@ AC_DEFUN([GRC_GNURADIO_EXAMPLES],[ AC_CONFIG_FILES([ \ gnuradio-examples/Makefile \ - gnuradio-examples/c++/Makefile \ - gnuradio-examples/c++/audio/Makefile \ gnuradio-examples/python/Makefile \ gnuradio-examples/grc/Makefile \ gnuradio-examples/python/apps/hf_explorer/Makefile \ gnuradio-examples/python/apps/hf_radio/Makefile \ gnuradio-examples/python/apps/Makefile \ - gnuradio-examples/python/audio/Makefile \ gnuradio-examples/python/digital/Makefile \ gnuradio-examples/python/digital_voice/Makefile \ gnuradio-examples/python/digital-bert/Makefile \ diff --git a/config/grc_gr_audio.m4 b/config/grc_gr_audio.m4 index bcb19be35..92a0440d0 100644 --- a/config/grc_gr_audio.m4 +++ b/config/grc_gr_audio.m4 @@ -101,6 +101,9 @@ AC_DEFUN([GRC_GR_AUDIO],[ AC_CONFIG_FILES([ \ gr-audio/Makefile \ + gr-audio/examples/Makefile \ + gr-audio/examples/c++/Makefile \ + gr-audio/examples/python/Makefile \ gr-audio/grc/Makefile \ gr-audio/include/Makefile \ gr-audio/lib/Makefile \ diff --git a/config/grc_gr_usrp2.m4 b/config/grc_gr_usrp2.m4 index 3d64db6d6..4ee29861b 100644 --- a/config/grc_gr_usrp2.m4 +++ b/config/grc_gr_usrp2.m4 @@ -26,6 +26,7 @@ AC_DEFUN([GRC_GR_USRP2],[ AC_CONFIG_FILES([ \ gr-usrp2/Makefile \ + gr-usrp2/apps/Makefile \ gr-usrp2/grc/Makefile \ gr-usrp2/gnuradio-usrp2.pc \ gr-usrp2/src/Makefile \ diff --git a/gnuradio-core/src/lib/filter/gr_single_pole_iir.h b/gnuradio-core/src/lib/filter/gr_single_pole_iir.h index da919b35c..8781065d4 100644 --- a/gnuradio-core/src/lib/filter/gr_single_pole_iir.h +++ b/gnuradio-core/src/lib/filter/gr_single_pole_iir.h @@ -71,7 +71,7 @@ public: d_prev_output = 0; } - o_type prev_output () { return d_prev_output; } + o_type prev_output () const { return d_prev_output; } protected: tap_type d_alpha; @@ -155,7 +155,7 @@ public: d_prev_output = 0; } - gr_complexd prev_output () { return d_prev_output; } + gr_complexd prev_output () const { return d_prev_output; } protected: double d_alpha; diff --git a/gnuradio-core/src/lib/general/gr_quadrature_demod_cf.h b/gnuradio-core/src/lib/general/gr_quadrature_demod_cf.h index a29acd628..df6de93d5 100644 --- a/gnuradio-core/src/lib/general/gr_quadrature_demod_cf.h +++ b/gnuradio-core/src/lib/general/gr_quadrature_demod_cf.h @@ -44,6 +44,8 @@ class gr_quadrature_demod_cf : public gr_sync_block float d_gain; public: + void set_gain(float gain) { d_gain = gain; } + float gain() const { return d_gain; } int work (int noutput_items, gr_vector_const_void_star &input_items, diff --git a/gnuradio-core/src/lib/general/gr_quadrature_demod_cf.i b/gnuradio-core/src/lib/general/gr_quadrature_demod_cf.i index fbd45dcf8..d9f338daa 100644 --- a/gnuradio-core/src/lib/general/gr_quadrature_demod_cf.i +++ b/gnuradio-core/src/lib/general/gr_quadrature_demod_cf.i @@ -27,4 +27,8 @@ gr_quadrature_demod_cf_sptr gr_make_quadrature_demod_cf (float gain); class gr_quadrature_demod_cf : public gr_sync_block { gr_quadrature_demod_cf (float gain); + +public: + void set_gain(float gain) { d_gain = gain; } + float gain() const { return d_gain; } }; diff --git a/gnuradio-examples/Makefile.am b/gnuradio-examples/Makefile.am index e0c1b1d15..ded4e743d 100644 --- a/gnuradio-examples/Makefile.am +++ b/gnuradio-examples/Makefile.am @@ -21,7 +21,8 @@ include $(top_srcdir)/Makefile.common -SUBDIRS = c++ +SUBDIRS = + if PYTHON SUBDIRS += python grc endif diff --git a/gnuradio-examples/c++/.gitignore b/gnuradio-examples/c++/.gitignore deleted file mode 100644 index 19dd0e0a5..000000000 --- a/gnuradio-examples/c++/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -/.deps -/.libs -/Makefile -/Makefile.in -/dialtone diff --git a/gnuradio-examples/python/Makefile.am b/gnuradio-examples/python/Makefile.am index ea03b438f..30effdf9a 100644 --- a/gnuradio-examples/python/Makefile.am +++ b/gnuradio-examples/python/Makefile.am @@ -1,5 +1,5 @@ # -# Copyright 2004,2007,2009 Free Software Foundation, Inc. +# Copyright 2004,2007,2009,2011 Free Software Foundation, Inc. # # This file is part of GNU Radio # @@ -23,7 +23,6 @@ include $(top_srcdir)/Makefile.common SUBDIRS = \ apps \ - audio \ digital \ digital-bert \ digital_voice \ diff --git a/gr-audio/Makefile.am b/gr-audio/Makefile.am index bb0d05d07..cde1702f2 100644 --- a/gr-audio/Makefile.am +++ b/gr-audio/Makefile.am @@ -21,7 +21,7 @@ include $(top_srcdir)/Makefile.common -SUBDIRS = include lib +SUBDIRS = include lib examples if PYTHON SUBDIRS += grc swig diff --git a/gr-audio/examples/.gitignore b/gr-audio/examples/.gitignore new file mode 100644 index 000000000..b336cc7ce --- /dev/null +++ b/gr-audio/examples/.gitignore @@ -0,0 +1,2 @@ +/Makefile +/Makefile.in diff --git a/gnuradio-examples/c++/Makefile.am b/gr-audio/examples/Makefile.am index 5a49e0e89..a2365d403 100644 --- a/gnuradio-examples/c++/Makefile.am +++ b/gr-audio/examples/Makefile.am @@ -20,4 +20,9 @@ # include $(top_srcdir)/Makefile.common -SUBDIRS = audio + +SUBDIRS = c++ + +if PYTHON +SUBDIRS += python +endif diff --git a/gnuradio-examples/c++/audio/.gitignore b/gr-audio/examples/c++/.gitignore index bb08aaf91..bb08aaf91 100644 --- a/gnuradio-examples/c++/audio/.gitignore +++ b/gr-audio/examples/c++/.gitignore diff --git a/gnuradio-examples/c++/audio/Makefile.am b/gr-audio/examples/c++/Makefile.am index 88bd7c1fd..88bd7c1fd 100644 --- a/gnuradio-examples/c++/audio/Makefile.am +++ b/gr-audio/examples/c++/Makefile.am diff --git a/gnuradio-examples/c++/audio/dial_tone.cc b/gr-audio/examples/c++/dial_tone.cc index e4e3d8ceb..e4e3d8ceb 100644 --- a/gnuradio-examples/c++/audio/dial_tone.cc +++ b/gr-audio/examples/c++/dial_tone.cc diff --git a/gnuradio-examples/python/audio/.gitignore b/gr-audio/examples/python/.gitignore index c400497f5..b4813f3c8 100644 --- a/gnuradio-examples/python/audio/.gitignore +++ b/gr-audio/examples/python/.gitignore @@ -1,10 +1,4 @@ /Makefile /Makefile.in -/.la -/.lo -/.deps -/.libs -/*.la -/*.lo /*.pyc /*.pyo diff --git a/gnuradio-examples/python/audio/Makefile.am b/gr-audio/examples/python/Makefile.am index 356b51559..356b51559 100644 --- a/gnuradio-examples/python/audio/Makefile.am +++ b/gr-audio/examples/python/Makefile.am diff --git a/gnuradio-examples/python/audio/audio_copy.py b/gr-audio/examples/python/audio_copy.py index 3094c9f7a..3094c9f7a 100755 --- a/gnuradio-examples/python/audio/audio_copy.py +++ b/gr-audio/examples/python/audio_copy.py diff --git a/gnuradio-examples/python/audio/audio_fft.py b/gr-audio/examples/python/audio_fft.py index 960e0f94d..960e0f94d 100755 --- a/gnuradio-examples/python/audio/audio_fft.py +++ b/gr-audio/examples/python/audio_fft.py diff --git a/gnuradio-examples/python/audio/audio_play.py b/gr-audio/examples/python/audio_play.py index f9520c7cf..f9520c7cf 100755 --- a/gnuradio-examples/python/audio/audio_play.py +++ b/gr-audio/examples/python/audio_play.py diff --git a/gnuradio-examples/python/audio/audio_to_file.py b/gr-audio/examples/python/audio_to_file.py index 0d54f7bd2..0d54f7bd2 100755 --- a/gnuradio-examples/python/audio/audio_to_file.py +++ b/gr-audio/examples/python/audio_to_file.py diff --git a/gnuradio-examples/python/audio/dial_tone.py b/gr-audio/examples/python/dial_tone.py index 65c5e50b2..65c5e50b2 100755 --- a/gnuradio-examples/python/audio/dial_tone.py +++ b/gr-audio/examples/python/dial_tone.py diff --git a/gnuradio-examples/python/audio/dial_tone_daemon.py b/gr-audio/examples/python/dial_tone_daemon.py index d30d0e117..d30d0e117 100755 --- a/gnuradio-examples/python/audio/dial_tone_daemon.py +++ b/gr-audio/examples/python/dial_tone_daemon.py diff --git a/gnuradio-examples/python/audio/dial_tone_wav.py b/gr-audio/examples/python/dial_tone_wav.py index 6e87b2a48..6e87b2a48 100755 --- a/gnuradio-examples/python/audio/dial_tone_wav.py +++ b/gr-audio/examples/python/dial_tone_wav.py diff --git a/gnuradio-examples/python/audio/mono_tone.py b/gr-audio/examples/python/mono_tone.py index 869c2e5ff..869c2e5ff 100755 --- a/gnuradio-examples/python/audio/mono_tone.py +++ b/gr-audio/examples/python/mono_tone.py diff --git a/gnuradio-examples/python/audio/multi_tone.py b/gr-audio/examples/python/multi_tone.py index 7d47dd5d5..7d47dd5d5 100755 --- a/gnuradio-examples/python/audio/multi_tone.py +++ b/gr-audio/examples/python/multi_tone.py diff --git a/gnuradio-examples/python/audio/noise.py b/gr-audio/examples/python/noise.py index 75f741082..75f741082 100755 --- a/gnuradio-examples/python/audio/noise.py +++ b/gr-audio/examples/python/noise.py diff --git a/gnuradio-examples/python/audio/spectrum_inversion.py b/gr-audio/examples/python/spectrum_inversion.py index 021e23f2d..021e23f2d 100755 --- a/gnuradio-examples/python/audio/spectrum_inversion.py +++ b/gr-audio/examples/python/spectrum_inversion.py diff --git a/gnuradio-examples/python/audio/test_resampler.py b/gr-audio/examples/python/test_resampler.py index 4644c5e2f..4644c5e2f 100755 --- a/gnuradio-examples/python/audio/test_resampler.py +++ b/gr-audio/examples/python/test_resampler.py diff --git a/gr-howto-write-a-block/version.sh b/gr-howto-write-a-block/version.sh index 8d4ff5200..759d52806 100644 --- a/gr-howto-write-a-block/version.sh +++ b/gr-howto-write-a-block/version.sh @@ -1,4 +1,4 @@ MAJOR_VERSION=3 API_COMPAT=4 -MINOR_VERSION=0 -MAINT_VERSION=0 +MINOR_VERSION=1 +MAINT_VERSION=git diff --git a/gr-qtgui/.gitignore b/gr-qtgui/.gitignore index b336cc7ce..a37fc0c1a 100644 --- a/gr-qtgui/.gitignore +++ b/gr-qtgui/.gitignore @@ -1,2 +1,3 @@ /Makefile /Makefile.in +/*.pc diff --git a/gr-qtgui/lib/.gitignore b/gr-qtgui/lib/.gitignore index fc4f8cdfe..7754ad227 100644 --- a/gr-qtgui/lib/.gitignore +++ b/gr-qtgui/lib/.gitignore @@ -10,6 +10,7 @@ /spectrumdisplayform.ui.h /FrequencyDisplayPlot.moc.cc /ConstellationDisplayPlot.moc.cc +/timedisplayform.moc.cc /gnuradio /guile /python diff --git a/gr-qtgui/swig/.gitignore b/gr-qtgui/swig/.gitignore index 282522db0..26647d4c1 100644 --- a/gr-qtgui/swig/.gitignore +++ b/gr-qtgui/swig/.gitignore @@ -1,2 +1,4 @@ Makefile Makefile.in +/qtgui_swig.py +/python diff --git a/gr-uhd/.gitignore b/gr-uhd/.gitignore index b336cc7ce..a37fc0c1a 100644 --- a/gr-uhd/.gitignore +++ b/gr-uhd/.gitignore @@ -1,2 +1,3 @@ /Makefile /Makefile.in +/*.pc diff --git a/gr-uhd/grc/gen_uhd_usrp_blocks.py b/gr-uhd/grc/gen_uhd_usrp_blocks.py index 82b6aa964..c77df6c97 100644 --- a/gr-uhd/grc/gen_uhd_usrp_blocks.py +++ b/gr-uhd/grc/gen_uhd_usrp_blocks.py @@ -29,20 +29,34 @@ MAIN_TMPL = """\ io_type=uhd.io_type.\$type.type, num_channels=\$nchan, ) -\#if \$ref_clk() -self.\$(id).set_clock_config(uhd.clock_config.external(), uhd.ALL_MBOARDS) -\#end if -\#if \$sync() -self.\$(id).set_time_unknown_pps(uhd.time_spec()) -\#end if \#if \$clock_rate() self.\$(id).set_clock_rate(\$clock_rate, uhd.ALL_MBOARDS) \#end if #for $m in range($max_mboards) +######################################################################## +\#if \$num_mboards() > $m and \$ref_source$(m)() == 'external' +self.\$(id).set_clock_config(uhd.clock_config.external(), $m) +\#end if +######################################################################## +\#if \$num_mboards() > $m and \$ref_source$(m)() == 'internal' +self.\$(id).set_clock_config(uhd.clock_config.internal(), $m) +\#end if +######################################################################## +\#if \$num_mboards() > $m and \$ref_source$(m)() == 'mimo' +_config = uhd.clock_config() +_config.ref_source = uhd.clock_config.REF_MIMO +_config.pps_source = uhd.clock_config.PPS_MIMO +self.\$(id).set_clock_config(_config, $m) +\#end if +######################################################################## \#if \$num_mboards() > $m and \$sd_spec$(m)() self.\$(id).set_subdev_spec(\$sd_spec$(m), $m) \#end if +######################################################################## #end for +\#if \$sync() +self.\$(id).set_time_unknown_pps(uhd.time_spec()) +\#end if self.\$(id).set_samp_rate(\$samp_rate) #for $n in range($max_nchan) \#if \$nchan() > $n @@ -95,21 +109,6 @@ self.\$(id).set_bandwidth(\$bw$(n), $n) </hide> </param> <param> - <name>Ref Clock</name> - <key>ref_clk</key> - <value></value> - <type>enum</type> - <hide>\#if \$ref_clk() then 'none' else 'part'#</hide> - <option> - <name>External</name> - <key>ext</key> - </option> - <option> - <name>Internal</name> - <key></key> - </option> - </param> - <param> <name>Sync</name> <key>sync</key> <value></value> @@ -150,6 +149,25 @@ self.\$(id).set_bandwidth(\$bw$(n), $n) </param> #for $m in range($max_mboards) <param> + <name>Mb$(m): Ref Source</name> + <key>ref_source$(m)</key> + <value></value> + <type>enum</type> + <hide> + \#if not \$num_mboards() > $m + all + \#elif \$ref_source$(m)() + none + \#else + part + \#end if + </hide> + <option><name>Default</name><key></key></option> + <option><name>Internal</name><key>internal</key></option> + <option><name>External</name><key>external</key></option> + <option><name>MIMO Cable</name><key>mimo</key></option> + </param> + <param> <name>Mb$(m): Subdev Spec</name> <key>sd_spec$(m)</key> <value></value> @@ -209,6 +227,11 @@ USRP2 Example: addr0=192.168.10.2, addr1=192.168.10.3 Num Motherboards: Selects the number of USRP motherboards in this device configuration. +Reference Source: +Where the motherboard should sync its time and clock references. +If source and sink blocks reference the same device, +it is only necessary to set the reference source on one of the blocks. + Subdevice specification: Each motherboard should have its own subdevice specification \\ and all subdevice specifications should be the same length. \\ diff --git a/gr-uhd/lib/gr_uhd_usrp_source.cc b/gr-uhd/lib/gr_uhd_usrp_source.cc index 9983489c3..669f890ea 100644 --- a/gr-uhd/lib/gr_uhd_usrp_source.cc +++ b/gr-uhd/lib/gr_uhd_usrp_source.cc @@ -182,19 +182,37 @@ public: gr_vector_const_void_star &input_items, gr_vector_void_star &output_items ){ - //wait for a packet to become available + //In order to allow for low-latency: + //We receive all available packets without timeout. + //This call can timeout under regular operation... size_t num_samps = _dev->get_device()->recv( output_items, noutput_items, _metadata, - _type, uhd::device::RECV_MODE_ONE_PACKET, 1.0 + _type, uhd::device::RECV_MODE_FULL_BUFF, 0.0 ); + //If receive resulted in a timeout condition: + //We now receive a single packet with a large timeout. + if (_metadata.error_code == uhd::rx_metadata_t::ERROR_CODE_TIMEOUT){ + num_samps = _dev->get_device()->recv( + output_items, noutput_items, _metadata, + _type, uhd::device::RECV_MODE_ONE_PACKET, 1.0 + ); + } + //handle possible errors conditions switch(_metadata.error_code){ case uhd::rx_metadata_t::ERROR_CODE_NONE: + //TODO insert tag for time stamp break; + case uhd::rx_metadata_t::ERROR_CODE_TIMEOUT: + //Assume that the user called stop() on the flow graph. + //However, a timeout can occur under error conditions. + return WORK_DONE; + case uhd::rx_metadata_t::ERROR_CODE_OVERFLOW: //ignore overflows and try work again + //TODO insert tag for overflow return work(noutput_items, input_items, output_items); default: @@ -204,18 +222,6 @@ public: return num_samps; } - //advance the pointers and count by num_samps - noutput_items -= num_samps; - for (size_t i = 0; i < _nchan; i++){ - _tmp_buffs[i] = static_cast<char *>(output_items[i]) + num_samps*_type.size; - } - - //receive all available packets without timeout - num_samps += _dev->get_device()->recv( - _tmp_buffs, noutput_items, _metadata, - _type, uhd::device::RECV_MODE_FULL_BUFF, 0.0 - ); - return num_samps; } diff --git a/gr-usrp/apps/Makefile.am b/gr-usrp/apps/Makefile.am index c3955ad9d..5d5cab678 100644 --- a/gr-usrp/apps/Makefile.am +++ b/gr-usrp/apps/Makefile.am @@ -52,3 +52,14 @@ usrp_rx_cfile_SOURCES = \ usrp_siggen_SOURCES = \ usrp_siggen.cc + +if PYTHON + +bin_SCRIPTS = \ + lsusrp \ + usrp_print_db.py \ + usrp_rx_cfile.py \ + usrp_test_counting.py \ + usrp_test_loopback.py + +endif diff --git a/gr-utils/src/python/lsusrp b/gr-usrp/apps/lsusrp index d2eab33fe..d2eab33fe 100755 --- a/gr-utils/src/python/lsusrp +++ b/gr-usrp/apps/lsusrp diff --git a/gr-utils/src/python/usrp_print_db.py b/gr-usrp/apps/usrp_print_db.py index b082cb073..b082cb073 100755 --- a/gr-utils/src/python/usrp_print_db.py +++ b/gr-usrp/apps/usrp_print_db.py diff --git a/gr-utils/src/python/usrp_rx_cfile.py b/gr-usrp/apps/usrp_rx_cfile.py index 3ac9fb56f..3ac9fb56f 100755 --- a/gr-utils/src/python/usrp_rx_cfile.py +++ b/gr-usrp/apps/usrp_rx_cfile.py diff --git a/gr-utils/src/python/usrp_test_counting.py b/gr-usrp/apps/usrp_test_counting.py index a8300afe2..a8300afe2 100755 --- a/gr-utils/src/python/usrp_test_counting.py +++ b/gr-usrp/apps/usrp_test_counting.py diff --git a/gr-utils/src/python/usrp_test_loopback.py b/gr-usrp/apps/usrp_test_loopback.py index b58ac06ae..b58ac06ae 100755 --- a/gr-utils/src/python/usrp_test_loopback.py +++ b/gr-usrp/apps/usrp_test_loopback.py diff --git a/gr-usrp2/Makefile.am b/gr-usrp2/Makefile.am index f6120884a..895032fb0 100644 --- a/gr-usrp2/Makefile.am +++ b/gr-usrp2/Makefile.am @@ -21,7 +21,7 @@ include $(top_srcdir)/Makefile.common -SUBDIRS = src +SUBDIRS = src apps if PYTHON SUBDIRS += grc diff --git a/gr-usrp2/apps/.gitignore b/gr-usrp2/apps/.gitignore new file mode 100644 index 000000000..b336cc7ce --- /dev/null +++ b/gr-usrp2/apps/.gitignore @@ -0,0 +1,2 @@ +/Makefile +/Makefile.in diff --git a/gr-usrp2/apps/Makefile.am b/gr-usrp2/apps/Makefile.am new file mode 100644 index 000000000..e1cec4cfc --- /dev/null +++ b/gr-usrp2/apps/Makefile.am @@ -0,0 +1,32 @@ +# +# Copyright 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. +# + +include $(top_srcdir)/Makefile.common + +EXTRA_DIST += \ + $(bin_SCRIPTS) + +if PYTHON + +bin_SCRIPTS = \ + usrp2_rx_cfile.py + +endif diff --git a/gr-utils/src/python/usrp2_rx_cfile.py b/gr-usrp2/apps/usrp2_rx_cfile.py index 1f23eee4e..1f23eee4e 100755 --- a/gr-utils/src/python/usrp2_rx_cfile.py +++ b/gr-usrp2/apps/usrp2_rx_cfile.py diff --git a/gr-utils/src/python/Makefile.am b/gr-utils/src/python/Makefile.am index 450032266..b422bfd05 100644 --- a/gr-utils/src/python/Makefile.am +++ b/gr-utils/src/python/Makefile.am @@ -50,16 +50,9 @@ bin_SCRIPTS = \ gr_plot_short.py \ gr_plot_qt.py \ gr_filter_design.py \ - lsusrp \ usrp_fft.py \ usrp_oscope.py \ - usrp_print_db.py \ - usrp_rx_cfile.py \ usrp_rx_nogui.py \ usrp_siggen.py \ usrp_siggen_gui.py \ - usrp_test_counting.py \ - usrp_test_loopback.py \ - usrp2_fft.py \ - usrp2_rx_cfile.py - + usrp2_fft.py diff --git a/grc/blocks/gr_quadrature_demod_cf.xml b/grc/blocks/gr_quadrature_demod_cf.xml index a0e630c7e..fad0b3879 100644 --- a/grc/blocks/gr_quadrature_demod_cf.xml +++ b/grc/blocks/gr_quadrature_demod_cf.xml @@ -9,6 +9,7 @@ <key>gr_quadrature_demod_cf</key> <import>from gnuradio import gr</import> <make>gr.quadrature_demod_cf($gain)</make> + <callback>set_gain($gain)</callback> <param> <name>Gain</name> <key>gain</key> diff --git a/grc/python/flow_graph.tmpl b/grc/python/flow_graph.tmpl index d5e53b52b..0878be4ba 100644 --- a/grc/python/flow_graph.tmpl +++ b/grc/python/flow_graph.tmpl @@ -65,9 +65,18 @@ class $(class_name)(gr.top_block, Qt.QWidget): Qt.QWidget.__init__(self) self.setWindowTitle("$title") self.setWindowIcon(Qt.QIcon.fromTheme('gnuradio-grc')) - self.top_layout = Qt.QVBoxLayout(self) + self.top_scroll_layout = Qt.QVBoxLayout() + self.setLayout(self.top_scroll_layout) + self.top_scroll = Qt.QScrollArea() + self.top_scroll.setFrameStyle(Qt.QFrame.NoFrame) + self.top_scroll_layout.addWidget(self.top_scroll) + self.top_scroll.setWidgetResizable(True) + self.top_widget = Qt.QWidget() + self.top_scroll.setWidget(self.top_widget) + self.top_layout = Qt.QVBoxLayout(self.top_widget) self.top_grid_layout = Qt.QGridLayout() self.top_layout.addLayout(self.top_grid_layout) + #elif $generate_options == 'no_gui' class $(class_name)(gr.top_block): diff --git a/gruel/src/python/.gitignore b/gruel/src/python/.gitignore index b336cc7ce..604b402c5 100644 --- a/gruel/src/python/.gitignore +++ b/gruel/src/python/.gitignore @@ -1,2 +1,3 @@ /Makefile /Makefile.in +/run_tests diff --git a/gruel/src/swig/.gitignore b/gruel/src/swig/.gitignore index b336cc7ce..f99fdb19b 100644 --- a/gruel/src/swig/.gitignore +++ b/gruel/src/swig/.gitignore @@ -1,2 +1,4 @@ /Makefile /Makefile.in +/python +/pmt_swig.py diff --git a/version.sh b/version.sh index 9f729d508..759d52806 100644 --- a/version.sh +++ b/version.sh @@ -1,4 +1,4 @@ MAJOR_VERSION=3 API_COMPAT=4 -MINOR_VERSION=0 -MAINT_VERSION=0
\ No newline at end of file +MINOR_VERSION=1 +MAINT_VERSION=git |