From 081497e75e89ab1343ee020013f5fd05275b6188 Mon Sep 17 00:00:00 2001 From: Josh Blum Date: Sat, 11 Jun 2011 11:03:11 -0700 Subject: uhd: simplify the work function, added TODOs for tags --- gr-uhd/lib/gr_uhd_usrp_source.cc | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) 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(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; } -- cgit From 9bf36359d2cab2cc36adee529429e6b693448154 Mon Sep 17 00:00:00 2001 From: Josh Blum Date: Wed, 22 Jun 2011 23:35:19 -0700 Subject: grc: qtgui windows have scrollbars (thanks jason) --- grc/python/flow_graph.tmpl | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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): -- cgit From 4c503b6ab621cb15724a6f5ddc6f399d945b42bf Mon Sep 17 00:00:00 2001 From: Alexandru Csete Date: Fri, 1 Jul 2011 11:12:47 -0700 Subject: gnuradio-core: add accessors for gain property of quadrature_demod_cf Date: Tue, 17 May 2011 21:52:02 +0200 Message-ID: From: Alexandru Csete To: patch-gnuradio@gnu.org Subject: [Patch-gnuradio] set/get gain for quadrature_demod Greetings, The attached patch adds set/get gain accessors to the quadrature_demod_cf block, inspired by the similar changes to the frequency_modulator block few days ago. Alex --- gnuradio-core/src/lib/general/gr_quadrature_demod_cf.h | 2 ++ gnuradio-core/src/lib/general/gr_quadrature_demod_cf.i | 4 ++++ grc/blocks/gr_quadrature_demod_cf.xml | 1 + 3 files changed, 7 insertions(+) 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..a7b449c0f 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 get_gain() { 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..2591e1085 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 get_gain() { return d_gain; } }; 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 @@ gr_quadrature_demod_cf from gnuradio import gr gr.quadrature_demod_cf($gain) + set_gain($gain) Gain gain -- cgit From 33c00729c9720c2254cb0fa9daad5994aeba1ab7 Mon Sep 17 00:00:00 2001 From: Johnathan Corgan Date: Fri, 1 Jul 2011 11:19:32 -0700 Subject: gnuradio-core: use common coding style for accessor in quadrature_demod_cf --- gnuradio-core/src/lib/general/gr_quadrature_demod_cf.h | 2 +- gnuradio-core/src/lib/general/gr_quadrature_demod_cf.i | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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 a7b449c0f..df6de93d5 100644 --- a/gnuradio-core/src/lib/general/gr_quadrature_demod_cf.h +++ b/gnuradio-core/src/lib/general/gr_quadrature_demod_cf.h @@ -45,7 +45,7 @@ class gr_quadrature_demod_cf : public gr_sync_block public: void set_gain(float gain) { d_gain = gain; } - float get_gain() { return d_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 2591e1085..d9f338daa 100644 --- a/gnuradio-core/src/lib/general/gr_quadrature_demod_cf.i +++ b/gnuradio-core/src/lib/general/gr_quadrature_demod_cf.i @@ -30,5 +30,5 @@ class gr_quadrature_demod_cf : public gr_sync_block public: void set_gain(float gain) { d_gain = gain; } - float get_gain() { return d_gain; } + float gain() const { return d_gain; } }; -- cgit From b1df72440bacd929485d051500b7a34e5c184759 Mon Sep 17 00:00:00 2001 From: Johannes Schmitz Date: Fri, 1 Jul 2011 11:31:05 -0700 Subject: gnuradio-core: make accessor const in gr_single_pole_iir --- gnuradio-core/src/lib/filter/gr_single_pole_iir.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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; -- cgit