From 78e95562617d084d6bd83227a676f62bb552b26d Mon Sep 17 00:00:00 2001 From: Josh Blum Date: Mon, 29 Aug 2011 09:43:54 -0700 Subject: usrp: preserve sub-ranges when calculating overall tune range --- host/lib/usrp/multi_usrp.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'host/lib/usrp') diff --git a/host/lib/usrp/multi_usrp.cpp b/host/lib/usrp/multi_usrp.cpp index d0141108e..1a1bd0967 100644 --- a/host/lib/usrp/multi_usrp.cpp +++ b/host/lib/usrp/multi_usrp.cpp @@ -70,11 +70,15 @@ static meta_range_t make_overall_tune_range( const meta_range_t &dsp_range, const double bw ){ - return meta_range_t( - fe_range.start() + std::max(dsp_range.start(), -bw), - fe_range.stop() + std::min(dsp_range.stop(), bw), - dsp_range.step() - ); + meta_range_t range; + BOOST_FOREACH(const range_t &sub_range, fe_range){ + range.push_back(range_t( + sub_range.start() + std::max(dsp_range.start(), -bw), + sub_range.stop() + std::min(dsp_range.stop(), bw), + dsp_range.step() + )); + } + return range; } /*********************************************************************** -- cgit v1.2.3 From bcb76b5d5d29626a879250d8ad58e9219b2928c5 Mon Sep 17 00:00:00 2001 From: Josh Blum Date: Thu, 25 Aug 2011 15:26:57 -0700 Subject: usrp2: manually deconstruct tasks, fixes cleanup bug --- host/lib/usrp/usrp2/io_impl.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'host/lib/usrp') diff --git a/host/lib/usrp/usrp2/io_impl.cpp b/host/lib/usrp/usrp2/io_impl.cpp index aef3f3a39..70331e536 100644 --- a/host/lib/usrp/usrp2/io_impl.cpp +++ b/host/lib/usrp/usrp2/io_impl.cpp @@ -134,6 +134,11 @@ struct usrp2_impl::io_impl{ /* NOP */ } + ~io_impl(void){ + //Manually deconstuct the tasks, since this was not happening automatically. + pirate_tasks.clear(); + } + managed_send_buffer::sptr get_send_buff(size_t chan, double timeout){ flow_control_monitor &fc_mon = *fc_mons[chan]; -- cgit v1.2.3 From dfb30a5d35c4dfeac567c250b792e5d9a68e8a69 Mon Sep 17 00:00:00 2001 From: Josh Blum Date: Wed, 31 Aug 2011 15:51:23 -0700 Subject: usrp2: made iface deconstructor safe (unlock can throw) --- host/lib/usrp/usrp2/usrp2_iface.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'host/lib/usrp') diff --git a/host/lib/usrp/usrp2/usrp2_iface.cpp b/host/lib/usrp/usrp2/usrp2_iface.cpp index aaa5acbd5..d91dd0e40 100644 --- a/host/lib/usrp/usrp2/usrp2_iface.cpp +++ b/host/lib/usrp/usrp2/usrp2_iface.cpp @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -96,9 +97,9 @@ public: mb_eeprom = mboard_eeprom_t(*this, mboard_eeprom_t::MAP_N100); } - ~usrp2_iface_impl(void){ + ~usrp2_iface_impl(void){UHD_SAFE_CALL( this->lock_device(false); - } + )} /*********************************************************************** * Device locking -- cgit v1.2.3