diff options
Diffstat (limited to 'host')
-rw-r--r-- | host/lib/usrp/b200/b200_io_impl.cpp | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/host/lib/usrp/b200/b200_io_impl.cpp b/host/lib/usrp/b200/b200_io_impl.cpp index 2433ab2db..dac39915b 100644 --- a/host/lib/usrp/b200/b200_io_impl.cpp +++ b/host/lib/usrp/b200/b200_io_impl.cpp @@ -496,28 +496,23 @@ void b200_impl::handle_overflow(const size_t radio_index) _radio_perifs[radio_index].framer->in_continuous_streaming_mode(); // stop streaming my_streamer->issue_stream_cmd(stream_cmd_t::STREAM_MODE_STOP_CONTINUOUS); - // flush demux - _demux->realloc_sid(B200_RX_DATA0_SID); - _demux->realloc_sid(B200_RX_DATA1_SID); - // flush actual transport - while (_data_transport->get_recv_buff(0.001)) { - } + // flush data + while (_demux->get_recv_buff(B200_RX_DATA0_SID, 0.001)) {} + while (_demux->get_recv_buff(B200_RX_DATA1_SID, 0.001)) {} // restart streaming if (in_continuous_streaming_mode) { stream_cmd_t stream_cmd(stream_cmd_t::STREAM_MODE_START_CONTINUOUS); stream_cmd.stream_now = false; stream_cmd.time_spec = _radio_perifs[radio_index].time64->get_time_now() + time_spec_t(0.01); - // FIXME: temporarily remove the start stream command. - // This will avoid an issue that gets the b210 in a bad state. - // my_streamer->issue_stream_cmd(stream_cmd); + my_streamer->issue_stream_cmd(stream_cmd); } } else { - while (_data_transport->get_recv_buff(0.001)) { - } - // FIXME: temporarily remove the overflow handling that re-issues a stream - // command. This will avoid an issue that gets the b210 in a bad state. - // _radio_perifs[radio_index].framer->handle_overflow(); + const uint32_t sid = radio_index == 0 ? B200_RX_DATA0_SID : B200_RX_DATA1_SID; + // flush data + while (_demux->get_recv_buff(sid, 0.001)) {} + // restart streaming + _radio_perifs[radio_index].framer->handle_overflow(); } } |