On 08/14/2017 02:27 PM, Jason W Zheng via USRP-users wrote:

How should I set the tx metadata? My application will essentially stream continuously.


Thanks,

Jason

From the tx_samples_from_file example code (which you should probably study)

   uhd::tx_metadata_t md;
    md.start_of_burst = false;
    md.end_of_burst = false;


------------------------------------------------------------------------
*From:* ROBIN TORTORA <ti...@comcast.net>
*Sent:* Monday, August 14, 2017 11:17:07 AM
*To:* Jason W Zheng via USRP-users; Jason W Zheng
*Subject:* Re: [USRP-users] Buffer underrun issue with simultaneous transmit and receive on the X310

I dont see you setting the tx metadata object members to any values, so you are essentially going to tx with default metadata IF there is a constructor that initializes all the members to a consistent value...

On August 14, 2017 at 1:56 PM Jason W Zheng via USRP-users <usrp-users@lists.ettus.com> wrote:


Since I haven't gotten a response in a week, I thought some source code might help. I've removed any buffer dependencies leaving just the receive thread and transmit thread. The receive thread is constant receiving to a buffer, while the transmit thread is constantly transmitting 0s from another buffer.

On the x310, when I receive and transmit from the same channel (same daughterboard), I get underflows (U's on the console), no matter what the rate. When I put receive and transmit on separate channels, the U's go away.

How do I fix my source code so I can receive and transmit from the same channel without underflows?

Thanks,
Jason


------------------------------------------------------------------------
*From:* USRP-users <usrp-users-boun...@lists.ettus.com> on behalf of Jason W Zheng via USRP-users <usrp-users@lists.ettus.com>
*Sent:* Monday, August 7, 2017 1:05:05 PM
*To:* usrp-users@lists.ettus.com
*Subject:* [USRP-users] Buffer underrun issue with simultaneous transmit and receive on the X310


Hi,


I'm building an application where I receive data from the x310, process the data, then transmit it out. I have 3 separate threads running, one for each task. The receive task is constantly receiving data from the x310 at 200MS/s and putting it into a buffer. The process task takes data from the receive buffer, processes it, and puts it into a transmit buffer. The transmit task is constantly transmitting data from the transmit buffer at 12.5 MS/s.


I get constant underruns (U's on the console) when I try to receive and transmit from the same channel on the x310. However, when I transmit and receive on separate channels, underruns no longer occur. I would like to figure out a solution to this problem as I want to processes two 200MS/s streams on 1 x310.


This problem occurs no matter the sample rates. I've tried lowering the receive rate to 50MS/s (while transmitting 4x the data to balance things out) and there are still constant underruns though at a lower rate. I know processing time is not the issue as I've profiled the time it takes to process, and I have even removed the processing task from the application altogether (receive data to a buffer and do nothing with the data; constantly transmit 0's from the transmit buffer) and the underruns still occur.


I'm running on UHD 3.11.0, and the x310 is is configured with basic TX/RX daughterboards and flashed with the XG image for use over two 10 gig ethernet links.


Thanks,

Jason




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


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

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

Reply via email to