Nothing beats the doctor's office effect. In case anyone else has been
looking for this I just got it:


in c++: 
:
stream_cmd.stream_now = false; //true; //change this line
stream_cmd.time_spec = radio_ctrl->get_time_now()+1.5; //or prob. less
rx_stream->issue_stream_cmd(stream_cmd); //existing line

the thing that was confusing to me was that the radio owns time and the
rx_stream understands that time. I would have thought that the streamer
would own the time.

in Gnuradio:

after the last of the streamer stuff and before QT stuff

self.uhd_rfnoc_streamer_radio_0.set_command_time(self.uhd_rfnoc_streame
r_radio_0.get_time_now()+uhd.time_spec_t(.1))

The thing that was confusing to me here was that I don't know where the
equivalent of issue_stream_cmd happens in grc so didn't know where to
put this but this works.

Does anyone know of a way to get gnuradio-companion to add this line?
Now I'm keeping an editor window open, pasting the new line back in
every time I mess with the flowgraph, and running the python from the
command line. It's similar to what I have to do to get rfnoc siggen
working. I'd bet that it wouldn't be too hard for someone who
understands grc to get it to add these lines. I thought of using the
"import" block but that puts the line at the very top before the
streamer is defined.



On Thu, 2019-12-05 at 16:47 +0000, d.des wrote:
> I'm trying to process multi-channel RFNoC streams in Gnuradio but
> would
> settle for using the c++ API if necessary. I'm using just one of the
> two TwinRX card in an X310. The simplest example of the alignment
> issue
> is seem by comparing 2-channel recordings made at a 1 MHz sample rate
> on an aperiodic pulsed signal:
> 
> (1) 2-channel usrp->ddc->two file sinks
> and
> (2) 2-channel RFNoC radio->DDC->two file sinks
> 
> The usrp example records time-synchronized data regardless of "Synch"
> option built into the block (internal or gps). The RFNoC example,
> however, shifts one of the outputs by 10s of microseconds. This seems
> like quite a trick since I'm sure that the TwinRX is delivering the
> samples synchronized. I thought that it might be something in the
> file
> streaming so I tested with a stock addsub block that works correctly
> in
> the testbench. If I connect
> 
> radio->DDC->addsub->two file sinks
> 
> and compare data from addsub and a separate receiver I can see that
> the
> sum and difference signals are obviously ingesting out-of-sync data.
> This confirms that the random delay is being added between the RFNoC
> DDC and addsub blocks, letting Gnuradio transport off the hook.
> 
> I've searched a lot and seen suggestions to use timed commands but
> haven't figured out how how to do that in RFNoC with Gnuradio (even
> editing Python). I'm also having no luck with creating a 2-channel
> c++
> recorder based on rfnoc_rx_to_file.cpp: it fails with "Invalid recv
> stream command - stream now on multiple channels in a single streamer
> will fail to time align." but I can't figure out how to get or set
> the
> streamer time without a usrp object.
> 
> 
> I'm using UHD 3.14.1 because I'm also working with E310s but could
> update if necessary.


_______________________________________________
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

Reply via email to