The last thread I posted had indicated problems related to overruns.
The problem turns out that start/stop weren't consistent in how they
started and stopped things in gnuradio-3.0.3. It worked out that
roughly every 800000 samples in my test, we got an overrun (except if
the total was before the first stop()).
The problem lies in the start order:
d_ephandle->start() followed by set_rx_enable(true)
and the stop order of:
d_ephandle->stop() followed by set_rx_enable(false).
To fix the problem, the calls in stop() had to be flipped.
Here's the patch:
*** usrp_basic.cc.orig 2007-05-30 10:30:10.000000000 +0000
--- usrp_basic.cc 2007-05-30 10:23:11.000000000 +0000
***************
*** 541,556 ****
--- 541,565 ----
{
bool ok = usrp_basic::stop();
+ #if 1
+ if (!set_rx_enable(false)){
+ fprintf (stderr, "usrp_basic_rx: set_rx_enable(false) failed\n");
+ usb_strerror ();
+ ok = false;
+ }
+ #endif
if (!d_ephandle->stop()){
fprintf (stderr, "usrp_basic_rx: failed to stop end point streaming");
usb_strerror ();
ok = false;
}
+ #if 0
if (!set_rx_enable(false)){
fprintf (stderr, "usrp_basic_rx: set_rx_enable(false) failed\n");
usb_strerror ();
ok = false;
}
+ #endif
return false;
}
Dave
_______________________________________________
Discuss-gnuradio mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio