fairwaves / UHD-Fairwaves

Fairwaves version of the UHD drivers, tweaked to support Fairwaves UmTRX.
http://umtrx.org
24 stars 21 forks source link

Stream command to start streaming immediately causes recv() call to hang #1

Open ttsou opened 11 years ago

ttsou commented 11 years ago

Setting stream_now parameter to true causes the recv() call to hang with continuous streaming. See attached failure case for rx_multi_samples.

Using a delayed start value of 100 us, OpenBTS runs stable with dual carrier.

From b14cde5488a9556298d3817998cadcd5a2d4cb3d Mon Sep 17 00:00:00 2001
From: Thomas Tsou <tom@tsou.cc>
Date: Mon, 29 Apr 2013 22:46:09 -0400
Subject: [PATCH] test: rx_multi_samples hangs in recv()

---
 host/examples/rx_multi_samples.cpp | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/host/examples/rx_multi_samples.cpp b/host/examples/rx_multi_samples.cpp
index 42ef33d..27edc11 100644
--- a/host/examples/rx_multi_samples.cpp
+++ b/host/examples/rx_multi_samples.cpp
@@ -122,10 +122,8 @@ int UHD_SAFE_MAIN(int argc, char *argv[]){
     std::cout << boost::format(
         "Begin streaming %u samples, %f 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;
-    stream_cmd.time_spec = uhd::time_spec_t(seconds_in_future);
+    uhd::stream_cmd_t stream_cmd(uhd::stream_cmd_t::STREAM_MODE_START_CONTINUOUS);
+    stream_cmd.stream_now = true;
     usrp->issue_stream_cmd(stream_cmd); //tells all channels to stream

     //meta-data will be filled in by recv()
-- 
1.7.11.7