<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
Dear all,
<div>Good morning. What is the right way to use <b>two receive channels simultaneously</b> for
<b>E312</b> with RFNOC radio and UHD cpp control? Thank you in advance.</div>
<div><br>
</div>
<div>There is only a receiver radio block and <span style="font-size: 12pt;">I have set up the rx streamer:</span></div>
<div><br>
</div>
<div>
<div>    rx_radio_ctrl->set_rx_streamer(true, rx_chan);</div>
<div>    rx_radio_ctrl->set_rx_streamer(true, rx_chan_1);</div>
<div><span style="font-size: 12pt;">    std::cout << "Samples per packet: " << spp << std::endl;</span><br>
</div>
<div>    uhd::stream_args_t stream_args(format, "sc16");</div>
<div>    stream_args.args = streamer_args;</div>
<div>    stream_args.args["spp"] = boost::lexical_cast<std::string>(spp);</div>
<div>    stream_args.args["block_id0"] = "0/Radio_0";</div>
<div>    stream_args.args["block_id1"] = "0/Radio_0";</div>
<div>    stream_args.args["block_port0"] = "0";</div>
<div>    stream_args.args["block_port1"] = "1";</div>
<div>    stream_args.channels.push_back(0);</div>
<div>    stream_args.channels.push_back(1); </div>
<div>    std::cout << "Using streamer args: " << stream_args.args.to_string() << std::endl;</div>
<div>    uhd::rx_streamer::sptr rx_stream = dev->get_rx_stream(stream_args);</div>
<div style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
I have set up the buffer for two channels in "<span>recv_to_file</span>" template according to rx_multi_samples.cpp:        </div>
<div style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
    std::vector<std::vector<samp_type>> buff(2,std::vector<samp_type>(samps_per_buff) ); </div>
<div style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<div>    //create a vector of pointers to point to each of the channel buffers</div>
<div>    std::vector<samp_type *> buff_ptrs;</div>
<div>    for (size_t i = 0; i < buff.size(); i++) buff_ptrs.push_back(&buff[i].front());</div>
<div><br>
</div>
<div>I am not sure if I miss anything up to this point. Where I get stuck is I cannot receive any sample from the radio. I don't know if that is caused by the stream_cmd. If using the following code for stream_cmd, then timeout while streaming...</div>
<div><br>
</div>
<div>    // This code gives me "Timeout while streaming" error.</div>
<div><span>    uhd::stream_cmd_t stream_cmd(uhd::stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_DONE);</span><br>
</div>
<div>
<div>    stream_cmd.num_samps = size_t(num_requested_samples);</div>
<div>    stream_cmd.stream_now = true;</div>
<div>    stream_cmd.time_spec = uhd::time_spec_t();</div>
<div>    std::cout << "Issueing stream cmd" << std::endl;</div>
<div>    rx_stream->issue_stream_cmd(stream_cmd);</div>
<div>    <span>size_t num_rx_samps = rx_stream->recv(buff_ptrs, samps_per_buff, md, 3.0, enable_size_map);</span></div>
<div><span><br>
</span></div>
<div>If using the following code for stream_cmd, then num_rx_samps = 0.</div>
<div><br>
</div>
<div>    // This code gives me num_rx_samps = 0</div>
<div>
<div>    uhd::stream_cmd_t stream_cmd(uhd::stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_DONE);</div>
<div>    stream_cmd.num_samps = total_num_samps;</div>
<div>    stream_cmd.stream_now = false;</div>
<div>    stream_cmd.time_spec = uhd::time_spec_t(seconds_in_future);</div>
<div>
<div><span style="font-family: "Century Gothic", sans-serif;">    </span>std::cout << "Issueing stream cmd" << std::endl;</div>
<div>    rx_stream->issue_stream_cmd(stream_cmd);</div>
</div>
<div>    size_t num_rx_samps = rx_stream->recv(buff_ptrs, samps_per_buff, md, 3.0, enable_size_map);</div>
<div>    std::cout << "num_rx_samps = "<<num_rx_samps << std::endl;</div>
<br>
</div>
<div><span><br>
</span></div>
<div><span><br>
</span></div>
</div>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
Ref:</div>
<div style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
1. <a href="https://files.ettus.com/manual/structuhd_1_1stream__args__t.html" class="OWAAutoLink" id="LPlnk238597" previewremoved="true" style="">https://files.ettus.com/manual/structuhd_1_1stream__args__t.html</a></div>
<div style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
2. <a href="https://github.com/manuts/uhd-examples/blob/master/rx_multi_samples.cpp" class="OWAAutoLink" id="LPlnk456350" previewremoved="true" style="">https://github.com/manuts/uhd-examples/blob/master/rx_multi_samples.cpp</a></div>
<br>
<div style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<br>
</div>
<div><br>
</div>
<br>
</div>
</div>
</body>
</html>