aboutsummaryrefslogtreecommitdiffstats
path: root/host/examples/test_async_messages.cpp
diff options
context:
space:
mode:
authorPhilip Balister <philip@opensdr.com>2011-02-01 05:42:36 -0800
committerPhilip Balister <philip@opensdr.com>2011-02-01 05:42:36 -0800
commit781cddee31078e461202c2cf16f3de2f1f236a27 (patch)
treedcd8e1ff8e696dc00b91b425928a3367f05c9a25 /host/examples/test_async_messages.cpp
parentcd45fb6be615a6f133e2c62a46f7c5eba76f72c1 (diff)
parent52e9c8f8027d0bbe1e6b0f57e30f985613e48be2 (diff)
downloaduhd-781cddee31078e461202c2cf16f3de2f1f236a27.tar.gz
uhd-781cddee31078e461202c2cf16f3de2f1f236a27.tar.bz2
uhd-781cddee31078e461202c2cf16f3de2f1f236a27.zip
Merge branch 'usrp_e100_devel' of ettus.sourcerepo.com:ettus/uhdpriv into usrp_e100_devel
Conflicts: host/lib/usrp/usrp_e100/clock_ctrl.cpp
Diffstat (limited to 'host/examples/test_async_messages.cpp')
-rw-r--r--host/examples/test_async_messages.cpp48
1 files changed, 22 insertions, 26 deletions
diff --git a/host/examples/test_async_messages.cpp b/host/examples/test_async_messages.cpp
index b1d9d56d4..7f1094ee0 100644
--- a/host/examples/test_async_messages.cpp
+++ b/host/examples/test_async_messages.cpp
@@ -18,7 +18,7 @@
#include <uhd/utils/thread_priority.hpp>
#include <uhd/utils/safe_main.hpp>
#include <uhd/utils/static.hpp>
-#include <uhd/usrp/single_usrp.hpp>
+#include <uhd/usrp/multi_usrp.hpp>
#include <boost/assign/list_of.hpp>
#include <boost/program_options.hpp>
#include <boost/foreach.hpp>
@@ -35,8 +35,7 @@ namespace po = boost::program_options;
* Send a burst of many samples that will fragment internally.
* We expect to get an burst ack async message.
*/
-bool test_burst_ack_message(uhd::usrp::single_usrp::sptr sdev){
- uhd::device::sptr dev = sdev->get_device();
+bool test_burst_ack_message(uhd::usrp::multi_usrp::sptr usrp){
std::cout << "Test burst ack message... " << std::flush;
uhd::tx_metadata_t md;
@@ -45,16 +44,16 @@ bool test_burst_ack_message(uhd::usrp::single_usrp::sptr sdev){
md.has_time_spec = false;
//3 times max-sps guarantees a SOB, no burst, and EOB packet
- std::vector<std::complex<float> > buff(dev->get_max_send_samps_per_packet()*3);
+ std::vector<std::complex<float> > buff(usrp->get_device()->get_max_send_samps_per_packet()*3);
- dev->send(
+ usrp->get_device()->send(
&buff.front(), buff.size(), md,
uhd::io_type_t::COMPLEX_FLOAT32,
uhd::device::SEND_MODE_FULL_BUFF
);
uhd::async_metadata_t async_md;
- if (not dev->recv_async_msg(async_md)){
+ if (not usrp->get_device()->recv_async_msg(async_md)){
std::cout << boost::format(
"failed:\n"
" Async message recv timed out.\n"
@@ -84,8 +83,7 @@ bool test_burst_ack_message(uhd::usrp::single_usrp::sptr sdev){
* Send a start of burst packet with no following end of burst.
* We expect to get an underflow(within a burst) async message.
*/
-bool test_underflow_message(uhd::usrp::single_usrp::sptr sdev){
- uhd::device::sptr dev = sdev->get_device();
+bool test_underflow_message(uhd::usrp::multi_usrp::sptr usrp){
std::cout << "Test underflow message... " << std::flush;
uhd::tx_metadata_t md;
@@ -93,14 +91,14 @@ bool test_underflow_message(uhd::usrp::single_usrp::sptr sdev){
md.end_of_burst = false;
md.has_time_spec = false;
- dev->send(
+ usrp->get_device()->send(
NULL, 0, md,
uhd::io_type_t::COMPLEX_FLOAT32,
uhd::device::SEND_MODE_FULL_BUFF
);
uhd::async_metadata_t async_md;
- if (not dev->recv_async_msg(async_md, 1)){
+ if (not usrp->get_device()->recv_async_msg(async_md, 1)){
std::cout << boost::format(
"failed:\n"
" Async message recv timed out.\n"
@@ -130,8 +128,7 @@ bool test_underflow_message(uhd::usrp::single_usrp::sptr sdev){
* Send a burst packet that occurs at a time in the past.
* We expect to get a time error async message.
*/
-bool test_time_error_message(uhd::usrp::single_usrp::sptr sdev){
- uhd::device::sptr dev = sdev->get_device();
+bool test_time_error_message(uhd::usrp::multi_usrp::sptr usrp){
std::cout << "Test time error message... " << std::flush;
uhd::tx_metadata_t md;
@@ -140,16 +137,16 @@ bool test_time_error_message(uhd::usrp::single_usrp::sptr sdev){
md.has_time_spec = true;
md.time_spec = uhd::time_spec_t(100.0); //send at 100s
- sdev->set_time_now(uhd::time_spec_t(200.0)); //time at 200s
+ usrp->set_time_now(uhd::time_spec_t(200.0)); //time at 200s
- dev->send(
+ usrp->get_device()->send(
NULL, 0, md,
uhd::io_type_t::COMPLEX_FLOAT32,
uhd::device::SEND_MODE_FULL_BUFF
);
uhd::async_metadata_t async_md;
- if (not dev->recv_async_msg(async_md)){
+ if (not usrp->get_device()->recv_async_msg(async_md)){
std::cout << boost::format(
"failed:\n"
" Async message recv timed out.\n"
@@ -174,10 +171,9 @@ bool test_time_error_message(uhd::usrp::single_usrp::sptr sdev){
}
}
-void flush_async_md(uhd::usrp::single_usrp::sptr sdev){
- uhd::device::sptr dev = sdev->get_device();
+void flush_async_md(uhd::usrp::multi_usrp::sptr usrp){
uhd::async_metadata_t async_md;
- while (dev->recv_async_msg(async_md, 1.0)){}
+ while (usrp->get_device()->recv_async_msg(async_md, 1.0)){}
}
int UHD_SAFE_MAIN(int argc, char *argv[]){
@@ -192,7 +188,7 @@ int UHD_SAFE_MAIN(int argc, char *argv[]){
po::options_description desc("Allowed options");
desc.add_options()
("help", "help message")
- ("args", po::value<std::string>(&args)->default_value(""), "single uhd device address args")
+ ("args", po::value<std::string>(&args)->default_value(""), "multi uhd device address args")
("rate", po::value<double>(&rate)->default_value(1.5e6), "rate of outgoing samples")
("ntests", po::value<size_t>(&ntests)->default_value(10), "number of tests to run")
;
@@ -209,18 +205,18 @@ int UHD_SAFE_MAIN(int argc, char *argv[]){
//create a usrp device
std::cout << std::endl;
std::cout << boost::format("Creating the usrp device with: %s...") % args << std::endl;
- uhd::usrp::single_usrp::sptr sdev = uhd::usrp::single_usrp::make(args);
- std::cout << boost::format("Using Device: %s") % sdev->get_pp_string() << std::endl;
+ uhd::usrp::multi_usrp::sptr usrp = uhd::usrp::multi_usrp::make(args);
+ std::cout << boost::format("Using Device: %s") % usrp->get_pp_string() << std::endl;
//set the tx sample rate
std::cout << boost::format("Setting TX Rate: %f Msps...") % (rate/1e6) << std::endl;
- sdev->set_tx_rate(rate);
- std::cout << boost::format("Actual TX Rate: %f Msps...") % (sdev->get_tx_rate()/1e6) << std::endl << std::endl;
+ usrp->set_tx_rate(rate);
+ std::cout << boost::format("Actual TX Rate: %f Msps...") % (usrp->get_tx_rate()/1e6) << std::endl << std::endl;
//------------------------------------------------------------------
// begin asyc messages test
//------------------------------------------------------------------
- static const uhd::dict<std::string, boost::function<bool(uhd::usrp::single_usrp::sptr)> >
+ static const uhd::dict<std::string, boost::function<bool(uhd::usrp::multi_usrp::sptr)> >
tests = boost::assign::map_list_of
("Test Burst ACK ", &test_burst_ack_message)
("Test Underflow ", &test_underflow_message)
@@ -237,8 +233,8 @@ int UHD_SAFE_MAIN(int argc, char *argv[]){
//run the tests, pick at random
for (size_t n = 0; n < ntests; n++){
std::string key = tests.keys()[std::rand() % tests.size()];
- bool pass = tests[key](sdev);
- flush_async_md(sdev);
+ bool pass = tests[key](usrp);
+ flush_async_md(usrp);
//store result
if (pass) successes[key]++;