On 08/03/2020 00:49, Brian Padalino wrote: > On Sat, Mar 7, 2020 at 6:02 PM Marek Dopiera via USRP-users > <[email protected] <mailto:[email protected]>> wrote: > I had to do this recently with an X310 application. Originally I tried > timed bursts where I would give the full burst to UHD and hope it would > get things sent since the burst was supplied all at once. This was not > my experience and exposed some bugs which may still be outstanding. > > My next approach was to simply have a writer thread which would check a > transmit buffer/FIFO and, if there was nothing to transmit, would stuff > a minimal amount of zeros into the data stream. This call to send() of > the zero stuffed data would fill up the buffers downstream on the device > until the backpressure from the device naturally limited the > transmission. This approach worked very well for my application. It > kept the minimal buffering with almost no overhead and I knew the > latency through the system was basically the amount of time to consume > the buffer.
Hi Brian, thank you for your response. I'm doing pretty much what you described - a FIFO with separate threads, and pushing to tx_stream::send until it blocks. In my case I'm actually sending data, not zeros, though. I do not have control over how much data gets into the buffers before tx_streamer::send() starts blocking, though - I'm guessing I can go lower than that, but for that to work I need to know when the data is actually sent. Thanks -- Marek Dopiera [email protected] _______________________________________________ USRP-users mailing list [email protected] http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
