summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--host/CMakeLists.txt3
-rw-r--r--host/config/CPack.cmake41
-rw-r--r--host/config/Version.cmake71
-rw-r--r--host/examples/rx_timed_samples.cpp7
-rw-r--r--host/include/uhd/CMakeLists.txt1
-rw-r--r--host/include/uhd/types/dict.hpp8
-rw-r--r--host/include/uhd/usrp/dboard_base.hpp2
-rw-r--r--host/include/uhd/utils/algorithm.hpp11
-rw-r--r--host/include/uhd/utils/pimpl.hpp3
-rw-r--r--host/include/uhd/version.hpp28
-rw-r--r--host/lib/CMakeLists.txt6
-rw-r--r--host/lib/transport/vrt_packet_handler.hpp3
-rw-r--r--host/lib/usrp/dboard_base.cpp6
-rw-r--r--host/lib/usrp/dboard_ctor_args.hpp20
-rw-r--r--host/lib/usrp/dboard_manager.cpp2
-rw-r--r--host/lib/usrp/dsp_utils.hpp4
-rw-r--r--host/lib/usrp/tune_helper.cpp4
-rw-r--r--host/lib/usrp/usrp2/io_impl.cpp12
-rw-r--r--host/lib/version.cpp.in22
19 files changed, 172 insertions, 82 deletions
diff --git a/host/CMakeLists.txt b/host/CMakeLists.txt
index 8e28ddb34..ceea5d024 100644
--- a/host/CMakeLists.txt
+++ b/host/CMakeLists.txt
@@ -20,9 +20,10 @@ PROJECT(UHD CXX)
ENABLE_TESTING()
########################################################################
-# Config Files
+# Config Files (include order is important)
########################################################################
INCLUDE(${CMAKE_SOURCE_DIR}/config/Python.cmake)
+INCLUDE(${CMAKE_SOURCE_DIR}/config/Version.cmake)
INCLUDE(${CMAKE_SOURCE_DIR}/config/CPack.cmake)
########################################################################
diff --git a/host/config/CPack.cmake b/host/config/CPack.cmake
index ed4aeb717..a86f452f9 100644
--- a/host/config/CPack.cmake
+++ b/host/config/CPack.cmake
@@ -16,46 +16,6 @@
#
########################################################################
-# Setup Version Numbers
-########################################################################
-SET(UHD_VERSION_MAJOR 0)
-SET(UHD_VERSION_MINOR 0)
-SET(UHD_VERSION_PATCH 0)
-
-########################################################################
-# Get the current YYYYMMDD HHMMSS timestamp
-########################################################################
-EXECUTE_PROCESS(
- COMMAND ${PYTHON_EXECUTABLE} -c "import time; print time.strftime('%Y%m%d', time.gmtime())"
- OUTPUT_VARIABLE UHD_DATE OUTPUT_STRIP_TRAILING_WHITESPACE
-)
-SET(UHD_VERSION_MAJOR ${UHD_DATE})
-
-EXECUTE_PROCESS(
- COMMAND ${PYTHON_EXECUTABLE} -c "import time; print time.strftime('%H%M%S', time.gmtime())"
- OUTPUT_VARIABLE UHD_TIME OUTPUT_STRIP_TRAILING_WHITESPACE
-)
-SET(UHD_VERSION_MINOR ${UHD_TIME})
-
-########################################################################
-# Find GIT to get repo information
-########################################################################
-MESSAGE(STATUS "Checking for git")
-FIND_PROGRAM(GIT git)
-IF(${GIT} STREQUAL "GIT-NOTFOUND")
- MESSAGE(STATUS "Checking for git - not found")
- SET(UHD_REV "unknown")
-ELSE(${GIT} STREQUAL "GIT-NOTFOUND")
- MESSAGE(STATUS "Checking for git - found")
- EXECUTE_PROCESS(
- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
- COMMAND ${GIT} rev-parse --short HEAD
- OUTPUT_VARIABLE UHD_REV OUTPUT_STRIP_TRAILING_WHITESPACE
- )
-ENDIF(${GIT} STREQUAL "GIT-NOTFOUND")
-SET(UHD_VERSION_PATCH ${UHD_REV})
-
-########################################################################
# Setup CPack
########################################################################
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Ettus Research - Universal Hardware Driver")
@@ -79,3 +39,4 @@ STRING(REPLACE "," ", " CPACK_DEBIAN_PACKAGE_DEPENDS
SET(CPACK_DEBIAN_PACKAGE_RECOMMENDS "python, python-tk")
SET(CPACK_RPM_PACKAGE_REQUIRES "boost-devel >= ${BOOST_MIN_VERSION}")
INCLUDE(CPack) #include after setting vars
+MESSAGE(STATUS "Version: ${CPACK_PACKAGE_VERSION}")
diff --git a/host/config/Version.cmake b/host/config/Version.cmake
new file mode 100644
index 000000000..a592a4565
--- /dev/null
+++ b/host/config/Version.cmake
@@ -0,0 +1,71 @@
+#
+# Copyright 2010 Ettus Research LLC
+#
+# This program 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 of the License, or
+# (at your option) any later version.
+#
+# This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
+#
+
+########################################################################
+# Setup Version Numbers
+########################################################################
+SET(UHD_VERSION_MAJOR 0)
+SET(UHD_VERSION_MINOR 0)
+SET(UHD_VERSION_PATCH 0)
+
+########################################################################
+# Find GIT to get repo information
+########################################################################
+MESSAGE(STATUS "Checking for git")
+FIND_PROGRAM(GIT git)
+IF(${GIT} STREQUAL "GIT-NOTFOUND")
+ MESSAGE(STATUS "Checking for git - not found")
+ELSE(${GIT} STREQUAL "GIT-NOTFOUND")
+ MESSAGE(STATUS "Checking for git - found")
+
+ #grab the git log entry for the current head
+ EXECUTE_PROCESS(
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+ COMMAND ${GIT} log HEAD~..HEAD --date=raw
+ OUTPUT_VARIABLE _git_log OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+
+ #extract the timestamp from the git log entry
+ EXECUTE_PROCESS(
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+ COMMAND ${PYTHON_EXECUTABLE} -c "import re; print re.match('^.*Date:\\s*(\\d*).*$', '''${_git_log}''', re.MULTILINE | re.DOTALL).groups()[0]"
+ OUTPUT_VARIABLE _git_timestamp OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+
+ #format the timestamp into YYYY-MM-DD
+ EXECUTE_PROCESS(
+ COMMAND ${PYTHON_EXECUTABLE} -c "import time; print time.strftime('%Y%m%d', time.gmtime(${_git_timestamp}))"
+ OUTPUT_VARIABLE _git_date OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ SET(UHD_VERSION_MAJOR ${_git_date})
+
+ #format the timestamp into HH-MM-SS
+ EXECUTE_PROCESS(
+ COMMAND ${PYTHON_EXECUTABLE} -c "import time; print time.strftime('%H%M%S', time.gmtime(${_git_timestamp}))"
+ OUTPUT_VARIABLE _git_time OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ SET(UHD_VERSION_MINOR ${_git_time})
+
+ #grab the git ref id for the current head
+ EXECUTE_PROCESS(
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+ COMMAND ${GIT} rev-parse --short HEAD
+ OUTPUT_VARIABLE _git_rev OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ SET(UHD_VERSION_PATCH ${_git_rev})
+
+ENDIF(${GIT} STREQUAL "GIT-NOTFOUND")
diff --git a/host/examples/rx_timed_samples.cpp b/host/examples/rx_timed_samples.cpp
index 3b9acbb2c..4856f6779 100644
--- a/host/examples/rx_timed_samples.cpp
+++ b/host/examples/rx_timed_samples.cpp
@@ -74,8 +74,9 @@ int UHD_SAFE_MAIN(int argc, char *argv[]){
//setup streaming
std::cout << std::endl;
- std::cout << boost::format("Begin streaming %u samples, %d seconds in the future...")
- % total_num_samps % seconds_in_future << std::endl;
+ std::cout << boost::format(
+ "Begin streaming %u samples, %d seconds in the future..."
+ ) % total_num_samps % seconds_in_future << std::endl;
uhd::stream_cmd_t stream_cmd(uhd::stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_DONE);
stream_cmd.num_samps = total_num_samps;
stream_cmd.stream_now = false;
@@ -102,7 +103,7 @@ int UHD_SAFE_MAIN(int argc, char *argv[]){
if (num_acc_samps == 0) continue;
std::cout << boost::format(
"Got timeout before all samples received, possible packet loss, exiting loop..."
- ) % md.error_code << std::endl;
+ ) << std::endl;
goto done_loop;
default:
diff --git a/host/include/uhd/CMakeLists.txt b/host/include/uhd/CMakeLists.txt
index c0339dbd3..ad528c9fb 100644
--- a/host/include/uhd/CMakeLists.txt
+++ b/host/include/uhd/CMakeLists.txt
@@ -25,6 +25,7 @@ INSTALL(FILES
config.hpp
device.hpp
device.ipp
+ version.hpp
wax.hpp
DESTINATION ${INCLUDE_DIR}/uhd
)
diff --git a/host/include/uhd/types/dict.hpp b/host/include/uhd/types/dict.hpp
index 50a2b5c3b..de96ea768 100644
--- a/host/include/uhd/types/dict.hpp
+++ b/host/include/uhd/types/dict.hpp
@@ -20,7 +20,10 @@
#include <uhd/config.hpp>
#include <boost/foreach.hpp>
+#include <boost/format.hpp>
+#include <boost/lexical_cast.hpp>
#include <stdexcept>
+#include <typeinfo>
#include <vector>
#include <list>
@@ -117,7 +120,10 @@ namespace uhd{
BOOST_FOREACH(const pair_t &p, _map){
if (p.first == key) return p.second;
}
- throw std::invalid_argument("key not found in dict");
+ throw std::invalid_argument(str(boost::format(
+ "key \"%s\" not found in dict(%s, %s)"
+ ) % boost::lexical_cast<std::string>(key)
+ % typeid(Key).name() % typeid(Val).name()));
}
/*!
diff --git a/host/include/uhd/usrp/dboard_base.hpp b/host/include/uhd/usrp/dboard_base.hpp
index e88d39876..9b75d791f 100644
--- a/host/include/uhd/usrp/dboard_base.hpp
+++ b/host/include/uhd/usrp/dboard_base.hpp
@@ -40,7 +40,7 @@ public:
* Derived classes should pass the args into the base class,
* but should not deal with the internals of the args.
*/
- struct ctor_args_impl; typedef ctor_args_impl* ctor_args_t;
+ typedef void * ctor_args_t;
//structors
dboard_base(ctor_args_t);
diff --git a/host/include/uhd/utils/algorithm.hpp b/host/include/uhd/utils/algorithm.hpp
index b52edc6b5..54bc78494 100644
--- a/host/include/uhd/utils/algorithm.hpp
+++ b/host/include/uhd/utils/algorithm.hpp
@@ -112,17 +112,6 @@ namespace std{
}
/*!
- * A templated signum implementation.
- * \param n the comparable to process
- * \return -1 when n negative, +1 when n positive, otherwise 0
- */
- template<typename T> inline int signum(T n){
- if (n < 0) return -1;
- if (n > 0) return +1;
- return 0;
- }
-
- /*!
* A templated clip implementation.
* \param val the value to clip between an upper and lower limit
* \param bound1 the upper or lower bound
diff --git a/host/include/uhd/utils/pimpl.hpp b/host/include/uhd/utils/pimpl.hpp
index 09bf0c0a2..18454f0c4 100644
--- a/host/include/uhd/utils/pimpl.hpp
+++ b/host/include/uhd/utils/pimpl.hpp
@@ -20,6 +20,7 @@
#include <uhd/config.hpp>
#include <boost/shared_ptr.hpp>
+#include <boost/make_shared.hpp>
/*! \file pimpl.hpp
* "Pimpl idiom" (pointer to implementation idiom).
@@ -50,6 +51,6 @@
* \param _args the constructor args for the pimpl
*/
#define UHD_PIMPL_MAKE(_name, _args) \
- boost::shared_ptr<_name>(new _name _args)
+ boost::make_shared<_name> _args
#endif /* INCLUDED_UHD_UTILS_PIMPL_HPP */
diff --git a/host/include/uhd/version.hpp b/host/include/uhd/version.hpp
new file mode 100644
index 000000000..19d672e65
--- /dev/null
+++ b/host/include/uhd/version.hpp
@@ -0,0 +1,28 @@
+//
+// Copyright 2010 Ettus Research LLC
+//
+// This program 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 of the License, or
+// (at your option) any later version.
+//
+// This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
+//
+
+#ifndef INCLUDED_UHD_VERSION_HPP
+#define INCLUDED_UHD_VERSION_HPP
+
+#include <uhd/config.hpp>
+#include <string>
+
+namespace uhd{
+ UHD_API std::string get_version_string(void);
+} //namespace uhd
+
+#endif /* INCLUDED_UHD_VERSION_HPP */
diff --git a/host/lib/CMakeLists.txt b/host/lib/CMakeLists.txt
index cc60dfbba..767029dc4 100644
--- a/host/lib/CMakeLists.txt
+++ b/host/lib/CMakeLists.txt
@@ -105,6 +105,11 @@ ENDIF(HAVE_DLFCN_H)
########################################################################
# Append to the list of sources for lib uhd
########################################################################
+CONFIGURE_FILE(
+ ${CMAKE_CURRENT_SOURCE_DIR}/version.cpp.in
+ ${CMAKE_CURRENT_BINARY_DIR}/version.cpp
+@ONLY)
+
LIBUHD_APPEND_SOURCES(
${CMAKE_CURRENT_SOURCE_DIR}/device.cpp
${CMAKE_CURRENT_SOURCE_DIR}/gain_handler.cpp
@@ -112,6 +117,7 @@ LIBUHD_APPEND_SOURCES(
${CMAKE_CURRENT_SOURCE_DIR}/thread_priority.cpp
${CMAKE_CURRENT_SOURCE_DIR}/types.cpp
${CMAKE_CURRENT_SOURCE_DIR}/utils.cpp
+ ${CMAKE_CURRENT_BINARY_DIR}/version.cpp
${CMAKE_CURRENT_SOURCE_DIR}/wax.cpp
)
diff --git a/host/lib/transport/vrt_packet_handler.hpp b/host/lib/transport/vrt_packet_handler.hpp
index 0cc5eef76..7e0588f03 100644
--- a/host/lib/transport/vrt_packet_handler.hpp
+++ b/host/lib/transport/vrt_packet_handler.hpp
@@ -293,7 +293,6 @@ template <typename T> UHD_INLINE T get_context_code(
* Pack a vrt header, copy-convert the data, and send it.
* - helper function for vrt_packet_handler::send
******************************************************************/
- template<typename vrt_packer_type>
static UHD_INLINE void _send1(
send_state &state,
const std::vector<const void *> &buffs,
@@ -302,7 +301,7 @@ template <typename T> UHD_INLINE T get_context_code(
uhd::transport::vrt::if_packet_info_t &if_packet_info,
const uhd::io_type_t &io_type,
const uhd::otw_type_t &otw_type,
- vrt_packer_type vrt_packer,
+ const vrt_packer_t &vrt_packer,
const get_send_buffs_t &get_send_buffs,
size_t vrt_header_offset_words32
){
diff --git a/host/lib/usrp/dboard_base.cpp b/host/lib/usrp/dboard_base.cpp
index eafb8897f..6c4e29d9e 100644
--- a/host/lib/usrp/dboard_base.cpp
+++ b/host/lib/usrp/dboard_base.cpp
@@ -26,12 +26,12 @@ using namespace uhd::usrp;
* dboard_base dboard dboard_base class
**********************************************************************/
struct dboard_base::impl{
- ctor_args_impl args;
- impl(ctor_args_t args) : args(*args){}
+ dboard_ctor_args_t args;
};
dboard_base::dboard_base(ctor_args_t args){
- _impl = UHD_PIMPL_MAKE(impl, (args));
+ _impl = UHD_PIMPL_MAKE(impl, ());
+ _impl->args = *static_cast<dboard_ctor_args_t *>(args);
}
dboard_base::~dboard_base(void){
diff --git a/host/lib/usrp/dboard_ctor_args.hpp b/host/lib/usrp/dboard_ctor_args.hpp
index 13abe79e8..708f2ea08 100644
--- a/host/lib/usrp/dboard_ctor_args.hpp
+++ b/host/lib/usrp/dboard_ctor_args.hpp
@@ -15,18 +15,22 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
-#ifndef INCLUDED_DBOARD_CTOR_ARGS_HPP
-#define INCLUDED_DBOARD_CTOR_ARGS_HPP
+#ifndef INCLUDED_LIBUHD_USRP_DBOARD_CTOR_ARGS_HPP
+#define INCLUDED_LIBUHD_USRP_DBOARD_CTOR_ARGS_HPP
#include <uhd/usrp/dboard_id.hpp>
#include <uhd/usrp/dboard_base.hpp>
#include <uhd/usrp/dboard_iface.hpp>
#include <string>
-struct uhd::usrp::dboard_base::ctor_args_impl{
- std::string sd_name;
- dboard_iface::sptr db_iface;
- dboard_id_t rx_id, tx_id;
-};
+namespace uhd{ namespace usrp{
-#endif /* INCLUDED_DBOARD_CTOR_ARGS_HPP */
+ struct dboard_ctor_args_t{
+ std::string sd_name;
+ dboard_iface::sptr db_iface;
+ dboard_id_t rx_id, tx_id;
+ };
+
+}} //namespace
+
+#endif /* INCLUDED_LIBUHD_USRP_DBOARD_CTOR_ARGS_HPP */
diff --git a/host/lib/usrp/dboard_manager.cpp b/host/lib/usrp/dboard_manager.cpp
index 6321e018f..bfaaf0969 100644
--- a/host/lib/usrp/dboard_manager.cpp
+++ b/host/lib/usrp/dboard_manager.cpp
@@ -242,7 +242,7 @@ dboard_manager_impl::dboard_manager_impl(
set_nice_dboard_if();
//dboard constructor args
- dboard_base::ctor_args_impl db_ctor_args;
+ dboard_ctor_args_t db_ctor_args;
db_ctor_args.db_iface = iface;
//make xcvr subdevs (make one subdev for both rx and tx dboards)
diff --git a/host/lib/usrp/dsp_utils.hpp b/host/lib/usrp/dsp_utils.hpp
index 2f246c788..ebed12c41 100644
--- a/host/lib/usrp/dsp_utils.hpp
+++ b/host/lib/usrp/dsp_utils.hpp
@@ -82,11 +82,11 @@ namespace dsp_type1{
double &freq,
double codec_rate
){
- UHD_ASSERT_THROW(freq >= -codec_rate/2.0 and freq < codec_rate/2.0);
+ UHD_ASSERT_THROW(std::abs(freq) <= codec_rate/2.0);
static const double scale_factor = std::pow(2.0, 32);
//calculate the freq register word (signed)
- boost::int32_t freq_word = boost::math::iround((freq / codec_rate) * scale_factor);
+ boost::int32_t freq_word = boost::int32_t(boost::math::round((freq / codec_rate) * scale_factor));
//update the actual frequency
freq = (double(freq_word) / scale_factor) * codec_rate;
diff --git a/host/lib/usrp/tune_helper.cpp b/host/lib/usrp/tune_helper.cpp
index c5cce3ecf..e516477d3 100644
--- a/host/lib/usrp/tune_helper.cpp
+++ b/host/lib/usrp/tune_helper.cpp
@@ -16,10 +16,10 @@
//
#include <uhd/usrp/tune_helper.hpp>
-#include <uhd/utils/algorithm.hpp>
#include <uhd/usrp/subdev_props.hpp>
#include <uhd/usrp/dsp_props.hpp>
#include <uhd/usrp/dboard_iface.hpp> //unit_t
+#include <boost/math/special_functions/sign.hpp>
#include <cmath>
using namespace uhd;
@@ -46,7 +46,7 @@ static tune_result_t tune_xx_subdev_and_dxc(
double delta_freq = std::fmod(target_freq - actual_inter_freq, dxc_sample_rate);
bool outside_of_nyquist = std::abs(delta_freq) > dxc_sample_rate/2.0;
double target_dxc_freq = (outside_of_nyquist)?
- std::signum(delta_freq)*dxc_sample_rate - delta_freq : -delta_freq;
+ boost::math::sign(delta_freq)*dxc_sample_rate - delta_freq : -delta_freq;
//invert the sign on the dxc freq given the following conditions
if (unit == dboard_iface::UNIT_TX) target_dxc_freq *= -1.0;
diff --git a/host/lib/usrp/usrp2/io_impl.cpp b/host/lib/usrp/usrp2/io_impl.cpp
index 9a7f34531..aa6d15783 100644
--- a/host/lib/usrp/usrp2/io_impl.cpp
+++ b/host/lib/usrp/usrp2/io_impl.cpp
@@ -32,6 +32,8 @@ using namespace uhd::usrp;
using namespace uhd::transport;
namespace asio = boost::asio;
+static const int underflow_flags = async_metadata_t::EVENT_CODE_UNDERFLOW | async_metadata_t::EVENT_CODE_UNDERFLOW_IN_PACKET;
+
/***********************************************************************
* io impl details (internal to this file)
* - pirate crew
@@ -56,9 +58,9 @@ struct usrp2_impl::io_impl{
recv_pirate_crew.join_all();
}
- bool get_recv_buffs(vrt_packet_handler::managed_recv_buffs_t &buffs){
+ bool get_recv_buffs(vrt_packet_handler::managed_recv_buffs_t &buffs, size_t timeout_ms){
boost::this_thread::disable_interruption di; //disable because the wait can throw
- return recv_pirate_booty->pop_elems_with_timed_wait(buffs, boost::posix_time::milliseconds(recv_timeout_ms));
+ return recv_pirate_booty->pop_elems_with_timed_wait(buffs, boost::posix_time::milliseconds(timeout_ms));
}
//state management for the vrt packet handler code
@@ -71,7 +73,6 @@ struct usrp2_impl::io_impl{
bool recv_pirate_crew_raiding;
alignment_buffer_type::sptr recv_pirate_booty;
bounded_buffer<async_metadata_t>::sptr async_msg_fifo;
- size_t recv_timeout_ms;
};
/***********************************************************************
@@ -112,7 +113,7 @@ void usrp2_impl::io_impl::recv_pirate_loop(
metadata.event_code = vrt_packet_handler::get_context_code<async_metadata_t::event_code_t>(vrt_hdr, if_packet_info);
//print the famous U, and push the metadata into the message queue
- if (metadata.event_code == async_metadata_t::EVENT_CODE_UNDERFLOW) std::cerr << "U";
+ if (metadata.event_code & underflow_flags) std::cerr << "U";
async_msg_fifo->push_with_pop_on_full(metadata);
continue;
}
@@ -222,7 +223,6 @@ size_t usrp2_impl::recv(
rx_metadata_t &metadata, const io_type_t &io_type,
recv_mode_t recv_mode, size_t timeout_ms
){
- _io_impl->recv_timeout_ms = timeout_ms;
return vrt_packet_handler::recv(
_io_impl->packet_handler_recv_state, //last state of the recv handler
buffs, num_samps, //buffer to fill
@@ -230,6 +230,6 @@ size_t usrp2_impl::recv(
io_type, _io_helper.get_rx_otw_type(), //input and output types to convert
_mboards.front()->get_master_clock_freq(), //master clock tick rate
uhd::transport::vrt::if_hdr_unpack_be,
- boost::bind(&usrp2_impl::io_impl::get_recv_buffs, _io_impl.get(), _1)
+ boost::bind(&usrp2_impl::io_impl::get_recv_buffs, _io_impl.get(), _1, timeout_ms)
);
}
diff --git a/host/lib/version.cpp.in b/host/lib/version.cpp.in
new file mode 100644
index 000000000..f3a5afc45
--- /dev/null
+++ b/host/lib/version.cpp.in
@@ -0,0 +1,22 @@
+//
+// Copyright 2010 Ettus Research LLC
+//
+// This program 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 of the License, or
+// (at your option) any later version.
+//
+// This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
+//
+
+#include <uhd/version.hpp>
+
+std::string uhd::get_version_string(void){
+ return "@CPACK_PACKAGE_VERSION@";
+}