diff options
author | Matt Ettus <matt@ettus.com> | 2011-02-03 16:41:01 -0800 |
---|---|---|
committer | Matt Ettus <matt@ettus.com> | 2011-02-03 16:41:01 -0800 |
commit | d6cab26bf26d61d71ba0792bce8f48a89f7dc2d7 (patch) | |
tree | 1a5cc789d91228c77badf55aa4ce13d852d8cda7 /host | |
parent | d74b0322bf3d0f7c89bd6d5224ad73924237aa33 (diff) | |
download | uhd-d6cab26bf26d61d71ba0792bce8f48a89f7dc2d7.tar.gz uhd-d6cab26bf26d61d71ba0792bce8f48a89f7dc2d7.tar.bz2 uhd-d6cab26bf26d61d71ba0792bce8f48a89f7dc2d7.zip |
successful latency test. About 500 us on my laptop.
Diffstat (limited to 'host')
-rw-r--r-- | host/examples/latency_test.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/host/examples/latency_test.cpp b/host/examples/latency_test.cpp index b6afdeb34..340e87fb7 100644 --- a/host/examples/latency_test.cpp +++ b/host/examples/latency_test.cpp @@ -36,6 +36,7 @@ int UHD_SAFE_MAIN(int argc, char *argv[]){ double rate, freq; float ampl; double delta_t; + size_t pkts; //setup the program options po::options_description desc("Allowed options"); @@ -46,6 +47,7 @@ int UHD_SAFE_MAIN(int argc, char *argv[]){ ("rtt", po::value<double>(&delta_t)->default_value(0.001), "Round-Trip time to test") ("nsamps", po::value<size_t>(&total_num_samps)->default_value(100), "total number of samples to transmit") ("spp", po::value<size_t>(&samps_per_packet)->default_value(1000), "number of samples per packet") + ("pkts", po::value<size_t>(&pkts)->default_value(1000), "number of packets") ("rate", po::value<double>(&rate)->default_value(100e6/4), "rate of outgoing samples") ("freq", po::value<double>(&freq)->default_value(0), "rf center frequency in Hz") ("ampl", po::value<float>(&l)->default_value(float(0.3)), "amplitude of each sample") @@ -110,12 +112,13 @@ int UHD_SAFE_MAIN(int argc, char *argv[]){ size_t num_packets = (total_num_samps+samps_per_packet-1)/samps_per_packet; - double cur_time = 0.0; + uhd::time_spec_t cur_time; sdev->set_time_now(uhd::time_spec_t(cur_time)); - for(int j=0;j<100;j++) { + for(int j=0;j<pkts;j++) { int err = 0; - cur_time += wait_time; + //sleep(0.3); + cur_time = sdev->get_time_now() + uhd::time_spec_t(0.01); stream_cmd.time_spec = uhd::time_spec_t(cur_time); sdev->issue_stream_cmd(stream_cmd); size_t num_acc_samps = 0; @@ -161,7 +164,8 @@ int UHD_SAFE_MAIN(int argc, char *argv[]){ size_t samps_to_send = std::min(total_num_samps - samps_per_packet*i, samps_per_packet); //send the entire packet (driver fragments internally) - tx_md.time_spec = uhd::time_spec_t(cur_time+delta_t); + //tx_md.time_spec = rx_md.time_spec+uhd::time_spec_t(delta_t); + tx_md.time_spec = cur_time + uhd::time_spec_t(delta_t); size_t num_tx_samps = dev->send (&txbuff.front(), samps_to_send, tx_md, uhd::io_type_t::COMPLEX_FLOAT32, |